RS1RS0組合為00時,選中第0組工作寄存器,R0~R">

日韩精品中文字幕第1页,欧美日韩中文一区二区,日韩成人午夜精品,中文字幕一区日韩电影

大學(xué)校園網(wǎng)

大學(xué)生活網(wǎng) > 大學(xué)生學(xué)習(xí) > 電氣工程

MCS-51單片機的工作寄存器介紹

工作寄存器有4組,每組都是8個工作寄存器R0~R7,通過PSW中的RS1、RS0兩位來選擇使用哪一組,如果不選,默認(rèn)是選擇第0組。

RS1RS0組合為00時,選中第0組工作寄存器,R0~R7地址為00H~07H;

RS1RS0組合為01時,選中第1組工作寄存器,R0~R7地址為08H~0FH;

RS1RS0組合為10時,選中第2組工作寄存器,R0~R7地址為10H~17H;

RS1RS0組合為11時,選中第3組工作寄存器,R0~R7地址為18H~1FH。

類似arm的usr模式svc模式irq模式fiq模式,

psw.4psw.3

000區(qū)r0-r7獨立

011區(qū)r0-r7獨立

102區(qū)r0-r7獨立

123區(qū)r0-r7獨立

上邊的每個區(qū)都由相同的名字r0-r7寄存器引用,但數(shù)據(jù)空間卻不同,所以各自獨立,

每組寄存器在物理上是獨立的,也就是說,一共有32個寄存器。上電后默認(rèn)是第0組,但四組寄存器的功能、優(yōu)點完全相同。r0-r7支持豐富的尋址方式,可以大大提高運行效率。

所以,如果你有四個程序段(或者說線程)要交叉運行,都想使用到效率很高的r0-r7,就可以讓它們各占一組,只要切換區(qū)域就行了,而不必頻繁地保護(hù)現(xiàn)場。

尋址方式:

51單片機有7種尋址方式。

1、寄存器尋址:前面提到了內(nèi)部RAM中的00H-1FH地址單元作為工作寄存器使用。一共是有32各地址單元,分成四組,每組有8個寄存器,命名為R0-R7,每次可以使用其中的一組。當(dāng)使用R0-R7來表示操作數(shù)時,就屬于寄存器尋址方式。

例如:MOVA,R0;把寄存器R0的內(nèi)容送入累加器A中

2、直接尋址:在指令中直接給出操作數(shù)地址,就屬于直接尋址方式。此時指令的操作數(shù)部分直接是操作數(shù)的地址。

例如:MOVA,2AH;把RAM地址2AH的內(nèi)容送入累加器A中

3、立即尋址:

例如:MOVA,#3AH;該指令就是表示把立即數(shù)3AH送入累加器A中,立即數(shù)前加上一個#,和直接尋址方式區(qū)分

4、寄存器間接尋址:若以寄存器的名稱直接給出操作數(shù)的地址,則稱為寄存器間接尋址。

例如:MOVA,@R0;該指令是把RO里的內(nèi)容作為地址,這個地址的數(shù)據(jù)送入累加器A,注意前面需要加@

5、變址尋址:變址尋址是以某個寄存器的內(nèi)容為基本的地址,然后在這個基址上加以地址的偏移量,才是真正的操作數(shù)地址。

例如:MOVA,@A+DPTR;地址是A+DPTR的值,這個地址的內(nèi)容送如累加器A

6、相對尋址:相對轉(zhuǎn)移指令需要用到相對尋址方式,此時操作數(shù)部分給出的是地址的相對偏移量部分。

目的地址=源地址+指令字節(jié)數(shù)+rel(rel可正可負(fù))

例如:SJMPrel

7、位尋址:概念就不做解釋了。還是把reg52.h這個頭文件貼出來說。
主站蜘蛛池模板: 赣州市| 道真| 陆河县| 临高县| 溧水县| 东方市| 平昌县| 武山县| 万年县| 广昌县| 闻喜县| 汽车| 涞源县| 和田县| 阆中市| 宜丰县| 介休市| 恩施市| 馆陶县| 和田市| 辽中县| 商丘市| 尚义县| 祥云县| 榆树市| 苍山县| 酒泉市| 新绛县| 通化市| 东乌珠穆沁旗| 陇南市| 襄汾县| 深水埗区| 长治市| 晋江市| 阳新县| 富裕县| 肃宁县| 孟村| 中西区| 自治县|