标题:or使数值变ASCII码?
只看楼主
lblyzby
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-6-24
 问题点数:0 回复次数:6 
or使数值变ASCII码?

code segment assume cs:code start: mov ah,1 int 21h sub al,30h ;ASCII码变数值 mov bl,al mov dl,'+' mov ah,2 int 21h mov ah,1 int 21h sub al,30h ;ASCII码变数值 xor ah,ah ;ah清零 add al,bl aaa ;BCD吗的加法校正指令 mov bx,ax mov dl,'=' mov ah,2 int 21h mov dl,bh or dl,30h ;数值变ASCII码 mov ah,2 int 21h mov dl,bl or dl,30h ;数值变ASCII码 mov ah,2 int 21h mov ah,4ch int 21h code ends end start

;or是逻辑或运算指令,在这里使用or使数值变ASCII码,这是为什么?

搜索更多相关主题的帖子: ASCII 数值 
2005-05-15 18:54
xiolig
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-5-16
得分:0 
因为字符 0 - 9 对应的ASCII是 30h - 39h
2005-05-16 16:36
钢燃
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2005-5-19
得分:0 
以下是引用xiolig在2005-5-16 16:36:13的发言: 因为字符 0 - 9 对应的ASCII是 30h - 39h
执行的意义是 让dl的高四位的值分别为0011即dl为0011xxxx 同这句一样add dl,30h ;首先确定dl中存放的值在0-9间

寻找同济的朋友的网络连接
2005-05-20 11:20
lsylsy1234
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-5-18
得分:0 
当DL的30H位全为0时,    “  OR  DL,30H   ”     与      “ADD  DL,30H”完全等同。  

2005-05-20 14:07
钢燃
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2005-5-19
得分:0 
4楼 我不清楚你第一句的意思
我是说DL中存放值介于0-9,即DL存放为介于00000000——00001001,  ok?
你再演示一边试一试

寻找同济的朋友的网络连接
2005-05-21 20:44
lblyzby
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-6-24
得分:0 
以下是引用钢燃在2005-5-21 20:44:26的发言: 4楼 我不清楚你第一句的意思 我是说DL中存放值介于0-9,即DL存放为介于00000000——00001001, ok? 你再演示一边试一试
谢谢了啊,我懂了,此时dl中仅仅存放单个数值,而dl的低四位没有改变,改变的仅仅是dl的高四位。这样or dl,30h就与add dl,30h功能是一样的了。

2005-05-22 20:14
钢燃
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2005-5-19
得分:0 

寻找同济的朋友的网络连接
2005-05-24 11:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-18302-1-1.html




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

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