【问题标题】:Hex value after executing instruction执行指令后的十六进制值
【发布时间】:2015-10-28 19:30:20
【问题描述】:

我正在学习组装测试,但我一直无法确定如何根据一组说明确定值。

执行所有这些指令后,ax 中的十六进制值是多少?

mov ax, -4
imul ah
imul al
ANSWER: AX=0010

从我的总结来看,在 imul 指令之前 ax 的值应该是 FFFC。

【问题讨论】:

    标签: assembly


    【解决方案1】:

    imul 的作用因操作数的大小而异。 imul ah有符号 乘法 AX = AL * AH(不是 DX)。让我们一步一步来:

    mov ax, -4
    

    AX 现在是 FFFCh,这意味着 AH = FFh(在 8 位上下文中 = -1)和 AL = FCh(在 8 位上下文中 = -4)。

    imul ah
    

    AX = (-1) * (-4) = (+4) = 0004h

    imul al
    

    AX = (+4) * (+4) = 16 = 0010h

    【讨论】:

      猜你喜欢
      • 2014-10-08
      • 2012-04-06
      • 1970-01-01
      • 2018-07-26
      • 1970-01-01
      • 2016-03-06
      • 2020-11-29
      • 1970-01-01
      相关资源
      最近更新 更多