簡體   English   中英

為什么nasm和yasm為mov r16,單詞[r64-3]指令生成67個操作碼?

[英]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)為什么nasmyasm發出這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] 

66edxdx
67[rsi-5]降低為[esi-5]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM