汇编语言,双精度加法运算

要求计算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
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值