找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3960|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

求一個匯編程序,如何將單字節(jié)16進制數(shù)00-FF轉(zhuǎn)為3個字節(jié)的ASCII碼保存在不同地址

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:421538 發(fā)表于 2018-11-7 16:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如何將單字節(jié)16進制數(shù)00-FF轉(zhuǎn)為3個字節(jié)的ASCII碼,保存在地址10H,11H,12H三個地址中(按格式000-255占3個字節(jié))
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:401564 發(fā)表于 2018-11-8 00:10 | 只看該作者
你這個問題有問題,比如說,我有一個16進制的的數(shù):50,它是存放在一個的16位的地址中,那問題來了:所謂"轉(zhuǎn)換成3個字節(jié)的ASCII碼"什么意思,50的ASCII是"2",那我是要轉(zhuǎn)換成"002"還是"050",我怎么放到你說的這三個地址中??
你干脆說你要干嘛就得了
回復(fù)

使用道具 舉報

板凳
ID:111634 發(fā)表于 2018-11-8 09:00 | 只看該作者
這是老師布置的習(xí)題,答案書上有的。介紹你2本書,張志良編著的《單片機原理與控制技術(shù)——雙解匯編和C51》第3版ISBN 978-7-111-42393-5機械工業(yè)出版社!秵纹瑱C學(xué)習(xí)指導(dǎo)及習(xí)題解答——雙解匯編和C51》第2版ISBN 978-7-111-42431-4機械工業(yè)出版社。后書是前書的配套教材,但也可單獨使用。
回復(fù)

使用道具 舉報

地板
ID:421538 發(fā)表于 2018-11-8 09:16 | 只看該作者
我想讓一個16進制遞增或遞減,然后通過串口發(fā)送,串口發(fā)送的是5個字節(jié):41 31 35 37 56,字符串就是A157V,比如16進制數(shù)80H,對應(yīng)的十進制是128,ASCC的3字節(jié)表示是31H,32H,38H,怎么把16進制的數(shù)80H變?yōu)?個字節(jié)31H,32H,38H
回復(fù)

使用道具 舉報

5#
ID:401564 發(fā)表于 2018-11-8 10:30 | 只看該作者
你直接說128變成"1","2","8",再轉(zhuǎn)換成"1","2","8"對應(yīng)的ASCII碼發(fā)送不就好了.
一,先把128除以100,得到百位1,余數(shù)就是28,再除以10,得到十位2,余數(shù)就是8了,分別放到三個地址,就是"1","2","8"了
二,把這個值再加10進制的48就可以了,因為,ASCII碼的0是48,之后都是連續(xù)的數(shù),直接運算就可以了
比如: f是102,分解出來就是"1","0","2",一樣的處理就可以了
回復(fù)

使用道具 舉報

6#
ID:387733 發(fā)表于 2018-11-8 10:45 | 只看該作者
匯編程序,16進制數(shù)存放 bin,  ascii 百位 bai, 十位 shi, 個位 ge:

                        MOV      A,bin        ; 16進制數(shù)
                        MOV      B,#100
                        DIV       AB
                        ADD      A,#0x30
                        MOV      bai,A       ;百位

                        MOV      A,B
                        MOV      B,#10
                        DIV       AB
                        ADD      A,#0x30
                        MOV      shi,A           ; 十位

                        MOV      A,B
                        ADD      A,#0x30
                        MOV     ge,A           ; 個位

C程序語句:

        bai = bin/100 +0x30;
        shi = bin%100/10 +0x30;
        ge  = bin%10 +0x30;
回復(fù)

使用道具 舉報

7#
ID:421538 發(fā)表于 2018-11-8 11:46 | 只看該作者
非常謝謝sxhwdz ,按你的已經(jīng)編譯通過
回復(fù)

使用道具 舉報

8#
ID:421538 發(fā)表于 2018-11-8 11:49 | 只看該作者
非常感謝大家的幫助
回復(fù)

使用道具 舉報

9#
ID:123289 發(fā)表于 2018-11-8 13:24 | 只看該作者
;格式轉(zhuǎn)換類BIN→BCD----
BINTOBCDA1:     DB      00H, 16H, 32H, 48H, 64H, 80H, 96H, 12H
;BINTOBCDA.ASM:單字節(jié)BIN→BCD,A→A。(A.7自動去除,低7位<100)
;影響:PSW,A,B。
BINTOBCDA:      PUSH    DPH
                PUSH    DPL
                PUSH    ACC
                SWAP    A
                ANL     A, #C_07H
                MOV     DPTR, #BINTOBCDA1
                MOVC    A, @A+DPTR
                MOV     DPL, A
                POP     ACC
                ANL     A, #C_0FH
                ADD     A, #0
                DA      A
                ADD     A, DPL
                DA      A
                POP     DPL
                POP     DPH
                RET     
;A_TOBCD_BA.ASM:單字節(jié)BIN→BCD,A→BA。
;影響:PSW,A,B。
A_TOBCD_BA:     PUSH    ACC
                ANL     A, #C_3FH
                CALL    BINTOBCDA                   ;先處理低6位<64
;再處理高二位
                POP     B
                ANL     B, #11000000B               ;只留兩個可能產(chǎn)生>99的位
                JBC     B.6, A_BCD_BA1              ;需要+64
                JMP     A_BCD_BA2
;B.6=1則BA+64
A_BCD_BA1:      ADD     A, #C_64H
                DA      A
                JNC     A_BCD_BA2
                INC     B                           ;進位到百
A_BCD_BA2:      JBC     B.7, A_BCD_BA3              ;需要+128
                JMP     A_BCD_BA4
;B.7=1則BA+128
A_BCD_BA3:      ADD     A, #C_28H
                DA      A
                XCH     A, B                        ;百位交換到A
                ADDC    A, #C_1                     ;百位+100并帶進位
                XCH     A, B                        ;百位換回
A_BCD_BA4:      RET     
回復(fù)

使用道具 舉報

10#
ID:123289 發(fā)表于 2018-11-8 13:26 | 只看該作者
需要你增加定義:
C_XX
回復(fù)

使用道具 舉報

11#
ID:123289 發(fā)表于 2018-11-8 13:28 | 只看該作者
需要你增加定義:
C_??      EQU     ??      ;??是數(shù)字。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表