日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> 單片機(jī)的幾種尋址方式

單片機(jī)的幾種尋址方式

關(guān)鍵字:單片機(jī) 尋址方式 作者:admin 來源:不詳 發(fā)布時(shí)間:2018-05-18  瀏覽:6

尋址就是尋找指令中操作數(shù)或操作數(shù)所在的地址。所謂尋址方式,就是如何找到存放操作數(shù)的地址,把操作數(shù)提取出來的方法。通常指源操作數(shù)的尋址方式。

MCS-51系列單片機(jī)尋址方式共有七種:寄存器尋址、直接尋址、立即數(shù)尋址、寄存器間接尋址、變址尋址、相對尋址、位尋址。

1、寄存器尋址

寄存器尋址是指操作數(shù)存放在某一寄存器中,指令中給出寄存器名,就能得到操作數(shù)。寄存器可以使用寄存器組R0~R7中某一個(gè)或其它寄存器(A,B,DPTR等)。

例如:

MOV A,R0 ;(R0 )→A

MOV P1,A ;(A)→P1

ADD A, R0 ;(A)+(R0) →A

2、直接尋址

在指令中直接給出操作數(shù)所在的存儲單元的地址,稱為直接尋址方式。在8051中,使用直接尋址方式可訪問片內(nèi)RAM的128個(gè)單元以及所有的特殊功能寄存器(SFR),對于特殊功能寄存器,既可以使用他們的地址,也可以使用他們的名字。

例如:

MOV A, 3AH ;(3AH) →A

又如:

MOV A, P1 ;(P1口) →A

也可寫為:

MOV A, 90H ; 90H是P1口的地址。

3、立即數(shù)尋址

指令操作碼后面緊跟的是一字節(jié)或兩字節(jié)操作數(shù),用 # 號表示,以區(qū)別直接地址。例如:

MOV A, #3AH ;3AH→A

MCS-51系列單片機(jī)有一條指令,要求操作碼后面緊跟的是兩個(gè)字節(jié)立即數(shù),即

MOV DPTR, #DATA16

4、寄存器間接尋址

寄存器中的內(nèi)容是一個(gè)地址,由該地址單元尋址到所需的操作數(shù).

例如: MOV R1,#30H ;(R1)← 立即數(shù)30H

MOV @R1,#0FH ;(30H)←立即數(shù)0FH

MOV A,@R1 ;(A)←((30H))=#0FH

注意:

“間接”表示某寄存器中的“內(nèi)容”只是一個(gè)“單元地址”,這個(gè)地址單元中存放的數(shù)據(jù)才是要找的“操作數(shù)”。

例如,指令MOV A,@R0執(zhí)行的操作是將R0的內(nèi)容作為內(nèi)部RAM的地址,再將該地址單元中的內(nèi)容取出來送到累加器A中,如圖所示。

5、變址尋址 ,也稱為: 基址寄存器+變址寄存器間接尋址

以16位的地址指針寄存器DPTR或 16位的PC寄存器為基址寄存器,以累加器 A 為變址寄存器,兩者中的“內(nèi)容”形成一個(gè)16位的“地址”,該“地址”所指的存儲單元中的內(nèi)容才是操作數(shù)。用變址尋址方式只能訪問程序存儲器,訪問的范圍為64KB,當(dāng)然,這種訪問只能從ROM中讀取數(shù)據(jù)而不能寫入。

例如: MOVC A, @A+DPTR ;((A)+ (DPTR))→A

設(shè):A中已存有#30H,DPTR中已存有#1000H

MOVC A,@A+DPTR;(A)←((A)+(DPTR))

操作:將30H+1000H=1030H單元中的數(shù)放進(jìn)累加器A

6、相對尋址

相對尋址只出現(xiàn)在相對轉(zhuǎn)移指令中。相對轉(zhuǎn)移指令執(zhí)行時(shí),是以當(dāng)前的PC值加上指令中規(guī)定的偏移量rel而形成實(shí)際的轉(zhuǎn)移地址。這里所說得PC的當(dāng)前值是執(zhí)行完相對轉(zhuǎn)移指令后的PC值,一般將相對轉(zhuǎn)移指令操作碼所在的地址稱為源地址,轉(zhuǎn)移后的地址稱為目的地址。于是有:目的地址=源地址+2(相對轉(zhuǎn)移指令字節(jié)數(shù))+rel

51單片機(jī)指令系統(tǒng)中相對轉(zhuǎn)移指令既有雙字節(jié)的,也有三字節(jié)的。

7、位尋址

采用位尋址方式的指令,操作數(shù)是8位二進(jìn)制數(shù)中的某一位。指令中給出的是位地址,是片內(nèi)RAM某個(gè)單元中的某一位的地址。位地址在指令中用bit表示。

例: CLR P1.0 ;(P1.0) ← 0

SETB ACC.7 ;(ACC.7)← 1

CPL C ;( C )← NOT( C )

位地址常用下列三種方式表示;

(1)直接使用位地址表示。對于20H~2FH的16個(gè)單元共128位,位地址分布是00H~7FH。

(2)對于特殊功能寄存器,可以直接用寄存器名字加位數(shù)表示,如PSW.3、ACC.5等。

(3)對于定義了位名字的特殊位,可以直接用其位名表示,例如:CY、AC等。

尋址方式及對應(yīng)存儲器空間

尋址方式尋址空間
立即數(shù)尋址程序存儲器ROM、數(shù)據(jù)存儲器RAM
直接尋址片內(nèi)RAM低128B,特殊功能寄存器
寄存器尋址通用寄存器R0---R7,其他寄存器A、B、DPTR
寄存器間接尋址片內(nèi)RAM低128B【@R0、@R1、SP(僅PUSH、POP)】片外RAM(@R0、@R1、@DPTR)
變址尋址程序存儲器、數(shù)據(jù)存儲器、(@A+PC、@A+DPTR)
相對尋址程序存儲器256B(PC+偏移量)
位尋址片內(nèi)RAM的20H---2FH字節(jié)地址、部分特殊功能寄存器

尋址方式中常用符號注釋

(1) Rn(n=0~7) 當(dāng)前選中的工作寄存器R0~R7 。

(2) Ri(i=0,1) 當(dāng)前選中的工作寄存器組中,可作為間址寄存器

的兩個(gè)工作寄存器R0、R1。

(3) #data 8位立即數(shù)。

(4) # data16 16位立即數(shù)。

(5) direct 8位片內(nèi)RAM單元(包括SFR)的直接地址。

(6) addr11 11位目的地址,用于ACALL和AJMP指令中。

(7) addr16 16位目的地址,用于LCALL和LJMP指令中。

(8) rel 補(bǔ)碼形成的8位地址偏移量。

(9) bit 片內(nèi)直接尋址位地址。

(10)@ 間接尋址方式中,表示間址寄存器的符號。

(11)/ 位操作指令中,表示對該位先取反再參與操作,但

不影響該位原值。

(12)(X) 表示X中的內(nèi)容。

(13)((X)) 由X指出的地址單元中的內(nèi)容。

(14) → 指令操作流程,將箭頭左邊的內(nèi)容送入箭頭右邊的單元。

編輯:admin  最后修改時(shí)間:2018-05-18

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

靖江市| 林口县| 山东省| 西和县| 德化县| 德化县| 行唐县| 武乡县| 佛坪县| 剑河县| 巴东县| 天台县| 曲麻莱县| 满洲里市| 互助| 惠水县| 灌南县| 霍城县| 宜州市| 柯坪县| 荥阳市| 三台县| 隆德县| 沧源| 无棣县| 纳雍县| 喀什市| 元江| 海兴县| 虹口区| 武平县| 建平县| 晋城| 张家口市| 安溪县| 安国市| 河北区| 黑水县| 镇远县| 寿宁县| 岗巴县|