8085 微處理器中的 8085 地址定址方式


使用助記符,無需更改內容,資料可以在三種不同的情況下傳輸:

  • 從一個暫存器到另一個暫存器

  • 從記憶體到暫存器,以及

  • 從暫存器到記憶體

這些都可以由定址方式指導。8085 中的定址方式可以分為 5 組:

  • 立即定址方式

  • 暫存器定址方式

  • 直接定址方式

  • 間接定址方式

  • 隱含定址方式

立即定址方式

在這種模式下,8/16 位資料作為運算元之一在指令本身中指定。例如,MVI E, ABH 表示將 ABH 複製到暫存器 A。

  • MVI E ABH



之前
之後
(A)
任何值
ABH


例如,如果我們考慮指令 **MVI E, ABH**,則表示 ABH 將被移動或複製到暫存器 E。結果,E 的先前值將被覆蓋。

地址
十六進位制程式碼
助記符
註釋
2000
1E
MVI E, ABH
E ← ABH
2001
AB

ABH 作為運算元


此指令將具有以下所示的七個 T 狀態。

**總結** - 所以這條指令 **MVI E, ABH** 需要 2 個位元組,2 個機器週期(操作碼獲取和記憶體讀取)以及 7 個 T 狀態才能執行,如定時圖所示。

暫存器定址方式

在這種模式下,資料從一個暫存器複製到另一個暫存器。例如,MOV A, B:表示暫存器 B 中的資料被複制到暫存器 A。

  • MOV E, H

它在記憶體中只佔用 1 個位元組。**MOV E, H** 是這種型別的示例指令。它是一個 1 位元組指令。假設 E 暫存器內容為 AB H,H 暫存器內容為 9C H。當 8085 執行此指令時,E 暫存器的內容將更改為 9C H。如下所示。


之前
之後
(E)
ABH
9CH
(H)
9CH
9CH


地址
十六進位制程式碼
助記符
註釋
2004
5C
MOV E, H
E ← H

請注意,H 暫存器的內容根本沒有改變。雖然英特爾將其稱為“移動”指令,但在現實中,它似乎是“複製”指令。

MOVE, H 指令的定時圖如下:

**總結** - 所以這條指令 **MOV E, H** 需要 1 個位元組,1 個機器週期(操作碼獲取)和 4 個 T 狀態才能執行,如定時圖所示。


直接定址方式

在這種模式下,資料直接從給定地址複製到暫存器。例如,LDA 3000H:表示地址 3000H 的資料被複制到暫存器 A。

  • LDA 4050H


讓我們考慮 **LDA 4050H** 作為這種型別的示例指令。它是一個 3 位元組指令。記憶體地址 4050H 的初始內容是 ABH。累加器的初始內容是 CDH。執行後,A 將被初始化為 ABH 值。記憶體位置 4050H 的內容仍然是 ABH。此指令執行的結果如下:

 


之前
之後
(4050)
ABH
ABH
A
CDH
ABH



地址
十六進位制程式碼
助記符
註釋
2008
3A
LDA 4050H
A ← 記憶體位置 4050H 的內容
2009
50


地址的低位位元組
200A
40

地址的高位位元組



以下是指令 **LDA 4050H** 的定時圖:

**總結** - 所以這條指令 **LDA 4050H** 需要 3 個位元組,4 個機器週期(操作碼獲取、記憶體讀取、記憶體讀取、記憶體讀取)以及 13 個 T 狀態才能執行,如定時圖所示。

間接定址方式

在這種模式下,資料透過使用暫存器指向的地址從一個暫存器傳輸到另一個暫存器。例如,MOV A, M:表示資料從暫存器對 HL 指向的記憶體地址傳輸到暫存器 A。

  • MOV E, M

它在記憶體中只佔用 1 個位元組。**MOV E, M** 是這種型別的示例指令。它是一個 1 位元組指令。假設 E 暫存器內容為 DBH,H 暫存器內容為 40H,L 暫存器內容為 50H。假設位置 4050H 的資料值為 AAH。當 8085 執行此指令時,E 暫存器的內容將更改為 AAH,如下所示:


之前
之後
(E)
DBH
AAH
(HL)
4050H
4050H
(4050H)
AAH
AAH



地址
十六進位制程式碼
助記符
註釋
2008
2A
MOV E, M
E ← HL 暫存器對指向的記憶體位置的內容

此 **MOV E, M** 指令的定時圖如下:

**總結** - 所以這條指令 **MOV E, M** 需要 1 個位元組,2 個機器週期(操作碼獲取、記憶體讀取)以及 7 個 T 狀態才能執行,如定時圖所示。

隱含定址方式

此模式不需要任何運算元;資料由操作碼本身指定。例如:CMA、CMP。

  • CMP E


讓我們考慮一個屬於此類別的示例指令 CMPE。它是一個 1 位元組指令,因此在執行此指令期間,它在記憶體中將只佔用一個位元組。此指令執行的結果已透過以下示例集進行了描述:

示例 1


之前
之後
(A)
50H
50H
(E)
70H
70H
(臨時)
任何值
E0H
(F)
任何值
Cy=1,AC=0,S=1,P=0,Z=0

示例 2


之前
之後
(A)
70H
70H
(E)
50H
50H
(臨時)
任何值
20H
(F)
任何值
Cy=0,AC=0,S=0,P=0,Z=0

示例 3


之前
之後
(A)
50H
50H
(E)
50H
50H
(臨時)
任何值
00H
(F)
任何值
Cy=0,AC=0,S=0,P=1,Z=1


地址
十六進位制程式碼
助記符
註釋
2004
BB
CMP E
Temp = 暫存器 A - 暫存器 E


此指令 **CMP** 執行的定時圖如下:

**總結** - 所以這條指令 **CMP E** 需要 1 個位元組,1 個機器週期(操作碼獲取)以及 4 個 T 狀態才能執行,如定時圖所示。

更新於:2020 年 6 月 27 日

5K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.