x86 ASM 将 16 位值转换为 8 位

  • 本文关键字:转换 x86 ASM assembly x86
  • 更新时间 :
  • 英文 :


一些背景信息:我目前正在学习英特尔 x86 汇编时以保护模式编写引导加载程序。最终结果将是一个"BootLoader ASCII snake"游戏。

我想做的是将堆栈中的值弹出到 AL 寄存器中。这给了我一个错误,因此我假设我必须将一个值弹出到 16 位寄存器中。这让我需要将 16 位寄存器中的前 8 位复制到我的 8 位寄存器?

这是我正在使用的说明参考:http://www.mathemainzel.info/files/x86asmref.html

例如,从链接的参考中,我看到了将字节转换为单词的说明。所有的转换指令似乎都从较低的寄存器转到较大的寄存器。

实际上AX寄存器表示AHAL寄存器,因此AL表示位 0-7 和AH位 8-15。如果你把ie。0xef80 AX,那么AH将是0xef,AL将是0x80。

最新更新