【问题标题】:I get a different result with mul instruction in assembly我在汇编中使用 mul 指令得到不同的结果
【发布时间】:2020-01-18 00:44:44
【问题描述】:

我在汇编中有这套指令。

   mov ax,0055h
   mov bx,11AAh
   mul al
   xchg ax,bx
   not ax
   neg bx

我不理解第三行中的 mul 指令。如果我执行 0055h*11AAh,我会得到 5DD72,但这是不正确的,因为通过程序我会进入 AX 1C39。如何?流程是什么?

我知道 AX 和 BX 是 16 位寄存器,我的结果应该是 32 位,结果是 DX:AX

【问题讨论】:

  • 你使用了mul al 而不是mul bx。因此,您计算了55h*55h=1C39h
  • 我知道了。谢谢!

标签: assembly x86


【解决方案1】:

mul 的单参数形式将根据操作数大小将参数与al/ax/eax/rax 相乘,并将结果存储在ax/dx:ax/@ 987654328@/rdx:rax 相应。

mul alalal 相乘并将结果存储在ax 中。你想要mul bx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    相关资源
    最近更新 更多