複製鏈接
請複製以下鏈接發送給好友

直接尋址

鎖定
直接尋址是一種基本的尋址方法,其特點是:在指令格式的地址的字段中直接指出操作數在內存的地址。由於操作數的地址直接給出而不需要經過某種變換,所以稱這種尋址方式為直接尋址方式。在指令中直接給出參與運算的操作數及運算結果所存放的主存地址,即在指令中直接給出有效地址。 [1] 
中文名
直接尋址
相    關
計算機組成原理
本    質
一種尋址方式

目錄

直接尋址簡介

指令格式的地址字段中直接指出操作數在內存的地址ID 。
在通常情況下,操作數存放在數據段中,所以,其物理地址將由數據段寄存器DS和指令中給出的有效地址直接形成,但如果使用段超越前綴,那麼,操作數可存放在其它段。
直接尋址方式常用於處理內存單元的數據,其操作數是內存變量的值。
指令中直接給出操作數地址(dir)的尋址方式稱為直接尋址。 [2] 
尋址對象為: [2] 
1 內部數據存儲器,在指令中以直接地址表示; [2] 
2特殊功能寄存器SFR,在指令中用寄存器名稱表示。 [2] 
以寄存器中的內容為地址,該地址的內容為操作數的尋址方式稱為寄存器間接尋址。能夠進行寄存器間接尋址的寄存器有:R0、R1、DPTR,用前面加@表示,如@R0、@R1、@DPTR。寄存器間接尋址的存儲空間包括內部數據存儲器和外部數據存儲器。由於內部數據存儲器共有128字節,因此用一字節的R0和R1可間接尋址整個空間。而外部數據存儲器最大可達64K,僅R0或R1無法尋址整個空間,為此需要由P2端口提供外部RAM高8位地址,由R0或R1提供低8位地址,由此共同尋址64K字節範圍。也可用16位的DPTR寄存器間接尋址64K字節存儲空間。 [2] 

直接尋址注意

立即尋址方式和直接尋址方式的書寫格式的不同。在程序中,直接尋址的地址要寫在括號“[]”內,立即地址通常用內存變量名來表示,如:MOV BX, VARW,其中,VARW是內存字變量;直接尋址如:MOV AX [2000H]。
在直接尋址中,指令操作數字段中存放的是操作數的16位偏移地址EA,即操作數的偏移地址EA和操作碼一起存放在代碼段中,而操作數可以存放在數據段,也可以存放在其它段,操作數物理地址由其所在段的寄存器內容左移4位與指令中給出的偏移地址EA相加形成。物理地址PH=(DS)*10H+EA(Disp)EA可以用符號或數值表示。如果用數值表示EA則必須用括號括起來,而且是在方括號前應給出段寄存器名,直接尋址的操作數可以是字或字節。
如果沒有特殊説明,直接尋址的操作數一般在內存的數據段中,即隱含的段寄存器是DS。但是8086/8088也允許段超越,即允許使用CS,SS,ES作為段寄存器,此時需要在指令中特別標明,方法是在有關操作數的前面協商寄存器的名字,再加上冒號。如:MOV AX EX :[2000H]. [3] 
參考資料