8085微處理器檢查五選二碼的程式


這裡我們將看到一個8085微處理器的程式。這個程式將幫助我們檢查給定的值是否為有效的五選二碼。

問題陳述

編寫一個8085組合語言程式來檢查給定的數字是否為五選二碼。數字儲存在8000H位置。

討論

五選二碼的檢查很簡單。首先,我們必須檢查前三位是否為0。如果它們為0,那麼我們將檢查接下來的五位。如果這五位中恰好有兩個1,那麼它就是一個有效的五選二碼。

這裡,我們首先使用(1110 0000)與數字進行AND運算,如果前三位為0,則結果將為0,之後我們使用旋轉操作來檢查1的個數。如果進位標誌被啟用,則計數將增加。因此,1的總數將被反映出來。

如果數字是有效的五選二碼,則此程式將把FFH儲存到8050H位置,否則將把00H儲存到8050H位置。

輸入

第一個輸入

地址
資料
.
.
.
.
.
.
8000
12
.
.
.
.
.
.

第二個輸入

地址
資料
.
.
.
.
.
.
8000
13
.
.
.
.
.
.

第三個輸入

地址
資料
.
.
.
.
.
.
8000
03
.
.
.
.
.
.

 

流程圖

程式

地址
十六進位制程式碼
標籤
助記符
註釋
F000
3A, 00, 80
 
LDA 8000H  
從記憶體中載入數字
F003
67
 
MOV H,A
將A載入到H
F004 2E, 00

MVI L,00H  
清除暫存器L
F006
E6, E0
 
ANI E0H
將累加器和11100000b進行AND運算
F008
C2, 21, F0
 
JNZ DONE  
如果Z = 0,跳轉到Done
F00B
7C
 
MOV A,H
將H載入到A
F00C
0E, 05
 
MVI C,05H  
將C載入為05H用於計數
F00E
16, 00
 
MVI D,00H  
清除暫存器D
F010
0F
LOOP
RRC
將累加器內容向右旋轉
F011
D2, 15, F0
 
JNC SKIP  
如果CY = 0,跳轉到skip
F014
14
 
INR D  
將D增加1
F015
0D
SKIP
DCR C  
將C減1
F016
10, F0
 
JNZ LOOP  
跳轉到LOOP
F019
3E, 02
 
MVI A,02H  
將A初始化為02H
F01B
BA
 
CMP D  
將D與A比較
F01C
C2, 21, F0
 
JNZ DONE  
如果Z = 0,跳轉到DONE
F01F
2E, FF
 
MVI L,FFH  
將L載入為FFH
F021
7D
DONE
MOV A,L
將結果從L取到A
F022
32, 50, 80
 
STA 8050H
將結果儲存在8050H
F025
76
 
HLT
終止程式

 

輸出

第一個輸出

地址
資料


8050
FF


第二個輸出

地址
資料


8050
00


第三個輸出

地址
資料


8050
FF



更新於:2019年10月5日

297次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.