-
直接尋址
鎖定
- 中文名
- 直接尋址
- 相 關
- 計算機組成原理
- 本 質
- 一種尋址方式
直接尋址簡介
指令中直接給出操作數地址(dir)的尋址方式稱為直接尋址。
[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]