我在这里得到了几笔代码。我需要知道AX的最终价值是什么。 在代码段中:
MOV AX, 0FF05H
DB 80H
DW E411H
DB 30H,C4H
XCHG AH,AL
命令dw
和db
在做什么(我知道声明字节和字,但可能在这里不一样)。
答案 0 :(得分:3)
编写汇编程序时,汇编程序将指令转换为字节序列。因此,当您知道指令的操作码时,您也可以使用该序列声明字节。
有时,如果汇编程序不知道指令助记符,或者你想使用无效的操作码,你知道这些操作码可以在你的目标上运行但是汇编程序不支持,那么它会很有用。
或者您可以使用它来强制指令的特定编码,因为汇编程序可能会选择不同的编码。一些汇编程序具有请求特定编码的语法,例如NASM add eax, strict dword 1
将使用imm32而不是imm8。
但是,如果没有手动编码,您就无法在add r/m32, imm32
和add eax, imm32
之间做出选择(没有ModRM字节的特殊短格式编码)
答案 1 :(得分:0)