51单片机-寻址方式

上传人:枫** 文档编号:567652767 上传时间:2024-07-21 格式:PPT 页数:32 大小:639.50KB
返回 下载 相关 举报
51单片机-寻址方式_第1页
第1页 / 共32页
51单片机-寻址方式_第2页
第2页 / 共32页
51单片机-寻址方式_第3页
第3页 / 共32页
51单片机-寻址方式_第4页
第4页 / 共32页
51单片机-寻址方式_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《51单片机-寻址方式》由会员分享,可在线阅读,更多相关《51单片机-寻址方式(32页珍藏版)》请在金锄头文库上搜索。

1、 MCS-51MCS-51单片机指令系统单片机指令系统 4.1 指令概述指令概述 4.2 寻址方式寻址方式 4.3 MCS-51 MCS-51系列单片机的指令系统系列单片机的指令系统1一、指令概述一、指令概述 1 指令的定义指令的定义 2 指令的组成指令的组成 3 指令的表示方法指令的表示方法 2 1 指令的定义指令的定义 指令指令: :是人们向计算机发的一种命令是人们向计算机发的一种命令; ;一条指令对应着一一条指令对应着一 种操作。种操作。指令系统指令系统:CPU:CPU所能执行的全部指令的集合。所能执行的全部指令的集合。 CPUCPU能够执行多少条指令是由能够执行多少条指令是由CPUCP

2、U的内部结构决定的。的内部结构决定的。 不同的不同的CPUCPU,其指令系统不同。,其指令系统不同。3 2 指令的组成指令的组成 指令由操作码操作码和操作数操作数组成。操作码决定CPU执行何种操作。操作数是指参与运算的数。操作数及操作对象可以是一个数,也可以是数所在的地方地方。REG或MEM4 3 指令的表示方法指令的表示方法 用助记符(指令功能的英文缩写)书写。操作数用规定的符号书写。 指令在机器中必须以机器码指令在机器中必须以机器码( (二进制码二进制码) )的形式出现。的形式出现。 人们在书写指令时人们在书写指令时, ,可以有二种方法:可以有二种方法:1 、在计算机发展的初期在计算机发展

3、的初期, ,人们用人们用机器码机器码书写指令书写指令, ,这一阶段成为这一阶段成为机器语言机器语言阶段。阶段。 优点优点: :用机器码书写的程序用机器码书写的程序, ,计算机可以直接识别和运行。计算机可以直接识别和运行。 缺点缺点: :书写时容易出错书写时容易出错, ,不容易记忆。不容易记忆。2、为了克服机器语言的缺点为了克服机器语言的缺点, ,人们用人们用符号符号书写指令书写指令: : 指令由操作码和操作数组成。指令由操作码和操作数组成。 这一阶段成为这一阶段成为汇编语言阶段汇编语言阶段. . 优点优点: :容易理解和记忆。容易理解和记忆。 缺点缺点: :计算机不能直接识别和运行。计算机不能

4、直接识别和运行。 汇编语言程序必须转换成机器语言程序汇编语言程序必须转换成机器语言程序, ,转换方法有二种转换方法有二种: : 手工转换手工转换: : 查表查表 符号指令符号指令-机器码指令机器码指令-Mem-Mem 汇编程序汇编程序: : 符号指令符号指令-机器机器-机器码指令机器码指令-Mem-Mem5指令的格式指令的格式方括符方括符 表示可选项表示可选项标标号号是是该该指指令令的的符符号号地地址址,可可根根据据需需要要设设置置。某某个个语语句句一一旦旦赋赋予予某某个个标标号号,则则在在其其它它语语句句的的操操作作数数中中就就可可以以引引用用该该标标号号,以以便便控控制制程程序序的的转转移

5、移或或寻寻址址。标标号号与与操操作作码码之之间间用用冒冒号号“:”分隔开。分隔开。操操作作码码和和操操作作数数是是指指令令的的核核心心部部分分,在在二二者者之之间间用用若干空格分隔开。若干空格分隔开。 操操作作码码就就是是指指令令功功能能助助记记符符,指指令令实实体体,作作用用是是命命令令CPU作何种操作。作何种操作。 目的操作数和源操作数目的操作数和源操作数二者之间用二者之间用“,”号隔开。号隔开。 注释注释,以,以“;”;”开头开头 标号标号:操作码操作码 目的操作数目的操作数,源操作数源操作数;注释注释 6RnRn:当前工作寄存器当前工作寄存器R0R0R7R7中的一个。中的一个。RiRi

