汇编 ADC指令

书上说,如果两个4字节的数相加,加法要分2次进行(先低两字节相加,后高两字节相加)。在高两字节相加时,要把低两字节相加以后可能出现的进位考虑进去,ADC指令实现这点很方便... 书上说,如果两个4字节的数相加,加法要分2次进行(先低两字节相加,后高两字节相加)。在高两字节相加时,要把低两字节相加以后可能出现的进位考虑进去,ADC指令实现这点很方便。

举例如下:
MOV AX,FIRST1
ADD AX,SECONE1
MOV THIRD1,AX
MOV AX,FIRST2
ADC AX,SECOND2
MOV THIRD2,AX

(FIRST1是存放第一个数低2字节的变量,FIRST2是存放第一个数高2字节的变量,类推。。。)

我看不太懂,请问到底是怎么实现这一功能的?ADC到底起了什么作用?
展开
 我来答
dakiler
推荐于2017-11-23 · TA获得超过456个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:342万
展开全部
前面
MOV AX,FIRST1
ADD AX,SECONE1
这两句将两数的低位相加 两个低位相加可能进位了,如果 进位就会把标志寄存器的CF(进位标志位)改为1.
下次如果ADC AX,SECOND2
其实是AX,SECOND2,CF三个数相加(ADD仅仅是前两个),所以能实现进位
叔容唐景焕
2020-01-29 · TA获得超过3869个赞
知道大有可为答主
回答量:3148
采纳率:32%
帮助的人:202万
展开全部
sub
bx,ax
结果
bx为-1,即FFFFH,而ax不变,且进位CF为CY(CF=1)
adc
ax,1
ax=ax+1+CF=2+1+1=4
所以结果为4
(其它标记位你可以通过debug看下)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式