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等不會被啟用。

更新於:2019年7月30日

瀏覽量1K+

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.