8085 微處理器中的 CMP R 指令


在 8085 指令集中,CMP 是一個助記符,代表“比較累加器”,而這裡的 R 代表以下任何一個暫存器,或者由 HL 暫存器對指向的記憶體位置 M。

R = A, B, C, D, E, H, L, or M

此指令用於比較累加器的內容與給定暫存器 R 的內容。比較操作的結果將儲存在 Temp 暫存器中。Temp 不是 GPR(通用暫存器),而是一個程式設計師無法訪問的內部暫存器。實際上,R 暫存器的內容將從累加器的內容中減去,差值將儲存在 Temp 暫存器中。由於 R 可以具有八個值中的任何一個,因此此類指令有八個操作碼。它在記憶體中只佔用 1 個位元組。

助記符,運算元 操作碼(十六進位制) 位元組
CMP A BF 1
CMP B B8 1
CMP C B9 1
CMP D BA 1
CMP E BB 1
CMP H BC 1
CMP L BD 1
CMP M BD 1

讓我們考慮一個屬於此類別的示例指令 CMP E。由於它是一個 1 位元組指令,因此在執行此指令期間,它在記憶體中只佔用一個位元組。此指令執行的結果已用以下示例集進行了描述:

示例 1

之前 之後

(A)

50H 50H

(E)

70H 70H

(Temp)

任意值 E0H

(F)

任意值 Cy=1,AC=0,S=1,P=0,Z=0

示例 2

之前 之後

(A)

70H 70H

(E)

50H 50H

(Temp)

任意值 20H

(F)

任意值 Cy=0,AC=0,S=0,P=0,Z=0

示例 3

之前 之後

(A)

50H 50H

(E)

50H 50H

(Temp)

任意值 00H

(F)

任意值 Cy=0,AC=0,S=0,P=1,Z=1

地址 十六進位制程式碼 助記符 註釋
2004 BB CMP E Temp = 暫存器 A - 暫存器 E

針對此指令 CMP E 執行的時序圖如下:

CMP E

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

更新於: 2019-07-30

9K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.