8085程式:帶指定延時的D0位交替


現在讓我們來看一個Intel 8085微處理器的程式。在這個程式中,我們將看到如何交替D0位並將其作為輸出傳送。

問題陳述

編寫8085組合語言程式以交替D0位,並將其作為輸出傳送。

討論

交替D0位並將其作為輸出傳送就像生成方波一樣。我們在每個階段都增加了額外的延遲。為了用8085生成方波,我們將連續旋轉10101010 (AAH),並將D0作為輸出。我們將使用01H遮蔽累加器的內容。如果為0,則輸出為0;如果為1,則輸出為1,從而生成脈衝。傳送後,它將使用延遲子程式等待一段時間。

輸入

此情況下沒有輸入。

流程圖

 

程式

地址
十六進位制程式碼
標籤
助記符
註釋
8000
16, AA
 
MVI D,AAH
將10101010載入到D中
8002
7A
ROTATE
MOV A,D
將D載入到A中
8003
07
 
RLC
將A左移旋轉
8004
57
 
MOV D,A
再次將A儲存到D中
8005
E6, 01
 
ANI 01H
用01H遮蔽A
8007
D3, 10
 
OUT 10H
將輸出傳送到10埠
8009
CD, 0F, 80
 
CALL DELAY
等待一段時間
800C
C3, 02, 80
 
JMP ROTATE
跳轉到ROTATE進行下一階段
800F
C5
DELAY
PUSH B
儲存B。此延遲子程式使用2個單暫存器A & D和1個暫存器對BC
8010
F5
 
PUSH PSW
儲存PSW
8011
16, 0F
 
MVI D, 0F H
載入外部迴圈計數器
8013
01, 00, 10
ST
LXI B, 1000 H
載入內部迴圈計數器
8016
0B
L
DCX B
遞減內部計數器
8017
79
 
MOV A, C
如果未耗盡,則再次進行內部迴圈
8018
B0
 
ORA B
 
8019
C2, 27, 80
 
JNZ L
 
801C
15
 
DCR D
遞減外部計數器
801D
C2, 24, 80
 
JNZ ST
如果未耗盡,則再次進行外部迴圈
8020
F1
 
POP PSW
恢復PSW
8021
C1
 
POP B
恢復B
8022
C9
 
RET
返回呼叫程式

 

輸出

交替的D0將像方波一樣反映為輸出。

 

更新於:2019年10月7日

276 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

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