
[英]AVR Assembly why does LDI instruction can only use R16 - R31 registers
[英]Why nasm and yasm yield 67 opcode for mov r16, word [r64 - 3] instruction?
在x86-64汇编中,我有以下说明
mov dx, word [esi-5]
Nasm 2.13.03
生成:
66 67 8B 56 FB
yasm 1.3.0
生成:
67 66 8B 56 FB
66 67
操作码是修饰符,因此8B 56 FB
本身是:
mov edx, dword [rsi-5]
我注意到:
66 8B 56 FB
还评估为:
mov dx, word [rsi-5]
我有两个问题:
1)为什么nasm
和yasm
发出这67
操作码字节填充? ( 67
本身不足以将edx
缩减为dx
,它需要包含66
)
2)有没有办法在nasm / yasm中发出没有 67
的较短的4字节指令?
问题做出了错误的假设66 8B 56 FB
mov dx, word [rsi-5]
相当于
`66 67 8B 56 FB` or `67 66 8B 56 FB`
mov dx, word [esi-5]
66
将edx
为dx
67
将[rsi-5]
降低为[esi-5]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.