68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

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

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

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

 執(zhí)行任何一條指令都需要使用操作數(shù)。尋址方式就是根據(jù)指令中給出地址尋找操作數(shù)地址的方式。

根據(jù)指令操作的需要,計(jì)算機(jī)有多種尋址方式?偟膩碚f,尋址方式越多,計(jì)算機(jī)的功能就越強(qiáng),靈活性越大,指令系統(tǒng)也越復(fù)雜,因此,在設(shè)定尋址方式時(shí),應(yīng)考慮到需要和可能. 51單片機(jī)指令系統(tǒng)中共有7種尋址方式。

1.立即尋址:

立即尋址是指在指令中直接給出操作數(shù),出現(xiàn)在指令中的操作數(shù)稱為立即數(shù),因此就將這種尋址方式稱為立即尋址.為了與直接尋址指令中的直接地址相區(qū)別,在立即數(shù)前面應(yīng)加前綴“#”。立即尋址時(shí),指令中地址碼部分給出的就是操作數(shù),即取出指令的同時(shí)立即得到了操作數(shù),例如指令:

MOV A,#3EH ;A ---3EH

式中,3EH就是立即數(shù),指令功能是把8位立即數(shù)3EH送入累加器A.

此外,在指令系統(tǒng)中還有一條16位立即數(shù)指令,即:

MOV DPTR, #datal6

其功能是把16位立即數(shù)送入數(shù)據(jù)指針I(yè)寄存器。

2.直接尋址

直接尋址時(shí),指令中地址碼部分直接給出了操作數(shù)單元的有效地址.例如指令:

MOV A,7EH ;A --- (7EH)

其功能是把片內(nèi)RAM中7EH單元內(nèi)的數(shù)據(jù)傳送給累加器A。

直接尋址方式只能給出8位地址,因此,此種尋址方式的尋址范圍只限于片內(nèi)RAM,具體地說:

(1)低128單元在指令中直接以單元地址形式給出。

(2)特殊功能寄存器,這時(shí)除了可以單元地址形式給出外,還可以寄存器符號形式給出。雖然特殊功能寄存器可以便用符號標(biāo)志,但在指令代碼中還是按地址進(jìn)行編碼的。需要說明的是,直接尋址是訪問特殊功能寄存器的惟一方法。

3.寄存器尋址:

寄存器尋址是指在指令中將指定寄存器的內(nèi)容作為操作數(shù)。因此,指定了寄存器就能得到操作數(shù).寄存器尋址時(shí),指令中地址碼給出的是某—通用寄存器的編號,例如指令:

MOV A , R1 ; A---(R1)

其功能是把寄存器R1的內(nèi)容送到累加器A中。由于操作數(shù)在A中,所以指定了R1也就得到了操作數(shù)。寄存器尋址方式的范圍包括:

(1)4個(gè)寄存器組共32個(gè)通用寄存器,但在指令中只能使用當(dāng)前寄存器組.因此,在使用前要通過t指定PSw中的Rs1、RS0,以選擇當(dāng)前寄存器組。

(2)部分特殊功能寄存器。例如,累加器A、寄存器B以及數(shù)據(jù)指針 DPTR。

4.寄存器間接尋址

寄存器間接尋址是指在指令中要到寄存器的內(nèi)容所指的地址中去取操作數(shù)?梢钥闯觯诩拇嫫鲗ぶ贩绞街,寄存器中存放的是操作數(shù);而在寄存器間接尋址方式中,寄存器中存放的則是操作數(shù)的地址,即寄存器為地址指針。這就是說,指令的操作數(shù)是通過寄存器間接得到的,因此稱為寄存器間接尋址。

寄存器間接尋址也需要以寄存器符號名稱的形式表示。為了區(qū)別寄存器尋址和寄存器間接尋址,在寄存器間接尋址中,應(yīng)在寄存器的名稱前加前綴“@”,例如指令:

MOV A,@R0; A---((R0))

寄存器間接尋址的尋址范圍是:

(1)片內(nèi)RAM低128單元,這里只能使用R0,R1作為間址寄存器.其通用形式寫為@Ri(i=0,1);

(2)片外RAM64KB;使用DPTR作為間址寄存器,書寫形式為@DPTR.

(3)片外RAM低256單元.除可使用DPTR作為間址寄存器外還可以使用R0,R1作為間址寄存器.

(4)堆棧區(qū),堆棧操作指令(PUSH和POP)也屬于寄存器間接尋址,即使用SP(堆棧指針)作為間址寄存器的間接尋址方式.

5.變址尋址

變址尋址是以DPTR或者PC作為基礎(chǔ)寄存器,累加器A作為變址寄存器,以兩者內(nèi)容相加形成的16位程序存儲器地址作為操作數(shù)地址.例如指令:

MoVC A, @A+DPTR ; A --- ((A)十(DPTR))

其功能是將DPTR和A的內(nèi)容相加所得到的程序存儲器地址單元的內(nèi)存送累加器A.

變址尋址指令有如下特點(diǎn):

(1)變址尋址方式只能對程序存儲器進(jìn)行尋址。

(2)變址尋址方式的指令只有三條:

MOVC A,@A+DPTR;

MOVC A,@A+PC;

JMP @A+DPTR;

其中,前兩條是程序存儲器讀指令,后一 條是無條件轉(zhuǎn)移指令.

(3)盡管變址尋址方式復(fù)雜,但這三條指令都都是單字節(jié)指令.

(4)變址尋址力式可用于查表操作。

6 相對尋址:

相對尋址是指在指令中l(wèi)給出的操作數(shù)為指令轉(zhuǎn)移的偏移量。相對尋址方式是為實(shí)現(xiàn)程序的相對轉(zhuǎn)移而設(shè)置的,為相對轉(zhuǎn)移指令所采用:

在相對轉(zhuǎn)移指令中,給出地址偏移量(在51單片I機(jī)系列的指令系統(tǒng)中,以“Rel"表示)把Pc的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移目的地的地址。而Pc的當(dāng)前值是指執(zhí)行完轉(zhuǎn)移指令后的PC值,即轉(zhuǎn)移指令的Pc值加上它的字節(jié)數(shù)。因此.轉(zhuǎn)移的目的地的地址可用如下公式表示:

目的地地址=轉(zhuǎn)移指令所在地地址+轉(zhuǎn)移指令字節(jié)數(shù)+Rel

在51單片l機(jī)指令系統(tǒng)中,有許多條相對轉(zhuǎn)移指令。這些指令多數(shù)均為兩字節(jié)指令,只有個(gè)別的是三字節(jié)指令。偏移量Rel是一個(gè)帶符號的8位二進(jìn)制補(bǔ)碼數(shù),所能表示數(shù)的范圍是-128---+127.因此,相對轉(zhuǎn)移指令的所在地址為基點(diǎn),向前最大可轉(zhuǎn)移(127+轉(zhuǎn)移指令字節(jié)數(shù))個(gè)單元地址,向后最大可轉(zhuǎn)移(128-轉(zhuǎn)移指令字節(jié)數(shù))個(gè)單元地址。

例如指令:

JC 70H

該指令表示若進(jìn)位位c為o,則程序計(jì)數(shù)器Pc中的內(nèi)容不變,不轉(zhuǎn)移;若C為1,則以Pc中當(dāng)前值為基地址,加上偏移量70H后所得結(jié)果作為該轉(zhuǎn)移指令的目的地址。

7 位尋址

51單片機(jī)有位處理功能,可以對數(shù)據(jù)位進(jìn)行操作,因此就有相應(yīng)的位尋址方式.

位尋址的范圍是:

(1)片內(nèi)RAM中的位尋址區(qū)

片內(nèi)RAM中的單元地址為20H—2FH,共16個(gè)單元128位.為位尋址區(qū),位地址是00H~7FH。這128個(gè)位的尋址使用直接地址表示。例如指令:

MOV C,2BH;

該指令的功能是把位尋址區(qū)的2BH位狀態(tài)送給位C。

(2)可位尋址的特殊功能寄存器位。

可位尋址的特殊功能寄存器有11個(gè),對應(yīng)尋址位共83位。對這些尋址位在指令中有以下4種表示方法。

·直接使用位地址表示法。

·單元地址加位的表示方法。例如,88H單元的位5,則表示為88H.5。

·特殊功能寄存器符號加位的表示方法。例如,psw寄存器的位5,可表示為psw.5。

·位名稱表示方法,特殊功能寄存器中的一些尋址位是有名稱的。例如,PSW寄存器位5為F0標(biāo)志位,則可使用F0表示該位。

一個(gè)尋址位有多種表示方法,看起來似乎復(fù)雜,實(shí)際上將為程序設(shè)計(jì)帶來方便。

位尋址時(shí),操作數(shù)是二進(jìn)制數(shù)的某一位,其地址出現(xiàn)在指令中,例如指令:

SETB bit ; (bit)---1

編輯: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

林西县| 南阳市| 崇阳县| 南投市| 凤庆县| 五大连池市| 扶绥县| 柘城县| 韩城市| 普安县| 天镇县| 抚顺县| 洮南市| 阳曲县| 黎城县| 苗栗县| 综艺| 同德县| 海南省| 新绛县| 乐业县| 凌源市| 封开县| 油尖旺区| 白水县| 本溪市| 商城县| 惠水县| 玉龙| 苏州市| 尼勒克县| 松潘县| 丹棱县| 青铜峡市| 长宁区| 壶关县| 张北县| 仪征市| 靖安县| 邳州市| 鹤岗市|