【发布时间】:2021-07-31 17:54:06
【问题描述】:
在指令编码中默认大小为:
operand size is 32 bit
address size is 64 bit
我们可以使用 legacy 前缀:
0x66 – Operand-size override prefix
使操作数大小为 16。如果我想将其设为 8 位而不是 16 位怎么办?
【问题讨论】:
-
请不要试图将多个问题合二为一来规避问题限制。用户因此而被暂停。
-
你的一个同学几天前已经因为同样的事情被停学了,所以要认真对待。至于你的问题:8位指令有单独的操作码。
-
要了解更多信息,请尝试自己组装和拆卸大量示例,并与wiki.osdev.org/X86-64_Instruction_Encoding等表格进行比较。
-
就这一次:
movl $1234, 64(%rax, %rbx, 4)。$1234是立即数,64是位移,%rax基数,%rbx索引,4刻度。 -
Is there a default operand size in the x86-64 (AMD64) architecture? 涵盖了这一点,但这是一个更广泛的问题。尽管如此,它仍然是我的
site:stackoverflow.com x86 8-bit operand size opcode prefix搜索的第三次点击。
标签: assembly x86-64 machine-code instructions instruction-encoding