6、:当前工作寄存器:当前工作寄存器R0R0R1R1中的一个。中的一个。 :间接寻址寄存器或基址寄存器的前缀符号,如:间接寻址寄存器或基址寄存器的前缀符号,如RiRi,DPTRDPTR。DirectDirect:8 8位地址,可以是片内位地址,可以是片内RAMRAM单元地址(单元地址(0 0127/255127/255)或特殊功)或特殊功能寄存器(能寄存器(SFRSFR)地址。对)地址。对SFRSFR而言,既可使用它的物理地址,也可直而言,既可使用它的物理地址,也可直接使用它的名字。接使用它的名字。#date#date: 8 8位常数。位常数。#date16#date16:1616位常数。位常数。

7、addr16addr16:1616位目的地址。位目的地址。addr11addr11: 11 11位目的地址。位目的地址。relrel:8 8位带符号地址偏移量,取值范围为位带符号地址偏移量,取值范围为-128-128+127+127。BitBit:内部:内部RAMRAM和和SFRSFR中的具有位寻址功能的位地址。中的具有位寻址功能的位地址。SFRSFR中的位地址可中的位地址可以直接出现在指令中,为了阅读方便,往往也可用以直接出现在指令中,为了阅读方便,往往也可用SFRSFR的名字和所在的名字和所在的数位表示。如:表示的数位表示。如:表示PSWPSW中奇偶校验位,可写成中奇偶校验位,可写成D0H

8、D0H,也可写成,也可写成PSW.0PSW.0的形式出现在指令中。的形式出现在指令中。$ $:当前指令所在地址。:当前指令所在地址。:箭头右边的内容送到箭头左边所在地址。:箭头右边的内容送到箭头左边所在地址。(x):(x): x x中的内容。中的内容。7二、二、 寻址方式寻址方式 寻址方式的定义寻址方式的定义 MCS51MCS51单片机的寻址方式单片机的寻址方式 8 1 寻址方式的定义寻址方式的定义 指令由操作码操作码和操作数操作数组成。指出操作数所在地方的方式就是寻址方式。指出操作数所在地方的方式就是寻址方式。操作码决定操作码决定CPU执行何中执行何中操作。操作。操作数就是操作对操作数就是操

9、作对象。无论何种指令象。无论何种指令其操作的对象都是其操作的对象都是数据数据。数据在指令中有数据在指令中有2种表示方法种表示方法: 1、数本身、数本身2、数所在的地方、数所在的地方(REG,MEM中中)。9 2 MCS51单片机的寻址方式 每一种计算机都具有多种寻址方式。寻址方式的多少是 反映指令系统优劣的主要指标之一。 MCS51单片机有7种寻址方式。 1、立即寻址立即寻址 2、直接寻址直接寻址 3 、寄存器、寄存器间址间址 4、 寄存器寄存器寻址寻址 5 、变址寻址、变址寻址 (基址寄存器基址寄存器+变址寄存器间接寻址变址寄存器间接寻址) 6、相对寻址相对寻址 7 、位寻址位寻址101 1

10、、立即寻址、立即寻址寻址空间:寻址空间:指令形式:指令形式:操作码操作码立即数立即数v程序存储器程序存储器v指令的操作数存放在程序存储器中指令的操作数存放在程序存储器中v操作数紧跟操作码后面操作数紧跟操作码后面立即寻址:立即寻址:OP#dataImmediate Addressing11MOV A,# 30H;A #30H 例例1 1:操作码操作码立即数立即数PCPCPC74H30HROMROM A30HMOV DPTR,# 8000H;DPTR #8000H 例例2 2:操作码操作码PCPCPC立即数的高立即数的高8 8位位立即数的低立即数的低8 8位位DPHDPHDPLDPLPC80H80

