簡述處理器中的三種定址方式

2021-08-22 16:29:05 字數 2167 閱讀 8046

乙個微處理器通常有多個用來定址儲存器的輸出訊號。

例如因特爾公司生產的8080處理器,是乙個具有重大歷史意義的晶元,本篇主要以8080為例做敘述。

8080是乙個8位的微處理器,可以一次從儲存器讀取或寫入8位資料。看上圖,a0~a15表示16個可用於定址的輸出訊號,所以8080處理器可定址的空間大小為65536*8bit。現在假設8080處理器與乙個65536位元組大小的儲存器相連,當處理器復位後,通過在a0~a15輸出16個0,把鎖存在儲存器0000h處的位元組(該位元組必須是8080指令)讀入處理器,這個過程稱為取指令

為了方便使用指令,我們為處理器的每一條指令的操作碼都指派了乙個助記符,這種助記符只是在我們使用操作碼時方便一些,它對於處理器而言是沒有幫助的,因為處理器只能識別位元組,對於助記符組成的文字一無所知。

比如load指令,每條load指令佔3位元組,第乙個位元組是操作碼,其後的兩個位元組是要load到處理器的運算元的16位位址。

如果我們用助記符可以把指令轉換成下面的形式:

lda a,[aaaa]

這裡的a表示處理器中的累加器,aaaa表示儲存器中的乙個16位位址,如果該儲存器是8位,則取到的是乙個位元組。

8080處理器內部除了累加器外還設定了6個暫存器,暫存器其實就是乙個鎖存器,可以存放乙個位元組的數。處理器可以把資料從儲存器讀入暫存器,也可以把資料從暫存器存回儲存器。在8080處理器中用b、c、d、e、h和l來表示新增的6個暫存器。通常把h和l合起來構成乙個16位的暫存器對,h用來儲存高位元組而l用來儲存低位元組。這個16位值通常用來對儲存器定址

那麼暫存器內的資料可不可以互相轉移呢?答案是可以的,使用mov指令就可以把乙個暫存器的內容轉移到另乙個暫存器。

來看這條指令:mov b,[ hl ],這條mov指令把儲存器中的乙個位元組轉移到b暫存器,這個位元組的位址存放在暫存器對hl裡面,這種方式叫做間接定址

有了間接定址,那麼直接定址是什麼樣的呢?

lad a,[aaaa][aaaa]是乙個16位位址,這個位址不需要儲存在暫存器中,而是通過處理器的a0~a15管腳訊號得到,這種定址方式就叫做直接定址

由於處理器中的暫存器眾多,所以mov指令在8080處理器中多達32條。

上面說了,處理器只認識操作碼位元組,乙個操作碼位元組是乙個單位元組指令。8080處理器中還有另外一種雙位元組move指令,稱為mvi(傳送立即數指令)。第乙個位元組為操作碼,第二個位元組是資料。這個資料從儲存器轉移到暫存器,或者從儲存器的乙個單元轉移到另乙個單元。

例如,當指令mvi e,37h執行後,暫存器e存放的位元組是37h;又如指令mvi [hl],37h執行後,會將37h這個數儲存到儲存器的某個位址,這個位址儲存在暫存器[hl]中。這是要介紹的第三種定址方式:立即數定址

總結下來三種定址方式就是:

立即定址就是指令當中自帶資料,直接讀取,最快,當立即數定址時,只允許源運算元為立即數,目標運算元必須是暫存器儲存器,其作用是給暫存器或儲存單元賦值。

直接定址就是運算元一般存放在儲存器的中,而運算元的位址在指令中給出,即指令中存放的是運算元的位址,直接解析這個位址。

間接定址的指令中存放的是位址的位址,或者是存放位址的暫存器,最慢。

簡述處理器中的三種定址方式

乙個微處理器通常有多個用來定址儲存器的輸出訊號。例如因特爾公司生產的8080處理器,是乙個具有重大歷史意義的晶元,本篇主要以8080為例做敘述。8080是乙個8位的微處理器,可以一次從儲存器讀取或寫入8位資料。看上圖,a0 a15表示16個可用於定址的輸出訊號,所以8080處理器可定址的空間大小為6...

ARM處理器 八種定址方式

arm處理器的八種定址方式 前言 1.什麼是定址?資料都存在儲存器中,定址簡單地說就是找到儲存資料或指令的位址。儲存器有很多儲存單元,用於儲存資料。或者說,定址就是讀取資料所在儲存裝置中對應位址編號中儲存的內容。以儲存單位定址分為位,字,節,字,雙字定址。以功能定址分為直接定址,間接定址,暫存器定址...

ARM 處理器定址方式

2007 10 26 13 35 arm 處理器定址方式 定址方式是根據指令中給出的位址碼欄位來實現尋找真實運算元位址的方式,arm處理器有 9 種基本定址方式。1 暫存器定址 mov r1,r2 r2 r1 sub r0,r1,r2 r1 r2 r0 指令執行時直接取出暫存器值操作。2 立即定址 ...