8085微處理器中無進位返回(RNC)


在8085指令集中,RNC是一個助記符,代表“無進位返回”。僅當Cy標誌值為0時,此指令才用於返回主程式。如果Cy標誌值為1,程式流程將在子程式中順序繼續。它是一個1位元組指令。

助記符,運算元
操作碼(十六進位制)
位元組數
RNC
D0
1


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

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


地址的低位元組
2002
50


地址的高位元組
2003
21
LXI H, 4050H
HL ← 4050H,初始化HL暫存器對
2004
50


地址的低位元組
2005
40


地址的高位元組
2006
CD
CALL 200BH
呼叫地址為200BH的子程式。因此,現在程式的控制權將轉移到位置200BH。下一個指令的地址2009H(即返回地址)將被壓入堆疊頂部。因此,4FFFH(SP – 1)將包含20H,而4FFEH(SP – 2)將分別包含09H。
2007
0B


地址的低位元組
2008
20


地址的高位元組
2009
77
MOV M, A
M ← A,累加器的內容將被傳輸到記憶體位置4050H,因為它是由HL暫存器對指向的。因此,在4050H記憶體位置將儲存累加器的內容10H。在成功執行RNC指令後,控制權將返回到此指令。
200A
76
HLT
程式結束。
200B
3E
MVI A, 40H
A ← 40H,用初始值40H初始化累加器
200C
40


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


30H作為運算元
200F
90
SUB B
A ← A – B= 40H – 30H = 10H,由於計算結果沒有進位,因此Cy = 0
2010
D0
RNC
將控制權返回到地址2009H。返回地址2009H將從堆疊頂部彈出。因此,從地址4FFEH彈出09H,從地址4FFFH彈出20H,並且SP將根據其內容相應地獲取其初始地址5000H。
2011
80
ADD B
A ← A + B ← 10H + 30H = 40H。
(但在本例中,此行不可訪問,因此不會執行)
2012
77
MOV M, A
M ← A,累加器的內容將被傳輸到記憶體位置4050H,因為它是由HL暫存器對指向的。因此,在4050H記憶體位置將儲存累加器的內容40H。
(但在本例中,此行不可訪問,因此不會執行)
2013
C9
RET
將控制權返回到地址2009H。返回地址2009H將從堆疊頂部彈出。因此,從地址4FFEH彈出09H,從地址4FFFH彈出20H,並且SP將根據其內容相應地獲取其初始地址5000H。
(但在本例中,此行不可訪問,因此不會執行)


針對此指令RNC執行的時序圖如下所示 –


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


更新於: 2020年6月27日

291次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.