11、H00H00H90H80HROMROM00H 注意:符号注意:符号“#”表明其后跟的是表明其后跟的是立即数立即数, 立即数立即数就是数字量本身。就是数字量本身。122 2、直接寻址、直接寻址寻址空间:寻址空间:指令的三种形式:指令的三种形式:操作码操作码操作数地址操作数地址v在指令中直接给出操作数的在指令中直接给出操作数的真实地址真实地址v操作码后面操作码后面紧跟一个实际紧跟一个实际操作数地址操作数地址操作码操作码操作数地址操作数地址立即数立即数操作码操作码源操作数地址源操作数地址目的操作数地址目的操作数地址内内RAM的低的低128字节字节特殊功能寄存器特殊功能寄存器SFR区区直接寻址直接寻址

12、直接寻址是访问直接寻址是访问 SFR 的唯一方法的唯一方法Direct Addressing00H7FH80HFFHCPU内部内部直接直接间接间接13“与与”MOV A, 30H;A (30H) 例例1 1:操作码操作码操作数地址操作数地址PCPCPC74H30HROMROM A内内RAMRAM 30H ANL 30H,#30H;30H (30H) #30H 例例2 2:操作码操作码PCPCPC直接地址直接地址立即数立即数PC53H30HROMROM 30H 内内RAMRAM 30H ALU“结果结果”14说明说明在本单片机中规定:访问特殊功能寄存器在本单片机中规定:访问特殊功能寄存器SFR只

13、能只能采用直接寻址方式。例如:采用直接寻址方式。例如:MOV A, SP MOV A, SP ; (A) (SP) (A) (SP) MOV A, 81H MOV A, 81H ; (A) (SP) (A) (SP) MOV P1, #5AH MOV P1, #5AH ; (P1)(#5AH) (P1)(#5AH) MOV 90H,#5AH MOV 90H,#5AH ; (P1)(#5AH) (P1)(#5AH) MOV B, 30H MOV B, 30H ; (B) (30H) (B) (30H) 相同相同相同相同15在本单片机中访问特殊功能寄存器在本单片机中访问特殊功能寄存器SFRSFR只

14、能只能采用直采用直接寻址方式的接寻址方式的原因:原因:SFRSFR分布在分布在80H80H0FFH0FFH范围内范围内,而而5252系列系列单片机有单片机有256256字节的片内字节的片内RAMRAM,其中的,其中的80H80H0FFH0FFH的的RAMRAM与与SFRSFR所占所占地址重叠地址重叠。MOV A, 90HMOV A, 90H 等效于等效于 MOV A,MOV A, P1 P1 属直接寻址属直接寻址 MOV A, R0MOV A, R0 ; 事先已知事先已知 (R0) = #90H (R0) = #90H 执行的操作:执行的操作:A (90H)A (90H) 属寄存器间接寻址属寄

15、存器间接寻址, , 随意写的指令如:随意写的指令如:MOV A, 85HMOV A, 85H 则是非法的!则是非法的! 于是规定:于是规定:这一范围内的这一范围内的RAMRAM只能用只能用寄存器间接寻寄存器间接寻址址方式方式,SFRSFR只能用只能用直接寻址直接寻址方式方式。从而解决了地从而解决了地址冲突的问题。例如:址冲突的问题。例如:163 3、寄存器寻址、寄存器寻址寻址空间:寻址空间:指令的三种形式:指令的三种形式:操作码操作码当前选定的当前选定的寄存器内容寄存器内容就是实际操作数就是实际操作数操作码操作码立即数立即数操作码操作码直接地址直接地址R0R7,由,由RS0、RS1确定确定寄存

16、器区寄存器区/4A、B、CY(位),(位),DPTR、ABMOV A,R3;A (R3) 例例1 1:ADD A,R3;A (A)+(R3)例例2 2:寄存器寻址:寄存器寻址:Register Addressing操作数操作数隐含隐含操作数显然操作数显然隐含寻址隐含寻址174 4、寄存器间接寻址、寄存器间接寻址寻址空间:寻址空间:指令的三种形式:指令的三种形式:操作码操作码操作码操作码立即数立即数操作码操作码直接地址直接地址内部内部 RAM(R0, R1, SP)外部外部 RAM(R0, R1,DPTR)寄存器间接寻址:寄存器间接寻址:寄存器中的内容是一个寄存器中的内容是一个地址地址,由该,由

