flat assembler
Message board for the users of flat assembler.
Index
> Main > Disassembly question. |
Author |
|
Teehee 22 Jan 2010, 20:38
I was doing some tests in Ollydbg and i have a question.
The instruction ADD EAX, 0 is translated to 83 C0 00. And the instruction ADD AX, 0 is translated to 66 83 C0 00 My question is: why that '66'? what it mean? (how that things work?) and i was looking at http://ref.x86asm.net/coder32.html but I didn't find a reference to it. _________________ Sorry if bad english. |
|||
22 Jan 2010, 20:38 |
|
Teehee 22 Jan 2010, 21:07
baldr wrote: Didn't you miss 66 in pf column? there is no 66 prefix in that collum There is in ADDPD instruction. Thanks baldr, i will take a look at Intel SDM prefix topic. _________________ Sorry if bad english. |
|||
22 Jan 2010, 21:07 |
|
baldr 22 Jan 2010, 21:23
Teehee,
Follow the "63" link in one-byte opcodes index and voilà! |
|||
22 Jan 2010, 21:23 |
|
Teehee 22 Jan 2010, 21:25
oh.. i see hehe [I was thinking it would be show in ADD instruction row]
|
|||
22 Jan 2010, 21:25 |
|
MazeGen 23 Jan 2010, 20:53
Teehee, I can't add another definition with 0x66 prefix to every primary opcode that depends on it, it would make the reference so huuuuge
|
|||
23 Jan 2010, 20:53 |
|
Borsuc 24 Jan 2010, 20:45
In 32-bit mode, 0x66 simply switches from 32-bit to 16-bit operands on the instructions.
|
|||
24 Jan 2010, 20:45 |
|
revolution 24 Jan 2010, 23:45
Borsuc wrote: In 32-bit mode, 0x66 simply switches from 32-bit to 16-bit operands on the instructions. |
|||
24 Jan 2010, 23:45 |
|
edfed 25 Jan 2010, 02:44
in 16bit mode, 66 make it 32 bit
in 32bit mode, it is the oposite. something like a xor inside CPU internal mode switch. |
|||
25 Jan 2010, 02:44 |
|
Tyler 25 Jan 2010, 11:04
revolution wrote: Not true for SSE instructions. What does it do to SSE instructions? |
|||
25 Jan 2010, 11:04 |
|
Fanael 25 Jan 2010, 11:44
Tyler wrote:
|
|||
25 Jan 2010, 11:44 |
|
hopcode 25 Jan 2010, 11:52
Teehee wrote: ...tests in Ollydbg... using use32/use16 to test it in your test app, for example Code: use16 add eax,0 add ax,0 use32 add eax,0 add ax,0 ;... I have drawn a simple skema to opcode functionalities orienting here (for a better organizing purpouse) http://board.flatassembler.net/topic.php?p=108824#108824 Cheers, hopcode |
|||
25 Jan 2010, 11:52 |
|
Borsuc 25 Jan 2010, 20:07
revolution wrote:
_________________ Previously known as The_Grey_Beast |
|||
25 Jan 2010, 20:07 |
|
asmmsa 09 Feb 2010, 20:51
0x66 is a prefix.
it normally swap default operand size. when first opcode byte is 0x0F meaning of 0x66 is changed. |
|||
09 Feb 2010, 20:51 |
|
baldr 10 Feb 2010, 00:45
asmmsa,
PS suffix changed to PD and likewise? How this is different from 32/16 (for 0Fs, literally)? |
|||
10 Feb 2010, 00:45 |
|
revolution 10 Feb 2010, 01:44
baldr wrote: PS suffix changed to PD and likewise? How this is different from 32/16 (for 0Fs, literally)? ROUNDPS XMM and ROUNDPD XMM: Both have 0x66 byte. PSHUFB MM and PSHUFB XMM: Only XMM version has 0x66 byte. This is why Intel explicitly state that 0x66 is not a prefix byte when used with SIMD encoding. |
|||
10 Feb 2010, 01:44 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.