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。

輸入

第一個輸入

地址資料
. . .. . .
800041
. . .. . .

第二個輸入

地址資料
. . .. . .
800035
. . .. . .

第三個輸入

地址資料
. . .. . .
800046
. . .. . .

流程圖

程式

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


LXIH, 8000H載入數字的地址
F0037E


MOVA, M從記憶體中載入ASCII資料到累加器
F004FE,58


CPI58H與ASCII(9) + 1比較
F006D2,0E, F0


JNC NUM輸入為數字
F009D6,37


SUI 37H減去偏移量以獲取字母字元
F00BC3,10, F0


JMP STORE儲存結果
F00ED6,30NUMSUI 30H減去30以獲取數值
F01023STOREINX H指向下一個位置
F01177


MOVM, A將累加器內容儲存到記憶體
F01276


HLT終止程式

輸出

第一個輸出

地址資料
. . .. . .
80010A
. . .. . .

第二個輸出

地址資料
. . .. . .
800105
. . .. . .

第三個輸出

地址資料
. . .. . .
80010F
. . .. . .

更新於: 2020年6月26日

3K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.