17、该地地址单元址单元寻址到所需的操作数寻址到所需的操作数Register Indirect Addressing18MOV R0,A例例1 1:操作码操作码PCPCF6HROMROMR0R030H;累加器传送指令;累加器传送指令内内RAMRAM 30HA MOVX A,DPTR例例2 2:操作码操作码PCPCE0HROMROMDPTRDPTR 2000H外外RAMRAM 2000HA “读读”RD“读读”19注意注意:1 1)“间间接接”表表示示某某寄寄存存器器中中的的“内内容容”只只是是一一个个“单单元元地地址址”,这这个个地地址址单单元元中中存存放放的数据才是要找的的数据才是要找的“操作数操

18、作数”。2 2)符符号号“”“”表表示示“在在”,其其含含义义与与读读音音皆同皆同“at”“at”。3) 3) 规规定定工工作作寄寄存存器器只只有有R0R0和和R1R1才才用用于于间间接接寻寻址址4 4)规规定定用用MOVMOV指指令令访访问问片片内内RAMRAM,用用MOVXMOVX访访问问外部外部RAMRAM205 5、基址寄存器加变址寄存器间接寻址、基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址:基址寄存器加变址寄存器间接寻址: 以以DPTR或或PC作作基址寄存器基址寄存器,A作作变址寄存器变址寄存器两者相加形成两者相加形成操作数地址操作数地址。寻址空间:寻址空间:程序存储

19、器(程序存储器(A+DPTR、A+PC)指令形式:指令形式:操作码操作码21MOVC A,A+DPTR例:例:操作码操作码PCPCDPTRDPTR2400HA 0FH93HROMROM 240FH240FH设(设(A)= 0FH (DPTR)= 2400H ALU“读读”PSEN“读读”MOVC A,A+DPTR226 6、相对寻址、相对寻址程序存储器程序存储器寻址空间:寻址空间:指令的三种形式:指令的三种形式:操作码操作码 rel rel操作码操作码 直接地址直接地址 rel rel操作码操作码 立即数立即数 rel rel相对寻址相对寻址以以当前当前PC值值为基准地址,加上指令的偏为基准地

20、址,加上指令的偏移量移量“rel”,结果为目标地址。,结果为目标地址。rel为有符为有符号补码数,范围:号补码数,范围:-128+127一般为双字节或三字节指令一般为双字节或三字节指令Relative Addressing寻址指令寻址指令执行地址执行地址目标地址目标地址23例:例: SJMP relSJMP rel 操作:跳转到的操作:跳转到的目的地址目的地址 = = 当前当前1616位位PCPC值值 + + relrel注意注意:1 1)“当前当前PCPC值值”指程序中指程序中下一条指令所在的首地址下一条指令所在的首地址, 是一个是一个1616位数;位数;2 2)符符号号“rel”“rel”

21、表表示示“偏偏移移量量”,”,是是一一个个带带符符号号的的单单字字 节数节数, ,范围是范围是: :-128+127-128+127(80H7FH), (80H7FH), 在实际编程中,在实际编程中,“rel” “rel” 通常用标号代替通常用标号代替24JNZ rel例:例:; 累加器累加器A不等零则转移不等零则转移 设设:rel=23H2025H2002H2001H2000H ROM70H70H23H23H下一条指令下一条指令. . . . . . . .操作码操作码PCPCPC(PC)=2002Hrel=23H修正后转移修正后转移目标地址目标地址D(PC) = 2025HPCALU偏移量

22、偏移量(PC) = 2 0 0 2 HRel = 2 3 H)005202HD =252025H2112H2111H2110H ROMDFHDFHF2HF2H下一条指令下一条指令. . . . . . . .操作码操作码PCPCPC(PC)=2112Hrel=F2H修正后转移修正后转移目标地址目标地址 D(PC) = 2104HALU偏移量偏移量例:例:DJNZ R7,rel ;(;(R7) 1不为不为“0”则转则转PC2104H指指 令令(PC) = 2 1 1 2 HRel = F 2 H)FF4012HD =267 7、位寻址、位寻址寻址空间:寻址空间: 片内片内RAM的的20H2FH字

