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 需要 1 個位元組、1 個機器週期(操作碼獲取)和 4 個 T 狀態才能執行,如時序圖所示。
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP