| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1170 人关注过本帖
标题:急,,,,,,新手提问,,,,,,,,
只看楼主 加入收藏
zhanghj
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-11-24
结帖率:100%
收藏
 问题点数:0 回复次数:5 
急,,,,,,新手提问,,,,,,,,
STACK SEGMENT PARA'STACK'
    DW 32 DUP(0)
STACK ENDS
DATA SEGMENT
    A1 DW 3456H
    A2 DW 6789H
    SUM DB 3 DUP(0)
DATA ENDS
CODE SEGMENT
    ASSUME SS:STACK,CS:CODE,DS:DATA
BEGIN:    MOV AX,DATA
        MOV DS,AX
        MOV AL,BYTE PTR A1         ;AL=31H
        ADD AL,BYTE PTR A2         ;AL=A9H,CF=0,AF=0
        DAA                        ;AL=09H,CF=1
        MOV SUM,AL
        MOV AL,BYTE PTR A1+1       ;AL=89H
        ADC AL,BYTE PTR A2+1       ;AL=0E0H,CF=0,AF=1
        DAA                        ;AL=46H,CF=1
        MOV SUM+1,AL
        MOV SUM+2,0
        RCL SUM+2,1
        MOV AX,4C00H
        INT 21H
CODE ENDS
END BEGIN

sum中的内容是45,02,01
这是书上的程序,解释也是书上的,程序倒是懂,解释就看不懂了,解释是不是的写错了,
是不是写书的失误啊?
请高手给我个肯定的答案,,,,帮我解释下
搜索更多相关主题的帖子: 错误 
2008-10-24 12:41
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
sum中的内容是45,02,01 这是正确的.
但是,程序的注释确实有问题.
通过DEBUG加载这个程序,就可以观察得到如下情况:
        MOV AL,BYTE PTR A1         ;AL=56H            ;按直接定址表,A1的第一个字节内容是56H
        ADD AL,BYTE PTR A2         ;AL=0DFH,CF=0,AF=0 ;56H+89H=0DFH
        DAA                        ;AL=45H,CF=1,AF=1  ;调整为十进制加,56+89=45,AF有进位
        MOV SUM,AL
        MOV AL,BYTE PTR A1+1       ;AL=34H            ;同上
        ADC AL,BYTE PTR A2+1       ;AL=9CH,CF=0,AF=0  ;带进位加:34H+67H+1=9CH
        DAA                        ;AL=02H,CF=1,AF=1  ;调整为十进制加,34+67+1=02,AF有进位.

这种指令很少运用到,所以,我说的不一定完全正确,请LZ参考.
2008-10-24 21:38
zhanghj
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-11-24
收藏
得分:0 
是这样的,只是想肯定一下,给自己打打气,,
这种指令在实际运用中很少是吗??/
2008-10-24 22:19
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
[bo][un]zhanghj[/un] 在 2008-10-24 22:19 的发言:[/bo]

是这样的,只是想肯定一下,给自己打打气,,
这种指令在实际运用中很少是吗??/

如,DAA我就很少用到,但别人常不常用我不敢说哈.
2008-10-24 22:32
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
[bo][un]ONEPROBLEM[/un] 在 2008-10-24 22:32 的发言:[/bo]


如,DAA我就很少用到,但别人常不常用我不敢说哈.


教程里也说不常用 偶除了回答问题就没用过 呵呵
2008-10-25 11:56
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
mov    eax,dwRemarks
inc    al
daa
.if    al == 0
    shr    eax,8
    inc    al
    daa
    .if    al == 0
        shr    eax,8
        inc    al
        daa
        .if    al == 0
            shr    eax,8
            inc    al
            daa
            shl    eax,8
        .endif    
        shl    eax,8
    .endif    
    shl    eax,8
.endif
mov    dwRemarks,eax
有时用也不错,这段是我投机取巧写的,产生1~99999999压缩BCD码

[[it] 本帖最后由 cnhanxiao 于 2008-10-26 11:41 编辑 [/it]]
2008-10-26 11:36
快速回复:急,,,,,,新手提问,,,,,,,,
数据加载中...
 
   



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

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