8085微處理器中的DCR R指令


在8085指令集中,DCR是一個助記符,代表“遞減”(DeCRement),而“R”代表以下任何一個暫存器,或者由HL暫存器對指向的儲存器位置M。

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

這條指令用於減少暫存器R的內容。我們也可以說它會從暫存器R的內容中減去1。並且遞減後的值將儲存到暫存器R本身。由於它是一條算術指令,因此除了Cy標誌外,所有標誌都會根據結果受到影響。在那些需要向下計數器的組合語言程式碼中,我們可以使用這條指令。因此,根據設計,Cy標誌不受這條指令執行的影響。

由於R可以具有八個暫存器值中的任何一個,因此此類指令共有八種操作碼。它在記憶體中只佔用1個位元組。

助記符,運算元 操作碼(十六進位制) 位元組數
DCR A 3D 1
DCR B 05 1
DCR C 0D 1
DCR D 15 1
DCR E 1D 1
DCR H 25 1
DCR L 2D 1
DCR M 35 1

讓我們以**DCR M**作為此類指令的示例。它是一條1位元組指令。假設HL暫存器對的初始內容為16位地址4050H。並且在儲存器位置4050H處,內容為ABH。因此,執行此指令的結果已在以下跟蹤表中進行了描述

之前 之後

(HL)

4050H 4050H

(4050H)

ABH AAH

(F)

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

地址 十六進位制程式碼 助記符 註釋
2005 35 DCR M (HL) = (HL) - 1

實際上,在內部,8085透過將01H的二進位制補碼新增到ABH來執行此遞減操作。因此,如果4050H初始儲存器位置的內容為00H,則在執行指令DCR M後,內容將變為FFH。

DCR M

**總結** - 因此,此指令**DCR M**需要1個位元組、3個機器週期(操作碼獲取、記憶體讀取、記憶體寫入)和10個T狀態才能執行,如時序圖所示。

更新於: 2019年7月30日

6K+瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告