欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【汇编程序】求一个双字节数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的值