【发布时间】:2015-10-28 19:30:20
【问题描述】:
我正在学习组装测试,但我一直无法确定如何根据一组说明确定值。
执行所有这些指令后,ax 中的十六进制值是多少?
mov ax, -4
imul ah
imul al
ANSWER: AX=0010
从我的总结来看,在 imul 指令之前 ax 的值应该是 FFFC。
【问题讨论】:
标签: assembly
我正在学习组装测试,但我一直无法确定如何根据一组说明确定值。
执行所有这些指令后,ax 中的十六进制值是多少?
mov ax, -4
imul ah
imul al
ANSWER: AX=0010
从我的总结来看,在 imul 指令之前 ax 的值应该是 FFFC。
【问题讨论】:
标签: assembly
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
【讨论】: