打印

谁有好的算法

[复制链接]
1605|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guoyt|  楼主 | 2021-9-12 10:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这10位二进制数可以使高8位在一字节,或者高2位在一字节.谁有好的算法. 用汇编.

使用特权

评论回复
沙发
heweibig| | 2021-9-12 10:42 | 只看该作者
10位二进制数高两位本来就在一字节,要算什么?

使用特权

评论回复
板凳
morrisk| | 2021-9-12 10:43 | 只看该作者

要高八位在一个字节,直接用移位指令移两位就行了,够简单了,你想要整复杂的算法吗?

使用特权

评论回复
地板
zwll| | 2021-9-12 10:46 | 只看该作者
不要简单事情复杂化。

使用特权

评论回复
5
dingy| | 2021-9-12 10:51 | 只看该作者
输入  r7: b9 b8 b7 b6 b5 b4 b3 b2
          r6: b1 b0  0   0   0   0   0   0
输出  r7:  千位  百位
       r6:  十位  个位
;=======================
         mov a,r7
         mov b,#25
         div ab
         add a,#0
         da  a
         mov r7,a
         mov a,#10
         xch a,b
         orl a,r6
         rl  a
         rl  a
         div ab
         swap a
         orl a,b
         mov r6,a

使用特权

评论回复
6
dengdc| | 2021-9-12 10:52 | 只看该作者
错???      
        mov a,r7
         mov b,#25
         div ab
         add a,#0
         da  a
         mov r7,a
         mov a,b
         orl   a,r6
         rl  a
         rl  a
         add a, #0
         da  a
         mov r6,a

使用特权

评论回复
7
jlyuan| | 2021-9-12 10:54 | 只看该作者

对与错验证一下便知了。比如说输入16,(r7r6 = 00000100  00xxxxxx)
3 楼输出:r7r6 = 0016 h(bcd)
4 楼输出:r7r6 = 0010 h(???)

使用特权

评论回复
8
pengf| | 2021-9-12 10:55 | 只看该作者

恩,打错了
         mov a,r7
         mov b,#25
         div ab
         add a,#0
         da  a
         mov r7,a
         mov a,b
         orl   a,r6
         add a,acc
         add a,acc
         da  a
         mov r6,a

使用特权

评论回复
9
heweibig| | 2021-9-12 10:57 | 只看该作者
R7=37,R6=0时试了一下,3楼对,5楼错

使用特权

评论回复
10
guoyt|  楼主 | 2021-9-12 10:59 | 只看该作者
多谢大家,明白了

使用特权

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

本版积分规则

1018

主题

9067

帖子

3

粉丝