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 |
| … | … |
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP