要求计算X+Y=Z,将结果Z输出到屏幕上,其中X=001565A0H,Y=0021B79EH。实验利用累加器AX,先求低十六位和,并存入地址存储单元,后求高16位和,再存入高址存储单元。由于地位可能向高位有进位,因而高位相加语句需用ADC指令,则地位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。在80386以上微机中可以直接使用32位寄存器和32位加法指令完成。
;二进制双精度加法运算
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
MES1 DB 'The result is:$'
XL DW 65A0H
XH DW 0015H
YL DW 0B79EH
YH DW 0021H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MES1 ;将MES1偏移地址给DX
MOV AH,09H ;将MES1中的内容输出到屏幕
INT 21H
MOV AX,XL
ADD AX,YL
MOV BX,AX
MOV AX,XH
ADC AX,YH
PUSH BX ;入栈保存BX
CALL SHWORD ;先去执行SHWORD
POP BX ;返回继续执行BX出栈处理
MOV AX,BX ;此时AX中是低16位之和
CALL SHWORD ;再次调用SH
汇编语言,双精度加法运算
最新推荐文章于 2024-04-17 21:38:41 发布
该博客介绍了如何使用80386汇编语言进行双精度加法运算,通过实例展示了计算过程,包括低16位和高16位的加法,并考虑了进位情况。最终将结果输出到屏幕上。
摘要由CSDN通过智能技术生成