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


更新於: 2019年7月30日

390 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告