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

總結 − 因此,此指令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

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

更新於:2019年7月30日

4K+瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告