8085 微處理器中無進位呼叫 (CNC)


在 8085 指令集中,CNC 是一個助記符,代表“無進位呼叫”。僅當 Cy 標誌值為 0 時,此指令才用於分支到指令中提供的 16 位地址的子程式。如果 Cy 標誌值為 1,則程式流程按順序繼續在主程式中執行。它是一個 3 位元組指令。


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


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

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


地址的低位位元組
2002
50


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


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


30H 作為運算元
2007
90
SUB B
A ← A – B= 40H – 30H = 10H,由於計算結果中沒有進位,所以 Cy = 0
2008
D4
CNC 2010H
由於 Cy = 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 &larar A,累加器的內容將被傳輸到記憶體位置 4050H,因為它由 HL 暫存器對指向。因此,在 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。


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

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

更新於:2020-06-27

454 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.