8085微處理器中的ADC R指令


在8085組合語言編碼中,有時需要將兩個數字相加,而這兩個數字的大小都包含多個位元組。例如,讓我們將以下兩個16位數字相加。

    1
   10 50H
   A0 F1H
   ------
   B1 01H

在這個例子中,50H和F1H相加的結果為01H,進位為1。現在,我們應該將10H和A0H以及這個進位1相加。為了執行這樣的計算,8085為我們提供了合適的指令來將兩個數字與進位值相加。

這裡,ADC是一個助記符,代表“帶進位的加法”(ADd with Carry),而“R”代表以下任何一個暫存器,或由HL對指向的記憶體位置M。此指令主要用於將R暫存器的內容與累加器以及進位值相加。這裡的進位可以是0或1。此加法運算的結果將儲存在累加器本身中,覆蓋其先前的內容。這是一個1位元組指令,因此在記憶體中也佔用1個位元組。所以這個R可以有8個可能的值,因此有8個可能的指令操作碼。

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

助記符,運算元 操作碼(十六進位制) 位元組數
ADC A 8F 1
ADC B 88 1
ADC C 89 1
ADC D 8A 1
ADC E 8B 1
ADC H 8C 1
ADC L 8D 1
ADC M 8E 1

讓我們考慮ADC E作為此類別中的一個示例指令。如前所述,它是一個1位元組指令。讓我們假設E暫存器和累加器最初的值分別為10H和A0H,初始進位為1。現在,如果我們執行指令ADC E,則結果B1H將保留在累加器中。此指令執行的結果如下所示,並帶有跟蹤表。

之前 之後

(E)

10H 10H

(A)

A0H B1H

(F)

Cy=1,其他標誌位可能具有任何值 Cy=0,AC=0,Z=0,P=1,S=1

地址 十六進位制程式碼 助記符 註釋
2005 8B ADC 累加器 = 累加器 + E暫存器 + Cy標誌位

以下是指令ADC E的時序圖,如下所示

ADC

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

更新於: 2019年7月30日

6K+瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.