8085微處理器SUB R指令型別
在8085指令中,SUB是助記符,代表“從累加器中減去R的內容”。這裡R代表以下任何暫存器,或HL對指向的記憶體位置M。
R = A, B, C, D, E, H, L, or M
助記符,運算元 | 操作碼(十六進位制) | 位元組數 |
---|---|---|
SUB A | 97 | 1 |
SUB B | 90 | 1 |
SUB C | 91 | 1 |
SUB D | 92 | 1 |
SUB E | 93 | 1 |
SUB H | 94 | 1 |
SUB L | 95 | 1 |
SUB M | 96 | 1 |
在此指令中,暫存器R的內容將從累加器中減去,所得差值將儲存在累加器中,替換累加器先前的內容。R可以是八個值中的任何一個,因此此類指令共有八個操作碼,如上表所示。它只佔用記憶體中的1個位元組。
讓我們以SUB E為例。由於它是一位元組指令,因此它將佔用記憶體中的單個位元組空間。該指令執行的結果如下例所示。
示例1
假設累加器和E暫存器的初始值分別為ABH和CDH。因此,執行指令SUB E後,暫存器的內容將為:
執行前 | 執行後 | |
---|---|---|
(A) |
ABH | DEH |
(E) |
CDH | CDH |
(F) |
任意值 | Cy=1,AC=0,S=1,P=1,Z=0 |
地址 | 十六進位制程式碼 | 助記符 | 註釋 |
---|---|---|---|
2004 | 93 | SUB E | 累加器 = 累加器 + E的二進位制補碼 |
這裡Cy=1表示結果為負。實際上A – E = A + E的二進位制補碼。以下是計算過程。
(A) ABH (1010 1011) ---------------> 1010 1011 2'S Complement (E) CDH (1100 1101) ---------------> 0011 0011 --------------- 1101 1110 (DEH)
以下是指令SUB E的時序圖

總結 − 因此,此指令SUB E需要1個位元組、1個機器週期(操作碼獲取)和4個T狀態才能執行,如時序圖所示。
示例2
假設累加器和E暫存器的初始值分別為CDH和ABH。因此,執行指令SUB E後,暫存器的內容將為:
執行前 | 執行後 | |
---|---|---|
(A) |
CDH | 22H |
(E) |
ABH | ABH |
(F) |
任意值 | Cy=0,AC=1,S=0,P=1,Z=0 |
地址 | 十六進位制程式碼 | 助記符 | 註釋 |
---|---|---|---|
2004 | 93 | SUB E | 累加器 = 累加器 + E的二進位制補碼 |
這裡Cy=0表示結果為正。實際上A – E = A + E的二進位制補碼。以下是計算過程。
(A) CDH (1100 1101) ---------------> 1100 1101 2'S Complement (E) ABH (1010 1011) ---------------> 0101 0101 ---------------- 0010 0010 (22H)
以下是指令SUB E的時序圖

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