1
我使用nasm来学习程序集。下面是源代码:mov eax,0和mov ax之间的机器码差异,0
[BITS 32]
mov ebx, 0
mov bx, 0
mov bl, 0
然后我用 'ndisasm -b 32 TEST.bin,烧写' 得到输出如下:
00000000 BB00000000 mov ebx,0x0
00000005 66BB0000 mov bx,0x0
00000009 B300 mov bl,0x0
我的问题是BB00000000和差异66BB0000,我知道MOV的操作码是B,但是B之前的66是什么?
噢,谢谢,你能给我一些线程来获取有关操作数大小的更多信息吗? – Bobo
@bobo此图表可能有所帮助:http://wiki.osdev.org/X86-64_Instruction_Encoding#Operand-size_and_address-size_override_prefix –
@MichaelPetch好的,谢谢。 – Bobo