| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 563 人关注过本帖
标题:谁能帮小弟解释下结果是怎么算出来的
只看楼主 加入收藏
后来疯了
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-12-4
收藏
 问题点数:0 回复次数:5 
谁能帮小弟解释下结果是怎么算出来的

这是一个加法程序,我只知道怎么比算结果,程序看的懂,却不知道结果到底是怎么出来的。。
初学着,望各位多多帮助。
CODE SEGMENT
ASSUME CS:CODE
START: MOV AL, 58
ADD AL, 48
MOV CH,2
MOV BL,AL
RO: MOV CL,4
ROL BL,CL
MOV DL,BL
AND DL,0FH
CMP dl,9
JLE AR
ADD dl,7
AR: ADD DL,30H
MOV AH,2
INT 21H
DEC CH
JNE RO
MOV AH, 4CH
INT 21H
CODE ENDS
END START

结果是6A

搜索更多相关主题的帖子: 结果 解释 
2006-12-08 18:29
后来疯了
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-12-4
收藏
得分:0 
先多谢大家了,指点。。。。
2006-12-08 18:30
曾小
Rank: 1
等 级:新手上路
威 望:1
帖 子:239
专家分:0
注 册:2006-9-27
收藏
得分:0 

那你可以一步一步执行啊!
用debug 的t命令.


2006-12-08 20:09
qazxsa
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-11-27
收藏
得分:0 

是一个十六进制数的打印程序。

2006-12-09 07:59
lefttime
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-10-6
收藏
得分:0 
CODE SEGMENT
ASSUME CS:CODE
START: MOV AL, 58 ;(AL)=58
ADD AL, 48 ;(AL)=106=6AH
MOV CH,2 ;(CH)=2
MOV BL,AL ;(BL)=106=6AH
RO: MOV CL,4 ;(CL)=4
ROL BL,CL ;(BL)=166=A6H
MOV DL,BL ;(DL)=166=A6H
AND DL,0FH ;(DL)=6
CMP dl,9
JLE AR ;如果dl中的内容小于等于9则转移到AR执行
ADD dl,7 ;如果大于9也就是十六进制数值的话就多加7,因为A-F的ASCII码比实际数值逻辑与上30后大7
AR: ADD DL,30H ;(DL)=36H,这里进行ASCII与数值转换
MOV AH,2 ;调用2号DOS中断
INT 21H
DEC CH ;再次循环用于输出字符'A'
JNE RO
MOV AH, 4CH
INT 21H
CODE ENDS
END START

我是金子,我要闪光的
2006-12-10 16:53
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 

不错楼上的注释很好啊 ,我想楼主应该能看懂的,要是实在看不懂的话,我建议你把最基本的输出指令
MOV AH,2 ;调用2号DOS中断
INT 21H
好好的看看,他是把DL中的内容按照ASCII表中对应的字符输出在屏幕上的!


♂ 死后定当长眠,生前何须久睡。♀
2006-12-10 19:08
快速回复:谁能帮小弟解释下结果是怎么算出来的
数据加载中...
 
   



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

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