8085微處理器中的十進位制加法
在數字計算機中,所有內容都僅使用0和1表示。例如,指令將只有使用0和1的程式碼。資料也使用0和1表示。資料可以是不同型別,例如無符號數、有符號數、浮點數、二進位制編碼的十進位制 (BCD) 數等。因此,一系列0和1將根據解釋獲得一個值。對於十進位制加法,我們有一個非常重要且常見的指令DAD。讓我們現在更多地討論該指令。
儘管8085是8位微處理器,但8085指令集中有一些指令也可以進行16位加法。由於8085內部架構只有8位,因此該指令很容易花費兩倍於新增兩個8位數所需的時間。
這裡,DAD 是助記符,代表雙加,rp 代表以下任何一個暫存器對:
rp = BC,DE,或 HL
由於rp可以具有三個值中的任何一個,因此此類指令有三個操作碼。它在記憶體中只佔用1個位元組。
| 助記符,運算元 | 操作碼(十六進位制) | 位元組數 |
|---|---|---|
| DAD B | 09 | 1 |
| DAD D | 19 | 1 |
| DAD H | 29 | 1 |
在此指令中,HL暫存器對充當累加器。因為rp的16位內容將與HL暫存器對的內容相加,產生的和將再次儲存回HL。
雖然它是一個算術指令,但根據設計,除了Cy之外的其他標誌不會受到此指令DAD rp執行的影響。
讓我們考慮DAD B作為此類指令的示例。它是一位元組指令,因此它在記憶體中佔用一個位元組的空間。我們認為HL和BC暫存器對的初始內容是4050H和4060H。因此,在16位加法之後,HL暫存器對的當前內容將為80B0H。此指令執行的結果如下表所示:
| 之前 | 之後 | |
|---|---|---|
| (HL) | 4050H | 80B0H |
| (BC) | 4060H | 4060H |
| (F) | 任何值 | Cy=0,其他標誌位不變 |
| 地址 | 十六進位制程式碼 | 助記符 | 註釋 |
|---|---|---|---|
| 2006 | 09 | DAD B | HL = HL + BC |
針對此指令DAD B執行的時序圖如下:

總結:因此,此指令DAD B需要1個位元組,3個機器週期(操作碼提取、匯流排空閒、匯流排空閒)和10個T狀態才能執行,如時序圖所示。此指令需要10個T狀態,包括操作碼提取。操作碼提取週期需要4個T狀態,其餘6個T狀態分為兩個機器週期,用於指令執行。在這6個T(兩個機器週期)狀態下,不執行匯流排操作。因此,它們被稱為匯流排空閒機器週期。在此期間,ALE、RD等不會被啟用。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP