『壹』 51系列單片機定址方式的定址方式
立即數定址又稱立即定址,即指令中直接給出操作數的定址方式稱為立即數定址。在51系列單片機指令系統中,立即數用前面加「#」號的8位數表示(#data,如#30H)或16位數(#data16,如#2052H)表示。舉例說明立即數定址方式,以傳送指令為例。
例:MOV A, #80H ;80H——>A
MOV DPTR, #2000H ;2000H——>DPTR 指令中直接給出操作數地址(dir)的定址方式稱為直接定址。定址對象為:1 內部數據存儲器,在指令中以直接地址表示;2特殊功能寄存器SFR,在指令中用寄存器名稱表示。
下面舉例說明。
例:MOV A, 25H ;內部RAM的(25H)——>A
MOV P0, #45H ;45H——>P0 ,P0為直接定址的SFR
MOV 30H,20H ;內部RAM的(20H)——>(30H) 以通用寄存器的內容為操作數的定址方式稱為寄存器定址。通用寄存器包括:A、B、DPTR、R0~R7。其中B寄存器僅在乘法、除法指令中為寄存器定址,在其它指令中為直接定址。A寄存器可以寄存器定址,又可以直接定址(此時寫作ACC)。直接定址和寄存器定址的差別在於,直接定址是操作數所在的位元組地址(佔一個位元組),寄存器定址是寄存器編碼出現在指令碼中。寄存器定址速度比直接定址要快。除上面所指的幾個寄存器外,其它特殊功能寄存器一律為直接定址。
例:MOV A, R0 ;R0——>A,R0為寄存器定址
MUL AB ;A×B——>BA,A,B為寄存器定址
MOV B, R0 ;R0——>B,R0為寄存器定址,B為直接定址
PUSH ACC ;A的內容入棧,A為直接定址
ADD A, ACC ;A為寄存器定址,ACC為直接定址 以寄存器中的內容為地址,該地址的內容為操作數的定址方式稱為寄存器間接定址。能夠進行寄存器間接定址的寄存器有:R0、R1、DPTR,用前面加@表示,如@R0、@R1、@DPTR。寄存器間接定址的存儲空間包括內部數據存儲器和外部數據存儲器。由於內部數據存儲器共有128位元組,因此用一位元組的R0和R1可間接定址整個空間。而外部數據存儲器最大可達64K,僅R0或R1無法定址整個空間,為此需要由P2埠提供外部RAM高8位地址,由R0或R1提供低8位地址,由此共同定址64K位元組范圍。也可用16位的DPTR寄存器間接定址64K位元組存儲空間。
在指令中,是對內部RAM還是對外部RAM定址,區別在於對外部RAM的操作僅有數據傳送指令,並且用MOVX作為操作助記符。
例:MOV @R0, A ;A——>以R0內容為地址的內部RAM中
MOVX @DPTR, A ;A——>以DPTR內容為地址的外部RAM中 由寄存器DPTR或PC中的內容加上A累加器內容之和而形成操作數地址的定址方式稱為變址定址。變址定址只能對程序存儲器中的數據進行定址操作。由於程序存儲器是只讀存貯器,因此變址定址只有讀操作而無寫操作。在指令符號上採用MOVC的形式。
例:MOVC A, @A+DPTR ;(A+DPTR)——>A
MOVC A, @A+PC ; (PC)+1——PC ((A)+(PC))——>A
圖4 MOVC A, @A+DPTR
圖5 MOVC A, @A+PC 對位地址中的內容進行位操作的定址方式稱為位定址。由於單片機中只有內部RAM和特殊功能寄存器的部分單元有位地址,因此位定址只能對有位地址的這兩個空間進行定址操作。位定址是一種直接定址方式,由指令給出直接位地址。與直接定址不同的是,位定址只給出位地址,而不是位元組地址。
例:SETB 20H ;1——>20H位
MOV 32H, C ;進位Cy(即指令中的C)——>32H位 以當前程序計數器PC的內容為基址,加上指令給出的一位元組補碼數(偏移量)形成新的PC值的定址方式稱為相對定址。相對定址方式只修改PC值,故主要用於實現程序的分支轉移。
例:SJMP 08H ;PC+2+08H——>PC (該指令為兩位元組,所以有PC+2)
『貳』 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做間址器。
(2)單片機定址方式擴展閱讀:
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的所有波特率通訊。
『叄』 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;以及部分可以位定址的特殊功能寄存器。
『肆』 51單片機的源操作數定址方式
MOV R0, A
源操作數為寄存器定址方式。
MOV &R0, 30H
源操作數為直接定址方式。
MOV P2, P1
源操作數為寄存器定址方式。
MOV xxx, R0
源操作數為寄存器定址方式。
『伍』 80C51單片機的定址方式
立即定址,直接定址,寄存器定址,寄存器間接定址,變址定址,相對定址,位定址
『陸』 51單片機定址方式
這個啊,這本來是書上說得不確切的,他說的直接定址那是mov
psw,#25說是第一個操作數的定址方式為直接,而MOV
A,#68H說的是後一個68H
這個數的定址方式,在書本上常有這種,說得不確切的地方,說它錯,也沒有,是你如何理解的問題,不過,都知道了這些也就能想得到了
『柒』 單片機一共有多少種定址方式
51單片機有5中定址方式
『捌』 單片機的幾種定址方式
51單片機有7種定址方式:
1、立即數定址
2、直接定址
3、寄存器定址
4、寄存器間接定址
5、變址定址
6、位定址
7、相對定址
『玖』 什麼是單片機定址方式
單片機的定址方式就是MCU根據指令中給出的地址信息來尋找物理地址的方式,是確定本條指令的數據地址以及下一條要執行的指令地址的方法。
『拾』 MCS-51單片機定址方式有哪些如何設置定址方式
51單片機有以下定址方式:
1、立即數定址
2、直接定址
3、寄存器定址
4、寄存器間接定址
5、變址定址
6、位定址
7、相對定址
定址方式不是設置的,而是通過操作數來確定的。