1. MCS-51系列單片機有哪7種定址方式各有什麼特點
MCS-51系列閉改單片機有哪7種定址方式?各有什麼特點?
正確答案:立即定址、直接定址、寄存器定址、寄存器間接定址、變址定址、相對定址、位定址。立即定址數據包含指轎塵判令信息中、直接定址數據在存儲空間、寄存器兄好定址數據在工作寄存器、寄存器間接定址中數據在意寄存器內容為地址的數據存儲空間,變址定址數據在累加器數值與基址數值之和作為地址所對應的存儲器中,相對定址是目標指令與當前指令的距離,位定址是對應片內RAM的位定址區。
2. 單片機系統指令的指令系統的定址方式
訪問指令
一、操作數在寄存器中;
如MOV A,Rn ;(Rn)→A,n=0~7
1、4組工作寄存區,共32個工作寄存器。
2、部分特殊功能寄存器,例如A、B 及DPTR等。
二、訪問片外數據存儲器
(1)用R0或R1作為間址寄存器,定址范圍為片外低256個位元組;
(2)用DPTR作為間址寄存器,定址范圍為片外64K。
a) MOVX A,@Ri ;i=0或1
若(Ri)=70H,把外部RAM中70H單元的內容送到A
b) MOVX A,@DPTR
若(DPTR)=2000H,把外部RAM中2000H單元的內容送到A
3、堆棧操作指令訪問堆棧區
堆棧專用操作指令PUSH(壓棧)和POP(出棧)使用堆棧
指針(SP)作間址寄存器
指令PUSH(壓棧)和POP(出棧),無前綴標志「@」
四、立即(數)定址方式
操作數在指令中直接給出,需在操作數前面加前綴標志「#」。
如MOV A,#40H,此時立即數在程序存儲單元中。
五、基址寄存器加變址寄存器間址定址方式
1、以DPTR或PC作基址寄存器,以累加器A作為變址寄存器;
2、基址寄存器+變址寄存器形成操作數地址;
3、本定址方式專門針對程序存儲器,定址范圍可達到64KB。
4、本定址方式的指令只有3條:
MOVC A,@A+DPTR
MOVC A,@A+PC
JMP @A+DPTR
前2條又稱查表指令,將程序存儲器單元內容給ACC;
後1條為散轉指令,屬於轉移類指令。
(注)
(1)本定址方式是專門針對程序存儲器的定址方式,定址范圍可達到64KB。
(2)本定址方式的指令只有3條:
MOVC A,@A+DPTR
MOVC A,@A+PC
JMP @A+DPTR
六、位定址方式
89C51有位處理功能,可以對數據位進行操作,
如MOV C,40H是把位40H的值送到進位位C。
定址范圍:
1、內部RAM中的位定址區(20H—2FH),有2種表示方法。
(1) 直接給出位地址,如MOV C,40H;
(2) 單元地址加位數,如MOV C,(28H).0,指的是28H單元中的最低位。
2、SFR中的可定址位(70H—FFH,共83位),有4種表示方法。
(1) 直接給出位地址,如MOV C,0D5H(PSW.5的位地址);
(2) 直接寫位名稱,如MOV C,F0;
(3) 單元地址加位數,如MOV C, (0D0H).5;
(4) SFR符號加位數,如MOV C, PSW.5。
七、相對定址方式
在相對定址的轉移指令中,給出了地址偏移量「rel」,即
把PC的當前值+ rel 就構成了程序轉移的目的地址。即
目的地址=轉移指令所在的地址+ 轉移指令的位元組數+ rel
偏移量rel是帶符號的8位二進制補碼數,范圍是:–128 ~ +127 ;
注意:PC的當前值是緊接在轉移指令後的下一條指令的PC值。
3. MCS-51單片機的指令系統有幾種定址方式。
MCS-51單片機的指令系統有七種定址方式,分別是:
一、立即定址
立即定址就是將操作數緊跟在操作碼後面,與操作碼一起放在指令代碼段中,在程序運行時,程序直接調用該操作數,而不需要到其他地址單元中去取相應的操作數,上述的寫在指令中的操作數也稱作立即數。
二、直接定址
直接定址在指令格式的地址的欄位中直接指出操作數在內存的地址。由於操作數的地址直接給出而不需要經過某種變換,所以稱這種定址方式為直接定址方式。在指令中直接給出參與運算的操作數及運算結果所存放的主存地址,即在指令中直接給出有效地址。
三、寄存器定址
寄存器定址是指操作數在寄存器中,由指令操作碼中的rrr三位的值和PSW中RS1及RS0的狀態,選中某個工作寄存器區的某個寄存器,然後進行相應的指令操作。
四、寄存器間接定址
寄存器間接定址是將指定的寄存器內容為地址,由該地址所指定的單元內容作為操作數。MCS-51規定R0或R1為間接定址寄存器,它可定址內部RAM低位地址的128個位元組單元內容。還可採用數據指針(DPTR)作為間接定址寄存器,定址外部數據存儲器的64K位元組空間,但不能用本定址方法定址特殊功能寄存器。
五、相對定址
相對定址以程序計數器PC的當前值(R15中的值)為基地址,指令中的地址標號作為偏移量,將兩者相加後得到操作數的有效地址。
六、變址定址
把變址寄存器的內容(通常是位移量)與指令地址碼部分給出的地址(通常是首地址)之和作為操作數的地址來獲得所需要的操作數就稱為變址定址。
七、位定址
對位地址中的內容進行位操作的定址方式稱為位定址。由於單片機中只有內部RAM和 特殊功能寄存器的部分單元有位地址,因此位定址只能對有位地址的這兩個空間進行定址操作。
(3)單片機的3種指令定址方式擴展閱讀:
MCS-51單片機是一種集成的電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能(脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的計算機系統。
4. 51單片機的定址方式
親,你好。MCS-51系列單片機定址方式共有七種:寄存器定址、直接定址、立即數定址、寄存器間接定址、變址定址、相對定址、位定址。 寄存器定址是指操作數存放在某一寄存器中,指令中給出寄存器名,就能得到操作數。 寄存器可以使用寄存器組R0~R7中某一個或其它寄存器 (A,B,DPTR等)。 在指令中直接給出操作數所在的存儲單元的地址,稱為直接定址方式。 在8051中,使用直接定址方式可訪問片內RAM的128個單元以及所有的特殊功能寄存器 (SFR),對於特殊功能寄存器,既可以使用他們的地址,也可以使用他們的名字。 MOV A, 90H ; 90H是P1口的地址。 指令操作碼後面緊跟的是一位元組或兩位元組操作數,用 # 號表示,以區別直接地址。 例如: 寄存器中的內容是一個地址,由該地址單元定址到所需的操作數.
5. 單片機中堆棧指令是什麼定址方式
寄存器間接定址范圍總結:
1、外部RAM 64KB。對外部RAM64KB的間接定址,應使用@DPTR作間址定址寄存器,其形式為:@DPTR。
例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內容送入累加器A中。
外部RAM的低256單元是一個特殊的定址區,除可以用DPTR作間址寄存器定址外,還可以用R0或R1作間址寄存器定址。
例如MOVX A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內容送入累加器A。
2、堆棧操作指令(PUSH和POP)也應算作是寄存器間接定址,即以堆棧指針SP作間址寄存器的間接定址方式。
3、內部RAM低128單元。對內部RAM低128單元的間接定址,應使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。
4、內部RAM的高128單元也可以訪問。但是注意不能用間接定址的方式去訪問特殊功能寄存器,雖然SFR與內部高128位元組RAM地址相同,但是當一個指令訪問高於7HF的內部位置時,CPU是根據定址方式來區分是訪問高128位元組的內部RAM數據還是訪問SFR.
6. 單片機 定址方式
單片機有七種定址方式分別是:1.寄存器定址例如: MOV A,R0;2.直接定址例如: MOV A,4FH;3.寄存器間接定址 MOV A,@R04.立即數定址 MOV A,#0FFH5.變址定址(典型的是查表指令) MOV A,@A+DPTR6.相對定址 SJMP $7.位定址 SETB P0.0; MOV 60H,40H;是屬於直接定址;(直接用內存單元的地址來尋找對應的內容) MOV A, #58HMOV RO, #0B0HMOV @RO, AMOV 0B0H, #28H而執行完以上指令後結果是:(0B0H)=P3=28H;因為在8051單片機中P3口是特殊功能寄存器(也佔一內存)它的地址剛好是0B0H;程序的最後給0B0H賦了立即數28H;
7. 80c51單片機有幾種定址方式,各涉及那些存儲空間
答: 80C51 有七種定址方式:
1、立即定址,定址空間為ROM;
2、直接定址,定址空間為片內RAM的低128B和特殊功能寄存器;
3、寄存器定址,定址空間為A、B、DPTR、CY、通用工作寄存器等;
4、寄存器間接定址,片內RAM低128B、片外RAM;
5、相對定址,定址空間為ROM; .
6、變址定址,定址空間為ROM;
7、位定址,定址空間為片內RAM低128B的位尋鬧前尺址區的128個位,其位元組地址為20H~2FH; 以及部分可以位定址的特殊功能寄存器。
(7)單片機的3種指令定址方式擴展閱讀
指令的定址方式有以下兩種:
1、順序定址方式
由於指令地址在內存中按順序安排,當執行一段程序時,通常是一條指令接一條指令地順序進行。悔態也就是說,從存儲器取出第1條指令,然後執行這條指令;接著從存儲器取出第2條指令,再執行第二條指令;接著再取出第3條指令。
這種程序順序執行的過程,液高稱為指令的順序定址方式。為此,必須使用程序計數器(又稱指令計數器)PC來計數指令的順序號,該順序號就是指令在內存中的地址。
2、跳躍定址方式
當程序轉移執行的順序時,指令的定址就採取跳躍定址方式。所謂跳躍,是指下條指令的地址碼不是由程序計數器給出,而是由本條指令給出。注意,程序跳躍後,按新的指令地址開始順序執行。因此,程序計數器的內容也必須相應改變,以便及時跟蹤新的指令地址。