![](/img/trans.png)
[英]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.