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