汇编bcd码转十进制语言实现两个多位十进制相加

汇编语言 帮帮看看哪里错了 作业题 从键盘输入一个十六进制数将其转化为十进制并输出
[问题点数:40分]
汇编语言 帮帮看看哪里错了 作业题 从键盘输入一个十六进制数将其转化为十进制并输出
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2016年3月 其他开发语言大版内专家分月排行榜第二2014年10月 其他开发语言大版内专家分月排行榜第二2013年7月 Windows专区大版内专家分月排行榜第二2013年5月 其他开发语言大版内专家分月排行榜第二2013年4月 其他开发语言大版内专家分月排行榜第二2012年11月 其他开发语言大版内专家分月排行榜第二2012年6月 其他开发语言大版内专家分月排行榜第二2011年11月 其他开发语言大版内专家分月排行榜第二2011年9月 其他开发语言大版内专家分月排行榜第二2010年6月 其他开发语言大版内专家分月排行榜第二2007年4月 其他开发语言大版内专家分月排行榜第二2006年12月 其他开发语言大版内专家分月排行榜第二2006年11月 其他开发语言大版内专家分月排行榜第二2005年6月 其他开发语言大版内专家分月排行榜第二2003年5月 其他开发语言大版内专家分月排行榜第二2003年3月 其他开发语言大版内专家分月排行榜第二
2013年11月 其他开发语言大版内专家分月排行榜第三2013年8月 其他开发语言大版内专家分月排行榜第三2012年12月 其他开发语言大版内专家分月排行榜第三2012年9月 其他开发语言大版内专家分月排行榜第三2012年8月 其他开发语言大版内专家分月排行榜第三2012年5月 其他开发语言大版内专家分月排行榜第三2011年12月 其他开发语言大版内专家分月排行榜第三2010年12月 其他开发语言大版内专家分月排行榜第三2010年9月 其他开发语言大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。2422人阅读
用java数十行搞定的程序,用汇编要100多行。。。
而且还不支持异常处理,崩溃啊。。。
不过对于汇编基本的数据处理啥的还是有帮助的,
上程序,win32汇编
.model small
remind_msg_1 db "please input the first number",0ah,0dh,"$"
number_1 db 5 ;数字字符串缓冲区1
db 5 dup(?)
number_value_1 dw ?,"$"
remind_msg_2 db "please input the second number",0ah,0dh,"$"
number_2 db 5 ;数字字符串缓冲区2
db 5 dup(?)
number_value_2 dw ?,"$"
change_line_msg
db 0ah,0dh,"$"
count db ?,"$";循环数目
factor dw ?,"$";乘数因子
temp_result dw ?,"$"
result dw ?,"$"
change_line proc near
lea dx,change_line_msg
mov ah,09h
change_换行
calc_factor proc near
lea si,factor
mov word ptr[si],ax
calc_计算乘数,最后结果放在factor中,参数需要cx
sub_mul proc near
lea si,factor
mov ax,word ptr[si]
lea si,temp_result
mov word ptr[si],ax
sub_两个数分别放在al,factor中,求最后结果放在temp_result中
add_ proc near
lea si,temp_result
mov ax,word ptr[si]
lea si,result
mov bx,word ptr[si]
mov word ptr[si],bx
add_把result+temp_result放到result中
lea dx,remind_msg_1
mov ah,09h
int 21h;print info
lea dx,number_1
mov ah,0ah
int 21h;input first number
call change_line
lea dx,remind_msg_2
mov ah,09h
int 21h;print info
lea dx,number_2
mov ah,0ah
int 21h;input second number
call change_line
;调用multi的准备工作
lea si,result
mov word ptr[si],cx
lea si,number_1+1
mov cl,byte ptr [si];cl中放了这个长度
lea si,number_1+2
mov al,byte ptr[si][bx]
sub al,30h
call calc_factor
call sub_结果在temp_result中
loop calc_1;完成以后结果在result中
lea si,result
mov ax,word ptr[si]
lea si,number_value_1
mov word ptr[si],存储了第一个数字的结果
;调用multi的准备工作
lea si,result
mov word ptr[si],cx
lea si,number_2+1
mov cl,byte ptr [si];cl中放了这个长度
lea si,number_2+2
mov al,byte ptr[si][bx]
sub al,30h
call calc_factor
call sub_结果在temp_result中
loop calc_2;完成以后结果在result中
lea si,result
mov ax,word ptr[si]
lea si,number_value_2
mov word ptr[si],存储了第一个数字的结果
lea si,number_value_1
mov ax,word ptr[si]
lea si,number_value_2
mov bx,word ptr[si]
mov bx,10000
add dl,30h
mov ah,02h
mov bx,1000
add dl,30h
mov ah,02h
mov bx,100
add dl,30h
mov ah,02h
add dl,30h
mov ah,02h
add dl,30h
mov ah,02h
mov ax,4c00h
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:138439次
积分:2003
积分:2003
排名:第13452名
原创:53篇
评论:76条
(1)(1)(4)(1)(1)(2)(2)(1)(1)(3)(6)(7)(12)(7)(4)(2)(4)(1)如何用汇编语言实现十六进制转十进制原理?
例如说将十六进制下的0037转化为十进制下的57输出
已有帐号?
无法登录?
社交帐号登录只需一步,快速开始
后使用快捷导航没有帐号?
查看: 2819|回复: 12
输入16位二进制数将其转换为10进制显示
签到天数: 53 天[LV.5]常住居民I
1.PNG (27.33 KB, 下载次数: 3)
19:41 上传
2.PNG (22.8 KB, 下载次数: 2)
19:41 上传
以上是我编的一部分,但是到了46行,我只编了一个显示“=”,可是结果却显示了三个“=”,
4.PNG (1.86 KB, 下载次数: 1)
19:41 上传
为什么?还有十六进制怎么转换为十进制显示呢,不太会啊,求助大神……
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 648 天[LV.9]以坛为家II
不是很懂哦,顶下,坐等大神
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 2 天[LV.1]初来乍到
:lol:貌似我也不懂!
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 28 天[LV.4]偶尔看看III
好厉害的样子。
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 14 天[LV.3]偶尔看看II
我想把bcd变量中2个字节的bcd码转化为4个字节的bcd码,请懂的帮忙
code& && &&&segment
& && &&&assume cs:code
bcd db& && && &12h,34h
bcd2& && && &db 0,0,0,0
start:& && && &mov al,bcd
接下来怎么编?
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 6 天[LV.2]偶尔看看I
本帖最后由 qq 于
16:13 编辑
mov dl,0x0d
mov dl,0x0a
;-----------------
;你把0DH,0AH传给AL了,而DL还是=
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 111 天[LV.6]常住居民II
1.直接用0nXX,不要用H后缀
2.16转10进制后,再加30,就可以显示了。
我没仔细看,只看了你的问题。
至于会出现===,可能是算法出错,但是它没显示出来,直接显示=号
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 53 天[LV.5]常住居民I
我也发现了,一时手误……
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 53 天[LV.5]常住居民I
ravenhu13 发表于
1.直接用0nXX,不要用H后缀
2.16转10进制后,再加30,就可以显示了。
我没仔细看,只看了你的问题。
为什么呢?为什么一定要用0nXX的形式啊
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 6 天[LV.2]偶尔看看I
;关于16进制转10进制显示
;我是用的nasm,和masm区别不大
jmp _start:
db 0,0,0,0,0
mov ax,_data_16
mov ax,_data_10
mov ax,[ds:0]
mov [es:si],dl
mov ax,0xB800
mov al,[es:si]
add al,0x30
mov [ds:bx],ax
loop _show
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 9 天[LV.3]偶尔看看II
不懂顶下楼主
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 174 天[LV.7]常住居民III
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
签到天数: 114 天[LV.6]常住居民II
强烈支持楼主ing……
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
•••(
Powered by}

我要回帖

更多关于 汇编bcd码转十进制 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信