23、节地址字节地址位地址:位地址:00H7FH 共共128位位SFR中中12个能被个能被8整除的字节地址整除的字节地址 共共93位位Bit Addressing 以访问触发器的方式,对内部以访问触发器的方式,对内部RAM、SFR的的位地址空间位地址空间进行访问,称为位寻址。位地址进行访问,称为位寻址。位地址用于布尔指令。用于布尔指令。共共221位位27指令中直接给出了操作数所在的指令中直接给出了操作数所在的位地址位地址。例:例: CLR P1.0CLR P1.0 ;(P1.0) 0(P1.0) 0 SETB ACC.7SETB ACC.7 ;(ACC.7) 1(ACC.7) 1 CPL CCPL

24、C ;( C ) NOT( C )( C ) NOT( C )注意注意: 1 1)位地址里的数据只可能是位地址里的数据只可能是一个一个 0 0 或或 1 1 2 2)有的位地址十分明确有的位地址十分明确, ,如如 P1.0, ACC.7P1.0, ACC.7等等, , 有的位地址则有的位地址则“不太明确不太明确”,如:,如: MOV AMOV A,17H17H ; (A)(17H),17H ; (A)(17H),17H是是字节地址字节地址 MOV ACC.0MOV ACC.0,17H 17H ;(ACC.0)(;(ACC.0)(17H17H),),这里这里ACC.0ACC.0 是是位地址位地址

25、所以该指令中的所以该指令中的17H17H是是22H22H单元的第单元的第7 7位位28片内片内RAMRAM中有中有128128个位个位可可按位寻址的位,按位寻址的位,位地址:位地址:00H7FH00H7FH分布在:分布在:20H2FH20H2FH单元;单元;另外,在另外,在SFRSFR中还有中还有9292个位个位可按位寻址可按位寻址00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH52子系列才有子系列才有的的RAM区区普通普通RAM区区位寻址区位寻址区工作寄存器区工作寄存器区27H22H21H20H26H24H25H23H28H07 06 05 0

26、4 03 02 01 000F 0E 0D 0C 0B 0A 09 0817 16 15 14 13 12 11 101F 1E 1D 1C 1B 1A 19 1827 26 25 24 23 22 21 202F 2E 2D 2C 2B 2A 29 2837 36 35 34 33 32 31 303F 3E 3D 3C 3B 3A 39 3847 46 45 44 43 42 41 402FH7F 7E 7D 7C 7B 7A 79 78位地址位地址总共总共128个可个可按位按位寻址寻址的位的位单元地址单元地址17D7 D6 D5 D4 D3 D2 D1 D029寻址方式与相应的寻址空间寻

27、址方式与相应的寻址空间小结:小结:寄存器寄存器R0R7,A,BCY,DPTR片内片内内内RAM的低的低128字节字节特殊功能寄存器特殊功能寄存器SFR直接寻址直接寻址direct寄存器间址寄存器间址R0, R1, SP R0, R1 ,DPTR片内片内RAM、片外片外RAM与与I/O口口立即数立即数#data 程序存储器程序存储器程序存储器程序存储器基址加变址基址加变址A+DPTR,A+PC程序存储器程序存储器相对寻址相对寻址PC+rel位寻址位寻址片内片内RAM 20H2FH部分部分SFRbit利用的变量利用的变量 使用的空间使用的空间方方 式式30课堂练习课堂练习区分下列指令的不同功能:区分下列指令的不同功能: 1)MOV A 1)MOV A,#24H #24H 与与 MOV A MOV A,24H24H 2)MOV A 2)MOV A,R0 R0 与与MOV AMOV A,R0R0 3)MOV A 3)MOV A,R0 R0 与与 MOVX A MOVX A,R0R0 4)MOV A,90H 4)MOV A,90H 与与 MOV A,R0(R0=90H) MOV A,R0(R0=90H) 5)MOV A,2DH 5)MOV A,2DH 与与 MOV C,2DH MOV C,2DH31部分资料从网络收集整理而来,供大家参考,感谢您的关注!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号