8085 微處理器中的記憶體讀取 (MR) 機器週期
“MOV C, M”指令中的最後三個時鐘週期是記憶體讀取機器週期的示例。記憶體讀取機器週期的波形如下所示

| 指令 | 操作 | 地址暫存器 |
|---|---|---|
| LDA 1234H | 將 W 載入為 12H(或 Z 載入為 34H) | 程式計數器 (PC) |
| POP B | 從堆疊頂部彈出資訊 | 堆疊指標 (SP) |
| MOV C, M | 從 HL 指向的記憶體中載入 A | HL |
| LDAX B | 從 BC 指向的記憶體中載入 A | BC |
| LDAX D | 從 DE 指向的記憶體中載入 A | DE |
| LDA 1234H | 從記憶體位置 1234H 載入 A | WZ |
在記憶體讀取機器週期期間,接收到的暫存器中的資料取決於指令內的 MR 機器週期,如下所示。其中“r”代表任何暫存器 A、B、C、D、E、H 或 L。
| 指令 | 操作 | 資料暫存器 |
|---|---|---|
| MOV r, M | 從 HL 指向的記憶體中載入 r | R |
| POP PSW | 從堆疊頂部載入標誌 | 標誌 |
| MVI M, 25H | 從記憶體中載入 Temp 為 25H | Temp |
示例
“MVI M, 25H”指令的執行。假設在位置 C002H,我們有 36H,它是指令“MVI M, ABH”的操作碼。這裡需要十個時鐘週期來完成操作碼獲取、解碼和執行。前四個時鐘週期構成操作碼獲取機器週期,接下來的三個時鐘週期將是記憶體讀取機器週期,最後的三個時鐘週期將是記憶體寫入機器週期。
除了地址資訊外,以下狀態訊號還在 T1 期間由控制單元啟用。
ALE = 1,表示地址存在於 AD7-0 上;
IO/M* = 0,表示地址僅指定給記憶體;
S1 = 0,S0 = 1,表示它是記憶體寫入機器週期。
以下是指令執行的詳細說明 -
在 8085 指令集中,此指令 MVI M, d8 用於將 HL 對指向的記憶體位置直接載入一個 8 位值。此指令使用立即定址來指定資料。它在記憶體中佔用 2 個位元組。
| 助記符,運算元 | 操作碼(十六進位制) | 位元組 |
|---|---|---|
| MVI M, Data | 36 | 2 |
例如,我們可以考慮 MVI M, ABH 作為此類指令的示例。它是一個 2 位元組指令,MVI M 的操作碼佔用一個位元組,ABH 佔用另一個位元組。我們假設 HL 暫存器對包含 16 位地址 4050H,並且該地址的內容最初為 CDH。因此,在執行指令後,更新的值將為 -
| | 之前 | 之後 |
|---|---|---|
| (HL) | (4050) | (4050) |
| (4050) | CDH | ABH |
表格如下所示
| 地址 | 十六進位制程式碼 | 助記符 | 註釋 |
|---|---|---|---|
| 2006 | 36 | MOV M, ABH | HL 暫存器對指向的記憶體位置的內容將被 ABH 更新 |
| 2007 | AB | | 運算元 ABH |
讓我們檢查此指令 MVI M, ABH 的時序圖

總結:因此,此指令 MVI M, ABH 需要 2 個位元組、3 個機器週期(操作碼獲取、記憶體讀取、記憶體寫入)和 10 個 T 狀態才能執行,如時序圖所示。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP