8085程式檢查給定的16位數是否為迴文數
在這個程式中,我們將看到如何檢查一個16位數是否為迴文數。
問題陳述
編寫8085組合語言程式來檢查一個16位數是否為迴文數。該數字儲存在8000H和8001H位置。
討論
如果一個數字與其反向序列相同,則該數字為迴文數。例如,5225是迴文數,但ABCD不是迴文數。
在這個問題中,我們取該數字並將其儲存到HL暫存器對中。然後,我們對L的內容執行反向操作。如果H和更新後的L值相同,則該數字為迴文數。為了檢查這一點,我們對H和L執行異或運算。當結果為0時,它是迴文數,否則不是迴文數。
如果數字是迴文數,我們將在8050H位置儲存FFH,如果不是迴文數,則在8050H位置儲存00H。
輸入
| 地址 | 資料 |
|---|---|
| … | … |
| 8000 | 25 |
| 8001 | 52 |
| … | … |
輸入
| 地址 | 資料 |
|---|---|
| … | … |
| 8000 | CD |
| 8001 | AB |
| … | … |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| F000 | 2A, 00, 80 | | LHLD 8000H | 將16位數從記憶體取到HL暫存器對 |
| F003 | 7D | | MOV A,L | 將L暫存器內容送入A暫存器 |
| F004 | 0F | | RRC | 累加器迴圈右移四次 |
| F005 | 0F | | RRC | |
| F006 | 0F | | RRC | |
| F007 | 0F | | RRC | |
| F008 | AC | | XRA H | A暫存器與H暫存器進行異或運算 |
| F009 | 3E, FF | | MVI A,FFH | 將FFH載入到A暫存器 |
| F00B | CA, 0F, F0 | | JZ STORE | 如果Z=1,跳轉到STORE |
| F00E | AF | | XRA A | 否則將A設定為0 |
| F00F | 32, 50, 80 | STORE | STA 8050H | 將結果儲存到8050H |
| F012 | 67 | | HLT | 程式結束 |
輸出
| 地址 | 資料 |
|---|---|
| … | … |
| 8050 | FF |
| … | … |
輸出
| 地址 | 資料 |
|---|---|
| … | … |
| 8050 | 00 |
| … | … |
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP