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 狀態才能執行,如定時圖所示。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP