| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1314 人关注过本帖
标题:中间变量
取消只看楼主 加入收藏
xiaxin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-10-21
收藏
 问题点数:0 回复次数:1 
中间变量
M_CRLF MACRO     ;回车
        MOV DL, 0AH
        MOV AH,02H
        INT  21H
        MOV DL, 0DH
        MOV AH,02H
        INT 21H
        ENDM
ws   macro   z
               local  aa3 ,bb3 ,aa4 ,bb4
               mov   dx, cx
               mov  al, z                    ;  这里将Z的值赋给了AL,对z
;的值作变化 ,AL没有做改变
              and    z, 0f0h         
               mov      cl, 04h              
               shr        z,   cl   
               mov  cx, dx
               cmp     z,  09h
               ja        aa3
               add       z, 30h
              jmp       bb3
        aa3:  add   z, 37h
        bb3: mov     dl, z
                mov      ah, 02h
                 int       21h
                and      al,0fh     ;   这里取AL的低字节即要取Z的
;低字节                 cmp    al,09h
                 ja       aa4
                add        al, 30h
                jmp       bb4
        aa4:  add       al, 37h
       bb4:  mov       dl, al
                 mov       ah,02h
                 int         21h
                 endm
sum macro  x, y
         add x, y
         ws  x
         M_CRLF
   endm
DATA segment
 buf1    db     11h,12h,13h,14h,15h,16h,17h,18h,19h
 buf2    db    21h,22h,23h,24h,25h,26h,27h,28h,29h
DATA ends
code segment
assume  cs:code , ds:DATA
start: mov  ax, DATA
          mov  ds, ax
          mov  es, ax
          mov  si, offset buf1
          mov   di ,offset  buf2
          mov  cx, 09h
done: mov al, [si]
          mov  bl, [di]
           inc  si
           inc  di
           sum al, bl
           loop done
           mov ah, 4ch
           int 21h
code ends
          end start
为什么结果会是这样的:
33
33
33
33
33
33
33
44
44
而将这两句改为
MOV  BL, Z
MOV  AL, BL 结果正确了,为什么不可以对AL 直接取字节,要用一个中间变量呢?
搜索更多相关主题的帖子: 变量 
2008-11-27 17:46
xiaxin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-10-21
收藏
得分:0 
mov  al, z 是将变量 z 的值赋给al, z改变 了,al也改变了吗? 相当 于C++里的引用吗?
2008-11-27 19:06
快速回复:中间变量
数据加载中...
 
   



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

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