简单的汇编问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 23:09:31
MOV AL,0B4H ;(AL)=B4H
MOV BL,11H ;(BL)=11H
IMUL BL ;(AX)=0FAF4H
(AX)=0FAF4H怎么算的啊

ah放乘积的高8位,al放乘积的低8位。
imul只有一个参数,如果参数是8位的就默认与al相乘,结果放入ax中。
如果参数是16位的,那么于AX寄存器的值相乘,结果放入DX—AX中。
OK?

任何数在计算机里面都是以补码表示;
负数的补码是它的模的二进制取反加1,正数的补码是它本身。
B4H 的二进制是10110100,转换成我们熟悉的十进制是(-76),(方法是先减1在取反)。
11H 是正数,十进制表示是(17)。
(-76)*(17)=(-1292)
(-1292)的补码十六进制表示则是0FAF4H