欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 匯編:多字節十六進制轉換成十進制 [打印本頁]

作者: cheney。    時間: 2021-11-21 10:45
標題: 匯編:多字節十六進制轉換成十進制
比如30H和31H存儲兩字節十六進制FFFFH,則要將轉換后的十進制65535依次存在40H開始的地址中,即40H->06H,41H->05H,42H->05H,43H->03H,44H->05H。求大神解答,或是提供思路。

作者: 新鄉家電維修    時間: 2021-11-21 15:01



作者: 188610329    時間: 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               


作者: yzwzfyz    時間: 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   ;高位也有了


作者: Y_G_G    時間: 2021-11-23 13:40
這對于匯編來說,并不是很高深的東西,如果學得會就學,學不會就學C語言
8051還有個DA A指令和乘法除法之類的,別的匯編就沒有這些個指令了,就只能一個一個的加或者減了,可以說8051匯編在單片機匯編里算是最友好的的了,這都學不會的話,就直接放棄匯編吧,匯編是一項加分技能,但并不是一項必知必會的技能




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1