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 | LXIH, 8000H | 載入數字的地址 | |
| F003 | 7E | MOVA, M | 從記憶體中載入ASCII資料到累加器 | |
| F004 | FE,58 | CPI58H | 與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 | MOVM, A | 將累加器內容儲存到記憶體 | |
| F012 | 76 | HLT | 終止程式 |
輸出
第一個輸出
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8001 | 0A |
| . . . | . . . |
第二個輸出
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8001 | 05 |
| . . . | . . . |
第三個輸出
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8001 | 0F |
| . . . | . . . |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP