【汇编程序】求一个双字节数AX:BX的绝对值,放入CX:DX中。
程序员文章站
2022-03-10 09:53:00
...
【汇编程序】求一个双字节数AX:BX的绝对值,放入CX:DX中,高位放入CX
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX,AX
MOV DX,BX
TEST CX,8000H ;将CX与8000H与操作 看是否最高位为1
JZ EXIT ;若结果为0 则为整数 结束dos
NOT DX
NOT CX
ADD DX,1 ;将BX取反+1 即求补
ADC CX,0 ;目的是将CF进位加进去 因为为双字 末位+1就够了
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START ;编译到此结束
总结:如果是字求绝对值 可直接用NEG指令求反 但因为题中是双字为一个整体 用两次NEG则末尾就加2了且没有考虑CF的进位 所以双字时,先把低八位求反+1,再用高八位求反用ADC+0 为了加进去CF的值
上一篇: python统计正数负数的个数
下一篇: AppleWatch7是怎么添加闹钟的?