在IMUL的描述中,它说:
如果乘积的上半部分不是下半部分的符号扩展,则设置进位和溢出标志。
所以我有一些汇编代码:
MOV AL, 48
MOV BL, 4
IMUL BL ; AX = 00C0h, AH = 00 is positive and AL = C0 is negative so CF = OF = 1
MOV AX, 0x8760
MOV BX, 0x100
IMUL BX ; DX:AX = FF87:6000, DX is negative and AX is positive so CF = OF = 1
字符串
但在这张照片里
MOV AX, 0xFFF6
MOV BX, 0x1FFE
IMUL BX ; in debug, the result is DX:AX = FFFE:C014, CF = OF = 1
型
DX和AX都是负数,那么为什么设置CF和OF?
1条答案
按热度按时间s2j5cfk01#
下半部分的符号延伸表示:
基本上,它告诉你整个结果是否适合AX,或者DX是否也包含一些有趣的部分。