㈠ 什麼是直接定址,什麼是間接定址,什麼是存儲器定址
一、直接定址方式
指令所要的操作數存放在內存中,在指令中直接給出該操作數的有效地址,這種定址方式為直接定址方式。
在通常情況下,操作數存放在數據段中,所以,其物理地址將由數據段寄存器DS和指令中給出的有效地址直接形成,但如果使用段超越前綴,那麼,操作數可存放在其它段。
如
MOV
BX,
[1234H]
二、寄存器間接定址方式
操作數在存儲器中,操作數的有效地址用SI、DI、BX和BP等四個寄存器之一來指定,稱這種定址方式為寄存器間接定址方式。
在不使用段超越前綴的情況下,有下列規定:
若有效地址用SI、DI和BX等之一來指定,則其預設的段寄存器為DS;
若有效地址用BP來指定,則其預設的段寄存器為SS(即:堆棧段)。
如
MOV
BX,[DI]
㈡ 80x86中寄存器定址方式和存儲器定址方式是啥意思
首先內存和寄存器都是可以存放數據的
而寄存器是就那麼幾個,不可能把所有數據都放在寄存器里
寄存器裡面是有值的,如果直接丟給CPU運算,就是寄存器定址。
如果把寄存器裡面的數當作地址編號,跟據編號在內存里找到另一個數,就是存儲器定址。
CS,DS,ES,SS是CPU的寄存器
MOV
AX,DS
都是寄存器定址方式(它們本身都有值)。
MOV
AX,[2000]
這個指令有兩種定址方式
AX表式寄存器定址方式,[2000]表示直接定址方式(存儲器定址方式的一種)
反正只要帶上中括弧的全是存儲器定址方式,而寄存器定址就只有一種(例如:AX)
㈢ 程序存儲器中的數據怎麼定址
程序存儲器指令地址使用程序計數器PC指針,PC中存放的是下一條將要從程序存儲器中取出的指令的地址。程序計數器PC變化的軌跡決定程序的流程,PC最基本的工作方式是自動加1。
在執行條件轉移或無條件轉移指令時,將轉移的目的地址送入程序計數器,程序流向發生變化。在執行調用指令或響應中斷時,將子程序的入口地址或者中斷矢量地址送人PC,程序流向發生變化。
DPTR是一個16位特殊功能寄存器,主要功能是作為片外數據存儲器或I/0定址用的地址寄存器,這時會產生RD或wR控制信號,用於單片機對外擴的數據存儲器或I/0的控制。數據指針DPTR也可以作為訪問程序存儲器時的基址寄存器,此時是定址程序存儲器中的表格、常數等單元,而不是定址指令。
㈣ mcs-51單片機有哪幾種定址方式
51單片機有7種定址方式:
1、立即定址方式
採用立即定址的指令一般是雙位元組的。第一個位元組是指令的操作碼,第二個位元組是立即數。因此,操作數就是放在程序存儲器中的常數。立即數前面應加前綴「#」號。
2、直接定址方式
採用直接定址的指令一般是雙位元組或三位元組指令,第一位元組為操作碼,第二,三位元組為操作數的地址碼。單片機中,直接地址只能用來表示片內低128位元組單元、專用寄存器和片內RAM的位地址空間。其中專用寄存器和位地址空間只能用直接定址方式來訪問。
3、寄存器定址方式
寄存器定址方式用於訪問選定的工作寄存器R0~R7、A、B、DPTR和進位CY中的數。其中R0~R7由操作碼低三位的8種組合表示,A、B、DPTR、C則隱含在操作碼之中。
4、寄存器間接定址方式
這種定址方式中,指令指定寄存器中的內容為操作數的地址。寄存器間接定址是用於訪問片內數據存儲器或片外數據存儲器。當訪問片內RAM
或片外的低256位元組空間時,可用R0或R1做為間址寄存器;當訪問片外整個64KB的地址RAM空間時,用16位寄存器DPTR做間址寄存器。這類指令都為單位元組的指令,操作碼的最低位表示是採用R0還是R1做間址器。
(4)寄存器定址存儲器定址擴展閱讀:
51單片機功能特性
1,可以模擬63K程序空間,接近64K的16位地址空間;
2,可以模擬64Kxdata空間,全部64K的16位地址空間;
3,可以真實模擬全部32條IO腳;
4,完全兼容keilC51UV2調試環境,可以通過UV2環境進行單步,斷點,全速等操作;
5,可以使用C51語言或者ASM匯編語言進行調試;
6,可以非常方便地進行所有變數觀察,包括滑鼠取值觀察,即滑鼠放在某變數上就會立即顯示出它此的值;
7,可選使用用戶晶振,支持0-40MHZ晶振頻率;
8,片上帶有768位元組的xdata,您可以在模擬時選使用他們,進行xdata的模擬;
9,可以模擬雙DPTR指針;
10,可以模擬去除ALE信號輸出.;
11,自適應300-38400bps的所有波特率通訊。
㈤ 要訪問特殊功能寄存器和片外數據存儲器,可採用哪些定址方式
採用直接定址方式。
位定址也可,但是這仍然屬於直接定址。
不能用寄存器定址和寄存器間接定址。
在指令格式的地址的欄位中直接指出操作數在內存的地址。由於操作數的地址直接給出而不需要經過某種變換,所以稱這種定址方式為直接定址方式。在指令中直接給出參與運算的操作數及運算結果所存放的主存地址,即在指令中直接給出有效地址。
(5)寄存器定址存儲器定址擴展閱讀:
在直接定址中,指令操作數欄位中存放的是操作數的16位偏移地址EA,即操作數的偏移地址EA和操作碼一起存放在代碼段中,而操作數可以存放在數據段,也可以存放在其它段,操作數的物理地址由其所在段的寄存器內容左移4位與指令中給出的偏移地址EA相加形成。
物理地址PH=(DS)*10H+EA(Disp)EA可以用符號或數值表示。如果用數值表示EA則必須用括弧括起來,而且是在方括弧前應給出段寄存器名,直接定址的操作數可以是字或位元組。
㈥ 寄存器定址方式和寄存器直接定址方式的區別
應該是直接定址方式和寄存器定址方式的區別,這兩者都是七種定址方式之一。
寄存器定址方式:
操作數在CPU內部的寄存器中,指令指定寄存器號。對於16位操作數,寄存器可以是:AX、BX、CX、DX、SI、DI、SP和BP等。對於8位操作數,寄存器可以是AL、AH、BL、BH、CL、CH、DL、DH。這種定址方式由於操作數就在寄存器中,不需要訪問存儲器來取得操作數。因而可以取得較高的運算數度。
直接定址方式:
操作數在寄存器中,指令直接包含有操作數的有效地址(偏移地址)。註:操作數一般存放在數據段。所以操作數的地址由DS加上指令中直接給出的16位偏移得到。如果採用段超越前綴,則操作數也可含在數據段外的其他段中。
㈦ 什麼是直接定址,什麼是間接定址,什麼是存儲器定址
直接定址方式:
指令的地址碼部分直接給出的不是操作數,而是操作數的存儲器地址,這種方式稱為直接定址方式。根據指令地址碼部分給出的直接地址A就可以從存儲器中讀出所需要的操作數。這種定址方式簡單,直觀,也便於硬體實現,但是隨著計算機的存儲器容量不斷擴大,所需要的地址碼越來越長,勢必造成指令的一部分,不能修改,故只能用來訪問固定存儲器單元。
如果匯編原程序中跳轉指令中使用的是標號,編譯後是直接跳轉,如果使用了寄存器參量的就是間接跳轉的了。
只能說內存定址的大小與CPU位數有關,但不完全有CPU位數決定,這里有人為的設置,同為64位的CPU,定址大小、方式也是不一樣的,舉個例子:
人為限制內存地址用8位2進制數表示,那他的定址大小是2的8次方,就是256,也就是可以支持256比特大小的內存,以此類推,所以要看你的CPU是怎麼定義內存地址的。
如果你為了玩游戲沒必要關心這些,只要知道怎麼配置快就行了,如果你想學點東西,可以找本書看看,這不是什麼復雜的問題,在電子電路中是比較基礎的東西,因為不知道定址方式是無法設計電路和編程的。
你可以去INTEL網站下技術白皮書,裡面很詳細
㈧ 寄存器定址的含義是什麼
操作數在寄存器中,由指令操作碼中的rrr三位的值和PSW中RS1及RS0的狀態,選中某個工作寄存器區的某個寄存器,然後進行相應的指令操作。
指令所要的操作數已存儲在某寄存器中,或把目標操作數存入寄存器。把在指令中指出所使用寄存器(即:寄存器的助憶符)的定址方式稱為寄存器定址方式。
指令中可以引用的寄存器及其符號名稱如下:
、8位寄存器有:AH、AL、BH、BL、CH、CL、DH和DL等;
、16位寄存器有:AX、BX、CX、DX、SI、DI、SP、BP和段寄存器等;
、32位寄存器有:EAX、EBX、ECX、EDX、ESI、EDI、ESP和EBP等。
寄存器定址方式是一種簡單快捷的定址方式,源和目的操作數都可以是寄存器。
1、源操作數是寄存器定址方式
如:ADD VARD, EAXADD VARW, AXMOV VARB, BH等。
其中:VARD、VARW和VARB是雙字,字和位元組類型的內存變數。在第4章將會學到如何定義它們。
2、目的操作數是寄存器定址方式
如:ADD BH, 78hADD AX, 1234hMOV EBX, 12345678H等。
3、源和目的操作數都是寄存器定址方式
如:MOV EAX, EBXMOV AX, BXMOV DH, BL等。
由於指令所需的操作數已存儲在寄存器中,或操作的結果存入寄存器,這樣,在指令執行過程中,會減少讀/寫存儲器單元的次數,所以,使用寄存器定址方式的指令具有較快的執行速度。通常情況下,我們提倡在編寫匯編語言程序時,應盡可能地使用寄存器定址方式,但也不要把它絕對化。
㈨ 訪問程序存儲器中的常數數據,可以使用哪些定址方式
1立即數定址;2寄存器定址;3.主存定址。
直接在指令中給出操作數,不需要存儲單元,執行速度快,但是顯然數據也不能冗長,通用型性就差,一般用來指定一些要求不高的整形整數。操作數來源於寄存器,結果也寫回寄存器。顯然這個主要用到寄存器,這也是他的名字的由來。
指令特點
MCS-51的指令系統由111條指令組成。如果按位元組數分類,有49條單位元組指令,46條雙位元組指令和16條三位元組指令,以單位元組指令為主;如果按照指令執行時間分類,有64條單周期指令、45條雙周期指令和2條四周期指令,以單周期指令為主。存儲效率高、執行速度快,可以進行直接地址到直接地址的數據傳送,能把一個並行I/O口中的內容傳送到內部RAM單元中而不必經過累加器A或工作寄存器Rn。這樣可以大大提高傳送速度和緩解累加器A的瓶頸效應。
㈩ 寄存器定址和寄存器間接定址的區別
一、主體不同
1、寄存器定址:是指操作數在寄存器中,由指令操作碼中的rrr三位的值和PSW中RS1及RS0的狀態,選中某個工作寄存器區的某個寄存器,然後進行相應的指令操作。
2、寄存器間接定址:將指定的寄存器內容為地址,由該地址所指定的單元內容作為操作數。
二、功能不同
1、寄存器定址:指令所要的操作數已存儲在某寄存器中,或把目標操作數存入寄存器。
2、寄存器間接定址:寄存器內存放的是操作數的地址,而不是操作數本身,即操作數是通過寄存器間接得到的。
三、特點不同
1、寄存器定址:在指令執行過程中,會減少讀/寫存儲器單元的次數,所以,使用寄存器定址方式的指令具有較快的執行速度。
2、寄存器間接定址:需要以寄存器符號的形式來表示,且在寄存器名稱前面加上間接定址符號「@」。例如指令MOV A,@R0就使用了寄存器間接定址方式。