8085 微處理器中將 ASCII 轉換為二進位制的程式


在這裡,我們將看到一個 8085 程式,該程式將 ASCII 轉換為二進位制值。

問題陳述

 編寫一個 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 月 5 日

589 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.