打印

430汇编程序,将一个100以内2位数转换成低位和高位数分别输

[复制链接]
1316|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
emdgbx|  楼主 | 2014-4-25 21:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就比如电子表秒数计算到25,想把25分成2和5分别查表就可以显示出来,这个小程序用汇编应该怎么写呢?PS:老师就让我用汇编编程序,真的头都大了。

老师给了我一个下面的程序,但是我实在是看不明白,求大神帮忙解读一下:
;将100以内二进制数转化为ASC码
l_str2_zcx
        swpb    r15
        clr     r14
        mov     #8,r13
l_str2_loop
        rlc     r15
        dadd.b  r14,r14
        dec     r13
        jnz     l_str2_loop
        mov.b   r14,r15
        and.b   #00fh,r15
        rla     r14
        rla     r14
        rla     r14
        rla     r14
        swpb    r14
        and.b   #00fh,r14
        add.b   #30h,r15
        add.b   #30h,r14
        ret

相关帖子

沙发
airwill| | 2014-4-25 22:06 | 只看该作者
新人发帖, 支持一下.
就这么点长的程序, 怎么都能啃下来, 翻开指令表, 花点时间慢慢揣摩吧
鼓励一下, 努力哦

使用特权

评论回复
板凳
shenmu2012| | 2014-4-25 23:26 | 只看该作者
楼主竟然还用汇编语言,,非常强大的,佩服

使用特权

评论回复
地板
shenmu2012| | 2014-4-25 23:28 | 只看该作者
这个要看你是怎样理解的啦,100以内的两位数,就是个位与十位数的,将原数字除以十的,商加上48输出,余数也加上48输出的就可以了

使用特权

评论回复
5
dirtwillfly| | 2014-4-27 11:32 | 只看该作者
不懂汇编,帮顶顶。
觉得玩汇编要有更多耐心

使用特权

评论回复
6
emdgbx|  楼主 | 2014-4-27 12:14 | 只看该作者
shenmu2012 发表于 2014-4-25 23:28
这个要看你是怎样理解的啦,100以内的两位数,就是个位与十位数的,将原数字除以十的,商加上48输出,余数 ...

加上48是为了转换成ASC码么,如果直接转换成BCD码呢,这几天被这些各种码怎么用弄懵了,求大神指点下

使用特权

评论回复
7
vivilzb1985| | 2014-4-28 20:03 | 只看该作者
emdgbx 发表于 2014-4-27 12:14
加上48是为了转换成ASC码么,如果直接转换成BCD码呢,这几天被这些各种码怎么用弄懵了,求大神指点下 ...

也来回复下楼主的啊,+48就是为了转化成ASCII码输出的

使用特权

评论回复
8
vivilzb1985| | 2014-4-28 20:05 | 只看该作者
BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常用的;无权BCD码有余3码、格雷码等。

使用特权

评论回复
9
vivilzb1985| | 2014-4-28 20:05 | 只看该作者
8421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。

使用特权

评论回复
10
vivilzb1985| | 2014-4-28 20:06 | 只看该作者
这个奖的时BCD码的,了解了这些的,再去想这个算法的就容易多了

使用特权

评论回复
11
emdgbx|  楼主 | 2014-5-6 17:22 | 只看该作者
vivilzb1985 发表于 2014-4-28 20:06
这个奖的时BCD码的,了解了这些的,再去想这个算法的就容易多了

非常非常感谢你的讲解!

使用特权

评论回复
12
vivilzb1985| | 2014-5-7 22:43 | 只看该作者
嗯,共同学习的啊

使用特权

评论回复
13
houjiakai| | 2014-5-7 22:52 | 只看该作者

使用特权

评论回复
14
emdgbx|  楼主 | 2014-5-11 20:58 | 只看该作者
vivilzb1985 发表于 2014-5-7 22:43
嗯,共同学习的啊

在请教一个小问题,就是在显示查表程序中,例如下面这个小程序,
R15中一开始是有个数5的,add 之后是具体怎么操作呢?是把地址给了r15,还是怎么查表的呢?

        add     #lcd_7d_tab,r15
        mov.b   @r15,r15
        mov.b   r15,&dis_buf_b+7

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

32

帖子

0

粉丝