. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->标志寄存器
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于adc带进位加法的问题  [已解决] 回复[ 3次 ]   点击[ 417次 ]  
huibian2009
[帖 主]   [ 发表时间:2009-08-21 16:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2009-07-06 17:12
我在学到adc进位加法指令的时候发现了一个问题,就是书上所有的示例好像都是只进1位的,例如:1EF000+201000,用低位先相加,然后再用高位相加再加上CF。可是如果两个数每1位都需要进位呢?例如:FFFFFF+AAAAAA,这里的算法应该是如何呢?
mywiil
[第1楼]   [ 回复时间:2009-08-21 17:47 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:4
注册日期:2008-10-14 16:29
进位是产生在你的存储器超过了最大的范围后,向前进位的,而adc运算的本质是 如 adc ax,bx表示的意思是
ax = ax+bx+CF(进位),这个cf进位是在这条指令前的指令计算过程中造成的超出存储器最大表示值时候的进位,不是每个位置上进位都是这个意义上的进位,只要在存储器能力范围内,进位不会产生cf的,就直接计算了。
比如说 FFFFH+1H = 10000H 在这个过程中各个位置都有进位,但是只有在最高位计算后产生的进位才是会影响CF位的,也可以说,进位是指这个寄存器放不下了造成的进位。
huibian2009
[第2楼]   [ 回复时间:2009-08-24 11:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2009-07-06 17:12
此贴由 贴主 于 [ 2009-08-24 11:53 ] 结贴。 结贴原因:问题已解决
huibian2009
[第3楼]   [ 回复时间:2009-08-24 11:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2009-07-06 17:12
嗯,谢谢老师的解答,我现在明白了。
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved