Assembly 执行指令后的十六进制值
我正在为一个组装测试而学习,我一直很难确定在一组指令之后如何确定值 执行所有这些指令后,ax中的十六进制值是多少Assembly 执行指令后的十六进制值,assembly,Assembly,我正在为一个组装测试而学习,我一直很难确定在一组指令之后如何确定值 执行所有这些指令后,ax中的十六进制值是多少 mov ax, -4 imul ah imul al ANSWER: AX=0010 根据我的总结,在imul指令之前,ax的值应该是FFFC imul根据操作数的大小而不同imul-ah是有符号的乘法AX=AL*ah(无DX)。让我们一步一步来: mov ax, -4 AX现在是FFFCh,这意味着AH=FFh(=在8位上下文中为-1),AL=FCh(=在8位上下文中为-4)
mov ax, -4
imul ah
imul al
ANSWER: AX=0010
根据我的总结,在imul指令之前,ax的值应该是FFFC
imul
根据操作数的大小而不同imul-ah
是有符号的乘法AX=AL*ah
(无DX
)。让我们一步一步来:
mov ax, -4
AX现在是FFFCh,这意味着AH=FFh(=在8位上下文中为-1),AL=FCh(=在8位上下文中为-4)
AX=(-1)*(-4)=(+4)=0004h
AX=(+4)*(+4)=16=0010h
imul ah
imul al