8085 微處理器中的返回如果為負 (RM)


在 8085 指令集中,RM 是一個助記符,代表“返回如果為負”。僅當 S 標誌值為 1 時,此指令才用於返回主程式。如果 S 標誌值為 0,則程式流程將在子程式中依次繼續。它是一個 1 位元組指令。

助記符,運算元
操作碼(以十六進位制表示)
位元組
RM
F8
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 記憶體位置,累加器的,內容 F0H 將被儲存。在成功執行 RM 指令後,控制權將返回到此指令。
200A
76
HLT
程式結束。
200B
3E
MVI A, 40H
A ← 40H,用初始值 40H 初始化累加器
200C
40


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


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


針對此指令 RM 執行的時間圖如下所示 -

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

更新於: 2020-06-27

283 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.