全球专业中文经管百科,由121,994位网友共同编写而成,共计436,034个条目

定址方式

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

目錄

什麼是定址方式

  定址方式就是處理器根據指令中給出的地址信息來尋找物理地址的方式。

  在存儲器中,操作數或指令字寫入或讀出的方式,有地址指定方式、相聯存儲方式和堆棧存取方式。幾乎所有的電腦,在記憶體中都採用地址指定方式。當採用地址指定方式時,形成操作數或指令地址的方式稱為定址方式。定址方式分為兩類,即指令定址方式和數據定址方式,前者比較簡單,後者比較複雜。值得註意的是,在傳統方式設計的電腦中,記憶體中指令的定址與數據的定址是交替進行的。

定址方式類型

指令定址

  指令的定址方式有以下兩種。

  (1)順序定址方式

  由於指令地址在記憶體中按順序安排,當執行一段程式時,通常是一條指令接一條指令地順序進行。也就是說,從存儲器取出第1條指令,然後執行這條指令;接著從存儲器取出第2條指令,再執行第二條指令;接著再取出第3條指令。

  這種程式順序執行的過程,稱為指令的順序定址方式。為此,必須使用程式計數器(又稱指令計數器)PC來計數指令的順序號,該順序號就是指令在記憶體中的地址。

  (2)跳躍定址方式

  當程式轉移執行的順序時,指令的定址就採取跳躍定址方式。所謂跳躍,是指下條指令的地址碼不是由程式計數器給出,而是由本條指令給出。註意,程式跳躍後,按新的指令地址開始順序執行。因此,程式計數器的內容也必須相應改變,以便及時跟蹤新的指令地址。

  採用指令跳躍定址方式,可以實現程式轉移或構成迴圈程式,從而能縮短程式長度,或將某些程式作為公共程式引用。指令系統中的各種條件轉移或無條件轉移指令,就是為了實現指令的跳躍定址而設置的。

操作數定址

  形成操作數的有效地址的方法稱為操作數的定址方式。由於大型機、小型機、微型機和單片機結構不同,從而形成了各種不同的操作數定址方式。下麵介紹一些比較典型又常用的操作數定址方式。

  (1)隱含定址

  這種類型的指令,不是明顯地給出操作數的地址。而是在指令中隱含著操作數的地址。例如,單地址的指令格式,就不明顯地在地址欄位中指出第2操作數的地址,而是規定累加寄存器AC作為第2操作數地址。指令格式明顯指出的僅是第1操作數的地址D。因此,累加寄存器AC對單地址指令格式來說是隱含地址。 如:DAA ;

  (2)立即定址

  指令的地址欄位指出的不是操作數的地址,而是操作數本身,這種定址方式稱為立即定址。立即定址方式的特點是指令執行時間很短,因為它不需要訪問記憶體取數,從而節省了訪問記憶體的時間。 如:MOV AX,5678H 註意:立即數只能作為源操作數,不能作為目的操作數。

  (3)直接定址

  直接定址是一種基本的定址方法,其特點是:在指令格式的地址的欄位中直接指出操作數在記憶體的地址。由於操作數的地址直接給出而不需要經過某種變換,所以稱這種定址方式為直接定址方式。在指令中直接給出參與運算的操作數及運算結果所存放的主存地址,即在指令中直接給出有效地址

  (4)間接定址

  間接定址是相對直接定址而言的,在間接定址的情況下,指令地址欄位中的形式地址不是操作數的真正地址,而是操作數地址的指示器,或者說此形式地址單元的內容才是操作數的有效地址。

  (5)寄存器定址方式和寄存器間接定址方式

  當操作數不放在記憶體中,而是放在CPU通用寄存器中時,可採用寄存器定址方式。顯然,此時指令中給出的操作數地址不是記憶體的地址單元號,而是通用寄存器的編號(可以是8位也可以是16位(AX,BX,CX,DX))。指令結構中的RR型指令,就是採用寄存器定址方式的例子。如:MOV DS,AX

  寄存器間接定址方式與寄存器定址方式的區別在於:指令格式中的寄存器內容不是操作數,而是操作數的地址,該地址指明的操作數在記憶體中.

  (6)相對定址方式

  相對定址是把程式計數器PC的內容加上指令格式中的形式地址D而形成操作數的有效地址。程式計數器的內容就是當前指令的地址。"相對"定址,就是相對於當前的指令地址而言。採用相對定址方式的好處是程式員無須用指令的絕對地址編程,因而所編程式可以放在記憶體的任何地方。 指令格式:MOV AX,[BX+1200H] 操作數物理地址PA=(DS/SS)*10H+EA EA=(BX/BP/SI/DI)+(6/8)位偏移量Disp 對於BX,SI,DI寄存器來說段寄存器預設為DS,對於SP來說,段寄存器預設為SS

  (7)基址定址方式

  在基址定址方式中將CPU中的基址寄存器的內容,加上變址寄存器的內容而形成操作數的有效地址。基址定址的優點是可以擴大定址能力,因為與形式地址相比,基址寄存器的位數可以設置得很長,從而可以在較大的存儲空間中定址。

  (8)變址定址方式

  變址定址方式與基址定址方式計算有效地址的方法很相似,它把CPU中某個變址寄存器的內容與偏移量D相加來形成操作數有效地址。

  但使用變址定址方式的目的不在於擴大定址空間,而在於實現程式塊的規律變化。為此,必須使變址寄存器的內容實現有規律的變化(如自增1、自減1、乘比例繫數)而不改變指令本身,從而使有效地址按變址寄存器的內容實現有規律的變化。

  (9)塊定址方式

  塊定址方式經常用在輸入輸出指令中,以實現外存儲器或外圍設備同記憶體之間的數據塊傳送。塊定址方式在記憶體中還可用於數據塊移動。

本條目對我有幫助1
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

刘维燎.

評論(共0條)

提示:評論內容為網友針對條目"定址方式"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP

闽公网安备 35020302032707号