| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3807 人关注过本帖
标题:带进位ADC指令的问题
取消只看楼主 加入收藏
Agdmeg
Rank: 4
来 自:四川成都
等 级:业余侠客
威 望:3
帖 子:101
专家分:201
注 册:2011-8-9
结帖率:92.31%
收藏
已结贴  问题点数:20 回复次数:6 
带进位ADC指令的问题
自己写了个简单的4字节加法程序,从运行结果看,用了ADC,但电脑没有把进位加进去.
45218763H+62578453H应该等于A7790BB6吧,但运行结果是A7780BB6,汇编菜鸟,求大神帮助啊!
DATA SEGMENT
    VAR1 DD 45218763H
    VAR2 DD 62578453H
    VAR3 DD 00000000H,"$"
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
    MOV AX,DATA
    MOV DS,AX
    CLC
    LEA SI,VAR1
    INC SI
    INC SI
    MOV AX,DS:[SI]
    LEA SI,VAR2
    INC SI
    INC SI
    ADC AX,DS:[SI]
    LEA SI,VAR1
    MOV DX,DS:[SI]
    LEA SI,VAR2
    ADC DX,DS:[SI]
    LEA SI,VAR3
    MOV DS:[SI],DX
    INC SI
    INC SI
    MOV DS:[SI],AX
    MOV DX,OFFSET VAR3
    MOV AH,09H
    INT 21H
    MOV AH,4CH
    INT 21H
CODE ENDS
END START
2012-08-10 18:13
Agdmeg
Rank: 4
来 自:四川成都
等 级:业余侠客
威 望:3
帖 子:101
专家分:201
注 册:2011-8-9
收藏
得分:0 
怎么总是没人回答a???
2012-08-10 18:32
Agdmeg
Rank: 4
来 自:四川成都
等 级:业余侠客
威 望:3
帖 子:101
专家分:201
注 册:2011-8-9
收藏
得分:0 
....
2012-08-10 18:36
Agdmeg
Rank: 4
来 自:四川成都
等 级:业余侠客
威 望:3
帖 子:101
专家分:201
注 册:2011-8-9
收藏
得分:0 
谢谢大神,编译测试的确是A7790BB6,但我程序中到底哪些指令会重置CF?我用的这些指令在书上没有说会重置CF啊?
2012-08-11 00:39
Agdmeg
Rank: 4
来 自:四川成都
等 级:业余侠客
威 望:3
帖 子:101
专家分:201
注 册:2011-8-9
收藏
得分:0 
书上只有INC指令说:会影响AF,OF,PF,SF,但对CF不影响
2012-08-11 00:44
Agdmeg
Rank: 4
来 自:四川成都
等 级:业余侠客
威 望:3
帖 子:101
专家分:201
注 册:2011-8-9
收藏
得分:0 
我将代码稍微改了下,运行测试成功
DATA SEGMENT
    VAR1 DD 45218763H
    VAR2 DD 62578453H
    VAR3 DD 00000000H,"$"
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
    MOV AX,DATA
    MOV DS,AX
    CLC
    LEA SI,VAR1
    MOV AX,DS:[SI]
    LEA SI,VAR2
    ADD AX,DS:[SI]
    LEA SI,VAR1
    MOV DX,DS:[SI+2]
    LEA SI,VAR2
    ADC DX,DS:[SI+2]
    LEA SI,VAR3
    MOV DS:[SI],AX
    INC SI
    INC SI
    MOV DS:[SI],DX
    MOV DX,OFFSET VAR3
    MOV AH,09H
    INT 21H
    MOV AH,4CH
    INT 21H
CODE ENDS
END START   
2012-08-11 02:19
Agdmeg
Rank: 4
来 自:四川成都
等 级:业余侠客
威 望:3
帖 子:101
专家分:201
注 册:2011-8-9
收藏
得分:0 
我知道出错原因了,我原来的代码先将高4位相加,也就是4521H+6257H,没有产生进位,然后再用ADC相加低四位8763H+8453H,这次产生了进位,但我的加法运算在此结束,所以最终导致进位没有加上,于是我将高4位、低四位的顺序换一下,最终运行结果正确了
2012-08-11 02:37
快速回复:带进位ADC指令的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026276 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved