找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2117|回复: 4
收起左侧

汇编:多字节十六进制转换成十进制

[复制链接]
ID:983036 发表于 2021-11-21 10:45 | 显示全部楼层 |阅读模式
比如30H和31H存储两字节十六进制FFFFH,则要将转换后的十进制65535依次存在40H开始的地址中,即40H->06H,41H->05H,42H->05H,43H->03H,44H->05H。求大神解答,或是提供思路。
回复

使用道具 举报

ID:72088 发表于 2021-11-21 15:01 | 显示全部楼层
1.png 2.png

回复

使用道具 举报

ID:624769 发表于 2021-11-21 21:52 | 显示全部楼层
本帖最后由 188610329 于 2021-11-23 14:02 编辑

汇编, 一般都要结合自己的单片机的硬件, 写出合适的代码, 很难像C一样直接抄别人的代码,因为硬件不同,在不知道硬件的情况下,可能只有用加法器是最安全的。但实际上,很多单片机有16位甚至32位除法器,那么代码其实可以极其简单,效率可以很高。既然你走汇编这条路,那么最好就是了解自己搞得这块单片机的硬件特点,用最高的效率来做,不然还是玩C比较好。
沙发给了你一个DA + 加法器的代码,我就顺手给你一个 用 8位除法器的好了。
特意按你的要求改写的,本来是用来做别的事的。


HEX2BCD:
        MOV        A,31H
        ANL        A,#0FH
        MOV        R7,A
        MOV        A,31H
        SWAP        A
        ANL        A,#0FH
        MOV        R6,A
        MOV        R5,30H
        MOV        R2,#5                ;5位数
        MOV        R1,#10                ;10进制计算,也可以算11进制,9进制等特殊进制。
        MOV        R0,#44H                ;40H 开始 5位数
Transfer:
        MOV        A,R5
        MOV        B,R1
        DIV        AB
        MOV        R5,A
        MOV        A,B
        SWAP        A
        ORL        A,R6
        MOV        B,R1
        DIV        AB
        MOV        R6,A
        MOV        A,B
        SWAP        A
        ORL        A,R7
        MOV        B,R1
        DIV        AB
        MOV        R7,A
        MOV        @R0,B
        DEC        R0
        DJNZ        R2,Transfer
        RET               

回复

使用道具 举报

ID:123289 发表于 2021-11-23 10:26 | 显示全部楼层
本帖最后由 yzwzfyz 于 2021-11-24 08:02 编辑

先调用沙发的程序,再将R345剖开,放入到你指定的地方。
剖开的方式:
可以利用SWAP 指令 ,再屏蔽高4位:
例:
MOV A, R4
ANL A, #0FH   ;低位就有了
...
MOV A, R4
SWAP A
ANL A, #0FH   ;高位也有了

回复

使用道具 举报

ID:401564 发表于 2021-11-23 13:40 | 显示全部楼层
这对于汇编来说,并不是很高深的东西,如果学得会就学,学不会就学C语言
8051还有个DA A指令和乘法除法之类的,别的汇编就没有这些个指令了,就只能一个一个的加或者减了,可以说8051汇编在单片机汇编里算是最友好的的了,这都学不会的话,就直接放弃汇编吧,汇编是一项加分技能,但并不是一项必知必会的技能
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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