汇编语言中两个子数据相加和两个双子相加的区别

汇编语言中两个子数据相加和两个双子相加的区别,第1张

字数据指的是16位的,双字数据指的是32位的。

=============================================

在16位机中,字加法可用ADD一次完成,双字加法需要两次。

一般:

16位加法:

MOV AX,加数

ADD AX,加数

32位加法:

MOV AX,被加数低16位

ADD AX,加数低16位

MOV DX,被加数高16位

ADC DX,加数高16位橘唤正 ;考虑上面的进位,链卖用带进位加法指令

-------------------------------

在圆悔32位机中,字加法可用ADD一次完成,双字加法也可用ADD完成,但需要32位加法指令。

16位加法:

MOV AX,被加数

ADD AX,加数

32位加法:

MOV EAX,被加数32位

ADD EAX,加数32位

START:

PUSH ACC

MOV R0,#addr1

MOV R1,#addr3

MOV A,@R0

ADD A,@R1

MOV @R0,A

MOV R0,#addr2

MOV R1,#addr4

MOV A,@R0

ADDC A,@R1

MOV @R0,A

POP ACC

RET

MOV AX,[2000H]

MOV BX,[3000H]

ADD AX,BX

MOV CX,[2002H]

MOV DX,[3002H]

ADC DX,CX

MOV [2000H],AX

MOV [2002H],DX


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8244351.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存