8085微處理器中將ASCII轉換為HEX的程式


在這裡,我們將看到一個8085微處理器程式。此程式將ASCII轉換為HEX值。

問題陳述

編寫一個8085組合語言程式,將ASCII轉換為十六進位制字元值。

討論

我們知道數字00H的ASCII為30H(48D),而09H的ASCII為39H(57D)。因此所有其他數字都在30H到39H的範圍內。0AH的ASCII值為41H(65D),0FH的ASCII值為46H(70D),因此所有其他字母(B、C、D、E、F)都在41H到46H的範圍內。

這裡的邏輯很簡單。我們檢查ASCII值是否小於58H(9的ASCII + 1)。當數字小於58時,它就是數值。因此,我們只需從ASCII值中減去30H,當它大於58H時,它就是字母值。因此,為此我們減去37H。

輸入

第一個輸入

地址
資料


8000
41


第二個輸入

地址
資料


8000
35


第三個輸入

地址
資料


8000
46


流程圖

 

 

 

程式

地址
十六進位制程式碼
標籤
助記符
註釋
F000
21, 00, 80


LXI H, 8000H
載入數字的地址
F003
7E


MOV A,M
將ASCII資料從記憶體載入到累加器
F004
FE, 58


CPI 58H
與ASCII(9) + 1比較
F006
D2, 0E, F0


JNC NUM
輸入為數字
F009
D6, 37


SUI 37H
減去偏移量以獲得字母字元
F00B
C3, 10, F0


JMP STORE
儲存結果
F00E
D6, 30
NUM
SUI 30H
減去30以獲得數值
F010
23
STORE
INX H
指向下一個位置
F011
77


MOV M,A
將累加器內容儲存到記憶體
F012
76


HLT
終止程式


輸出

第一個輸出

地址
資料


8001
0A


第二個輸出

地址
資料


8001
05


第三個輸出

地址
資料


8001
0F


更新於: 2019年10月9日

607 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.