8085微處理器檢查迴文程式


在這裡,我們將看到一個8085微處理器程式,它可以檢查一個數字是否為迴文。

問題陳述

編寫一個8085組合語言程式來檢查一個位模式是否為迴文。

討論

在這個程式中,我們從8000H位置獲取數字。如果數字不是迴文,程式將返回00H,否則將返回FFH。

例如,輸入為18H,則二進位制值為(0001 1000),這是一個迴文。數字52H (0101 0010)則不是迴文。

在這個問題中,我們將第一個數字放入累加器,然後將其左移。當它左移時,MSB將被放置到LSB,並且也會在進位標誌中。這個進位標誌透過右移插入D暫存器。因此,位模式將被反轉,現在透過檢查實際數字和反轉數字的值,我們可以確定它是否為迴文。

輸入

第一個輸入

地址
資料


8000
BD



第二個輸入

地址
資料


8000
52


第三個輸入

地址
資料


8000
18


流程圖

程式

地址
十六進位制程式碼
標籤
助記符
註釋
F000
3A, 00, 80
 
LDA 8000H  
將數字載入到A
F003
67
 
MOV H,A
將Acc移到H
F004
0E, 08
 
MVI C,08H  
初始化計數器
F006
7C
LOOP
MOV A,H
將H載入到Acc
F007
07
 
RLC
左移
F008
67
 
MOV H,A
將Acc移回H
F009
7A
 
MOV A,D
將D內容載入到Acc
F00A
1F
 
RAR
帶進位的右移
F00B
57
 
MOV D,A
將Acc移回D
F00C
0D
 
DCR C  
遞減C
F00D
C2, 06, F0
 
JNZ LOOP  
如果Z=0,則跳轉到LOOP
F010
7C
 
MOV A,H
將H資料載入到Acc
F011
BA
 
CMP D  
將D與Acc比較
F012
CA, 1A, F0
 
JZ TRUE
如果兩者相同,則為迴文
F015
3E, 00
 
MVI A, 00H
將00H載入到A
F017
C3, 1C, F0
 
JMP EXIT  
跳轉到Exit
F01A
3E, FF
TRUE
MVI A,FFH  
將FFH載入到A
F01C
32, 50, 80
EXIT
STA 8050H  
將結果儲存到記憶體中
F01F
76
 
HLT
終止程式

 

輸出

第一個輸出

地址
資料


8050
FF


第二個輸出

地址
資料


8050
00


第三個輸出

地址
資料


8050
FF


 

更新於: 2019年10月5日

1K+瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告