鱼C论坛

 找回密码
 立即注册
查看: 1575|回复: 4

程序段求完善

[复制链接]
发表于 2014-4-23 22:16:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
寄存器BX中有4位0~9的十六进制数,编写程序段,将其转换为对应字符(即ASCII码),按从高到底的顺序分别存入L1,L2,L3,L4四个字节单元中。


我的程序段如下:

MOV CL,4

MOV AL,BL
AND AL,0FH
CMP AL,0AH
JC DIGT4
ADD AL,7
DIGT4:ADD AL,30H
MOV L4,AL

MOV AL,BL
SHR AL,CL
CMP AL,0AH
JC DIGT3
ADD AL,7
DIGT3:ADD AL,30H
MOV L3,AL

MOV AL,BH
AND AL,0FH
CMP AL,0AH
JC DIGT2
ADD AL,7
DIGT2:ADD AL,30H
MOV L2,AL

MOV AL,BH
SHR AL,CL
CMP AL,0AH
JC DIGT1
ADD AL,7
DIGT1:ADD AL,30H
MOV L1,AL


老师说我的程序段有问题,但是我不知道怎么改,求大神完善!~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-24 09:20:04 | 显示全部楼层
第一段比较跳转后的add al,7是何意思?题意是4位数都是0-9的,比较出来不是0-9的应该是不符合题意的,理应放弃转换程序跳转到下一个位继续比较,楼主为何要做add转换成0-9?这个也是不符合题意的,题目上没说要让你把不是0-9的转换为0-9,确实有点问题,而且没有任何注释,让读的人自己猜测你的想法,有点烦人:sad
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-24 10:39:19 | 显示全部楼层
mov cx,4
s:
        push cx               
        mov cl,4
        rol bx,cl
        pop cx               
mov al,bl
and al,ofh
cmp al,0ah
jc num
add al,7h
num:add al,30h
push ax                                ;入栈是从高到低
loop s
                                        ;出栈是从低到高
pop ax
mov L4,al
pop ax
mov L3,al
pop ax
mov L2,al
pop ax
mov L1,a1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-27 14:20:03 | 显示全部楼层

最近考试多没有上来看帖子,抱歉哈。你这么一说,我才发现我做了无用功。这程序段是我在作业本上打上来的,所以就没做了注释。总之谢谢你啦~:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-27 14:22:37 | 显示全部楼层
vkevke_3437 发表于 2014-4-24 10:39
mov cx,4
s:
        push cx               

一楼这么一说,确实是不用加上7H了,用出入栈的方法很好啊,学习到了:victory:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-30 22:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表