8085微處理器中的正數呼叫(CP)


在8085指令集中,CP是一個助記符,代表“Call if Positive”(正數呼叫)。只有當S標誌位的值為0時,此指令才跳轉到指令中提供的16位地址的子程式。如果S標誌位的值為1,則程式流程將按順序繼續執行主程式。這是一個3位元組指令。

助記符,運算元
操作碼(十六進位制)
位元組
CP標籤
F4
3


讓我們考慮以下示例程式碼以更好地解釋:

地址
十六進位制程式碼
助記符
註釋
2000
31
LXI SP, 5000H
SP ← 5000H. 初始化堆疊指標(SP)
2001
00


地址的低位位元組
2002
50


地址的高位位元組
2003
3E
MVI A, 40H
A ← 40H,將累加器A初始化為40H
2004
40


運算元為40H
2005
06
MVI B, 30H
B ← 30H,將暫存器B初始化為30H
2006
30


運算元為30H
2007
90
SUB B
A ← A – B = 40H – 30H = 10H,由於10H = 0001 0000B是一個正數結果,所以P = 0
2008
F4
CP 2010H
由於S = 0,呼叫地址為2010H的子程式。現在程式的控制將轉移到2010H位置。下一個指令的返回地址200BH將被壓入堆疊頂部。結果,4FFFH (SP – 1) 將包含20H,而 4FFEH (SP – 2) 將分別包含 0BH。
2009
10


地址的低位位元組
200A
20


地址的高位位元組
200B
21
LXI H, 4050H
HL ← 4050H,初始化HL暫存器對。執行RET指令後,控制將返回到此指令。
200C
50


地址的低位位元組
200D
40


地址的高位位元組
200E
77
MOV M, A
M ← A,累加器的內容將被傳輸到HL暫存器對指向的記憶體位置4050H。因此,在4050H記憶體位置將儲存累加器的內容40H。
200F
76
HLT
程式結束。
2010
80
ADD B
A ← A + B <- 10H + 30H = 40H
2011
C9
RET
將控制返回到地址200BH。返回地址200BH將從堆疊頂部彈出。因此,從地址4FFEH彈出0BH,從地址4FFFH彈出20H,SP將相應地恢復其初始地址5000H。


針對此指令CP 2010H執行的時序圖如下所示:


總結 − 所以這個指令CP需要3個位元組,5個機器週期(操作碼獲取、記憶體讀取、記憶體讀取、記憶體寫入、記憶體寫入)和18個T狀態來執行,如時序圖所示。

更新於:2020年6月27日

257 次瀏覽

啟動您的職業生涯

完成課程獲得認證

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