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