數據存儲器定址方法
1. 程序存儲器中的數據怎麼定址
程序存儲器指令地址使用程序計數器PC指針,PC中存放的是下一條將要從程序存儲器中取出的指令的地址。程序計數器PC變化的軌跡決定程序的流程,PC最基本的工作方式是自動加1。
在執行條件轉移或無條件轉移指令時,將轉移的目的地址送入程序計數器,程序流向發生變化。在執行調用指令或響應中斷時,將子程序的入口地址或者中斷矢量地址送人PC,程序流向發生變化。
DPTR是一個16位特殊功能寄存器,主要功能是作為片外數據存儲器或I/0定址用的地址寄存器,這時會產生RD或wR控制信號,用於單片機對外擴的數據存儲器或I/0的控制。數據指針DPTR也可以作為訪問程序存儲器時的基址寄存器,此時是定址程序存儲器中的表格、常數等單元,而不是定址指令。
2. 要訪問特殊功能寄存器和片外數據存儲器,可採用哪些定址方式
採用直接定址方式。
位定址也可,但是這仍然屬於直接定址。
不能用寄存器定址和寄存器間接定址。
在指令格式的地址的欄位中直接指出操作數在內存的地址。由於操作數的地址直接給出而不需要經過某種變換,所以稱這種定址方式為直接定址方式。在指令中直接給出參與運算的操作數及運算結果所存放的主存地址,即在指令中直接給出有效地址。
(2)數據存儲器定址方法擴展閱讀:
在直接定址中,指令操作數欄位中存放的是操作數的16位偏移地址EA,即操作數的偏移地址EA和操作碼一起存放在代碼段中,而操作數可以存放在數據段,也可以存放在其它段,操作數的物理地址由其所在段的寄存器內容左移4位與指令中給出的偏移地址EA相加形成。
物理地址PH=(DS)*10H+EA(Disp)EA可以用符號或數值表示。如果用數值表示EA則必須用括弧括起來,而且是在方括弧前應給出段寄存器名,直接定址的操作數可以是字或位元組。
3. 計算機中常用的定址方式有哪幾種
存取數據有關的定址方式:立即定址 、寄存器定址、直接定址、寄存器間接定址、寄存器相對定址、基址變址定址、相對基址變址定址與程序控制有關的定址方式:段內直接定址、段間直接定址、段內間接定址、段間間接定址。
定址方式是指尋找指令或操作數有效地址的方式,也就是指確定本條指令的數據地址,以及下一條將要執行的指令地址的方式。
(3)數據存儲器定址方法擴展閱讀:
指令中的地址碼欄位並不代表操作數的真實地址,稱為形式地址(A)。用形式地址並結合定址方式,可以計算出操作數在存儲器中的真實地址,稱為有效地址(EA)。尋找下一條要執行的指令地址稱為指令定址,尋找操作數的地址稱為數據定址。
1、指令定址
指令定址方式分為順序定址方式和跳躍定址方式。
1)順序定址方式可通過程序計數器PC加1,自動形成下一條指令的地址。
2)跳躍定址則通過轉移指令實現。所謂跳躍,是指下條指令的地址碼不是由程序計數器給出的,而是由本條指令給出。
2、數據定址
數據定址是如何在指令中表示一個操作數的地址,如何用這種表示得到操作數或怎樣計算出操作數的地址。
數據定址方式的種類較多,為了區別各種方式,通常在指令中設一個欄位,用來指明屬於屬於那種定址方式。
4. 要訪問特殊功能寄存器和片外數據存儲器,可採用哪些定址方式
特殊功能寄存器只能直接定址
片外數據存儲器只能間接定址,只能通過DPTR或R0和R1向A傳送
MOVX A @DPTR
MOVX A @R0/@R1
MOVX @DPTR A
MOVX @R0/@R1 A
這是由指令規定的,所以只要記住是這么回事就行了,不要問為什麼。
5. S7-200PLC存儲器定址方式有哪幾種
S7-200PLC根據存儲器的編程元件,把數據存儲在不同的存儲單元,通過每個單元的地址 進行數據訪問,訪問數據的過程稱為「定址」,根據訪問數據存取的方式不同.可劃分為直接定址和間接定址。
1.直接定址
直接定址就是明確存儲器的區域、長度和位置,直接使用存儲器編程元件的名稱和地址進行數據交換,使用戶程序直接存取這些數據。直接定址包括位定址、位元組定址、字定址、雙字定址等方式。
(1)位定址方式
位(bit)定址方式用來表示「開關量或邏輯量」的工作過程。進行位定址時,要指定存儲器 編程元件的名稱、位元組地址和位地址,並把該位看成是一個獨立的元件。
(2)位元組、字、雙字定址方式
除了按位定址方式外,還可按數據存儲區域(I、Q、M、V、L、 S、SM等)的位元組、字和雙字的地址格式存取數據,進行位元組、字、雙字定址方式時,要指定存儲區域標識符、數據長度和起始地址。
2.間接定址
間接定址是使用指針的方式來訪問存儲器中的數據,而不是直接使用編程元件的地址編號 來訪問存儲器中的數據。
6. 存儲器定址方式有哪些立即數定址和寄存器定址是嗎
立即定址,寄存器定址,直接定址,寄存器間接定址,位定址,基址加變址寄存器間接定址,相對定址,一共7種
7. 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做間址器。
(7)數據存儲器定址方法擴展閱讀:
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的所有波特率通訊。
8. 要訪問特殊功能寄存器和片外數據存儲器,可採用哪些定址方式
只能用直接定址。
位定址也可,但是這仍然屬於直接定址。
不能用寄存器定址和寄存器間接定址。
9. 用某個寄存器中操作數的定址方式稱為______定址。
用某個寄存器中操作數的定址方式稱為寄存器間接定址。
寄存器間接定址是將指定的寄存器內容為地址,由該地址所指定的單元內容作為操作數。MCS-51規定R0或R1為間接定址寄存器,它可定址內部RAM低位地址的128個位元組單元內容。
還可採用數據指針(DPTR)作為間接定址寄存器,定址外部數據存儲器的64K位元組空間,但不能用本定址方法定址特殊功能寄存器。
(9)數據存儲器定址方法擴展閱讀:
功能
操作數放在RAM某個單元中,該單元的地址又放在寄存器R0或R1中。 如果RAM的地址大於256,則該地址存放在16位寄存器DPTR(數據指針)中,此時在寄存器名前加@符號來表示這種間接定址。如MOV A,@ R0。
其它還有變址定址、相對定址、位定址等。如用單片機控制溫度時,時時需要將給定的控制溫度(如20℃)減去環境溫度,而環境溫度時時有變化,顯然無法在程序指令中給出,只有通過一定方式,將其送入某個輸入/輸出口,再存放在某個寄存器中,這就必須用到寄存器定址。
又如要進行算術運算,要計算每班學員各科成績的平均值,如果把每個學員的各科都編一個程序,在程序中直接給出該學員各科成績,再求平均值,顯然太麻煩。