版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 MCS-51指令系统 Instruction Set,2020年8月12日2时55分,51系列单片机指令集含有111条指令,每条指令在程序存储器ROM中占据一定的空间,以字节为单位。按指令所占字节数分类 : 单字节(49条) 双字节(46条) 3字节(16条),2020年8月12日2时55分,每条指令在执行时要花去一定的时间,以机器周期为单位。按指令执行时间分类: 单周期(64条) 双周期(45条) 4周期(2条),2020年8月12日2时55分,按指令的功能分类,可分为5大类: 数据传送类(29条) 算术运算类(24条) 逻辑运算及移位类(24条) 控制转移类(17条) 位操作类(1
2、7条),2020年8月12日2时55分,指令格式,标号:操作码 目的操作数 ,源操作数 ;注释 例:Loop: MOV R0, #50H ;(R0)=50H,方括符 表示可选项 标号代表指令所在地址,1-8个字母/数字,“:”结尾 操作码就是指令功能助记符,指令实体 目的操作数 源操作数 注释,以“;”开头,2020年8月12日2时55分,常用符号,Rn:工作寄存器中的寄存器R0、R1R7之一,,Ri:工作寄存器中的寄存器R0或R1,#data:8位立即数,#data16:16位立即数,direct:片内RAM或SFR的地址(8位),Ri:间接寻址寄存器,bit:片内RAM或SFR的位地址,a
3、ddr11:11位目的地址,addr16:16位目的地址,2020年8月12日2时55分,rel: 补码形式的8位地址偏移量。 偏移范围为-128127 /bit:位操作指令中,该位求反后参与操作,不影响该位 X:片内RAM的直接地址或寄存器 (X):X中的内容 (X):由X所指指出的单元中的内容 :箭头左边的内容送入箭头右边的单元内,2020年8月12日2时55分,寄存器寻址 立即寻址 寄存器间接寻址 直接寻址 变址寻址(基址寄存器+变址寄存器间接寻址) 相对寻址 位寻址,寻址方式:指令按地址获得操作数的方式 七种寻址方式,一条指令可能含多种寻址方式,3.2 寻址方式,2020年8月12日2
4、时55分,一、 立即寻址 Immediate Addressing,操作数就包含在指令代码中,称为立即数,用“”表示。 MCS-51 如:MOV P1, #80H MOV R7, #0F5H MOV DPTR,#1245H,操作数存在程序存储器中,2020年8月12日2时55分,二、 直接寻址 Direct Addressing 直接使用数所在单元的地址找到了操作数,所以称 这种方法为直接寻址。 操作数在SFR、内部RAM、位地址空间。 如: MOV A,00H MOV C,60H MOV A,0F0H,2020年8月12日2时55分,三、 寄存器寻址 Register Addressing,
5、对选定的工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR中的数进行操作。 例:MOV A,R0;将R0工作寄存器中的数据送到累加器A中去。,2020年8月12日2时55分,四、 寄存器间接寻址 Register Indirect Addressing,把地址放在另外一个寄存器中,根据这个寄存器中的数值决定该到哪个单元中取数据。 R0,R1-8位地址,片内低128字节或片外 DPTR-16位,片外64KB MCS-51 如:MOV A,R0 MOVX A,R0 MOVX A,DPTR,操作数在片内RAM中,操作数在片外RAM中,操作数在片外RAM中,2020年8月12日2时55分,
6、在51单片机中访问特殊功能寄存器SFR只能采用直接寻址方式的原因:SFR分布在80H0FFH范围内,而52系列单片机有256字节的片内RAM,其中的80H0FFH的RAM与SFR所占地址重叠。,MOV A, 90H 等效于 MOV A, P1 属直接寻址 MOV A, R0 ;事先已知 (R0) = 90H 执行的操作:A (90H) 属寄存器间接寻址, 随意写的指令如:MOV A, 85H 则是非法的!,于是规定: 80H0FFH范围内的RAM只能用寄存器间接寻址方式,而SFR只能用直接寻址方式。从而解决了地址冲突的问题。例如:,2020年8月12日2时55分,存储器配置(片内RAM),51
7、片内RAM 128字节(00H7FH) 89C52片内RAM 256字节(00H0FFH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM区,普通RAM区,位寻址区,工作寄存器区,SFR分布在80H-FFH 其中92个位可位寻址,80H,FFH,89C51 128字节,89C52 256字节,只能直接寻址,只能寄存器间接寻址,2020年8月12日2时55分,以DPTR或PC为基址寄存器,累加器A为变址寄存器。把两者内容相加,结果作为操作数的地址。 常用于查表操作。 MCS-51 MOVC A, A+DPTR ;(A+DPTR) A MOVC A, A+
8、PC; PC+1 PC, (A+PC)A,五、 变址寻址(基址+变址),Base-Register-plus-Index-Register-Indirect Addressing,2020年8月12日2时55分,如:MOVC A,A+DPTR 设DPTR=2000H,A=E0H,20E0H,47,2020年8月12日2时55分,六、 相对寻址,Relative Addressing,当前PC值加上指令中规定的偏移量 rel,构成实际的操作数地址 例: SJMP rel 操作:跳转到的目的地址 = 当前16位PC值 + rel,2020年8月12日2时55分,注意: 1)“当前PC值”指程序中下
9、一条指令所在的首地址, 是一个16位数; 2)符号“rel”表示“偏移量”,是一个带符号的单字 节数,范围是:-128+127(80H7FH),在实际编程中,“rel” 通常用标号代替,2020年8月12日2时55分,如:JC 23H,1025H,23H,1002H,当前PC,2020年8月12日2时55分,对片内RAM的位寻址区和某些可位寻址的特殊功能寄存器进行位操作时的寻址方式。 如: SETB 3DH; 将27H.5位置1 CLR C ;Cy位清0,七 位寻址 Bit Addressing,操作数在片内RAM位地址区或SFR某些位中,2020年8月12日2时55分,寻址方式涉及的存储器空
10、间,2020年8月12日2时55分,3.3 数据传送类指令(29条) Data Transfer Instruction,2020年8月12日2时55分,MCS-51 助记符: 助记符: MOV、MOVX、MOVC XCH、XCHD、SWAP PUSH、POP 源操作数寻址方式(5种): 立即寻址、直接寻址、寄存器寻址、 寄存器间接寻址、变址寻址。 目的操作数寻址方式(3种): 直接寻址、寄存器寻址、寄存器间接寻址; 除了目的操作数为ACC的指令影响奇偶标志P外, 一般不影响标志位。,2020年8月12日2时55分,Acc 累加器,Direct 直接寻址,Ri 间接寻址,Rn 寄存器,#dat
11、a 立即数,Rn: R0R7 Ri: R0,R1 #data:8位立即数 #data16:16位立即数 direct:直接地址 rel: 8位带符号偏移量,内部存储器间传送指令 (16条): MOV 类指令的操作方向总是后面的操作数 指向前面的操作数! 例:MOV A,30H (A)(30H),2020年8月12日2时55分,MOV A, R0 MOV A, direct MOV A, Ri MOV A, data 这组指令的功能是:把源操作数的内容送入累加器A。 例如: MOV A, 10H; 该指令执行时将立即数 10H送入累加器A中。,1. 数据传送到累加器A的指令(4条),2020年8
12、月12日2时55分,2. 数据传送到工作寄存器Rn的指令(3条) MOV Rn, A MOV Rn, direct MOV Rn, data,2020年8月12日2时55分,这组指令的功能是: 把源操作数的内容送入当前工作寄存器区的R0R7中的某一个寄存器。指令中Rn在内部数据存储器中的地址由当前的工作寄存器区选择位RS1、RS0 确定, 可以是 00H07H、08H0FH、10H17H、18H1FH。 例如: MOV R0, A, 若当前RS1、RS0 设置为 00 (即工作寄存器 0 区), 执行该指令时,将累加器A中的数据传送至工作寄存器R0(内部RAM 00H)单元中。,2020年8月
13、12日2时55分,3. 数据传送到内部RAM单元或特殊功能寄存器SFR的指令 (8条) MOV direct, A MOV direct, Rn MOV direct, direct MOV direct, Ri MOV direct, data MOV Ri, A MOV Ri, direct MOV Ri, data,2020年8月12日2时55分,这组指令的功能是:把源操作数的内容送入内部RAM单元或特殊功能寄存器。其中第三条指令和第五条指令都是三字节指令。第三条指令的功能很强, 能实现内部RAM之间、特殊功能寄存器之间或特殊功能寄存器与内部RAM之间的直接数据传送。,2020年8月12
14、日2时55分,4、 十六位数的传递指令(1条),MOV DPTR,#data16 8051是一种8位机,这是唯一的一条16位立即数传递指令。功能:将一个16位的立即数送入DPTR中去。其中高8位送入DPH,低8位送入DPL。,2020年8月12日2时55分,例:MOV DPTR,#1234H执行完了之后DPH中的值为12H,DPL中的值为34H。如果我们分别向DPH,DPL送数,则结果也一样。 如下面两条指令: MOV DPH,#35H MOV DPL,#12H。 则就相当于执行了 MOV DPTR,#3512H。,2020年8月12日2时55分,5、 累加器A与片外RAM之间的数据传递类指令
15、(4条),MOVX A,Ri MOVX Ri,A MOVX A,DPTR MOVX DPTR,A,2020年8月12日2时55分,说明: 1.在51中,与外部存储器RAM打交道的只可以是A累加器。所有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外部RAM中的数据也必需通过A读入。 在此我们可以看出内外部RAM的区别了,内部RAM间可以直接进行数据的传递,而外部则不行。 比如,要将外部RAM中某一单元(设为0100H单元的数据)送入另一个单元(设为0200H单元),也必须先将0100H单元中的内容读入A,然后再送到0200H单元中去。,2020年8月12日2时55分,2.要读或写外部
16、的RAM,当然也必须要知道RAM的地址,在后两条指令中,地址是被直接放在DPTR中的。而前两条指令,由于Ri(即R0或R1)只是8位的寄存器,所以只提供低8位地址。高8位地址由P2口来提供。 3.使用时应先将要读或写的地址送入DPTR或Ri中,然后再用读写命令。,2020年8月12日2时55分,例:将外部RAM中100H单元中的内容送入外部RAM中200H单元中。 MOV DPTR,#0100H MOVX A,DPTR MOV DPTR,#0200H MOVX DPTR,A,2020年8月12日2时55分,6、 读程序存储器指令(2条),MOVC A,A+DPTR MOVC A,A+PC 本组
17、指令是将ROM中的数送入A中。本组指令也被称为查表指令,常用此指令来查一个已做好在ROM中的表格 说明:查找到的结果被放在A中,因此,本条指令执行前后,A中的值不一定相同。,2020年8月12日2时55分,例:有一个数在R0中,要求用查表的方法确定它的平方值(此 数的取值范围是0-5) MOV DPTR,#0100H MOV A,R0 MOVC A,A+DPTR . ORG 0100H DB 0,1,4,9,16,25,如果R0中的值为2,则最终地址为0100H+2为0102H,到0102H单元中找到的是4。,2020年8月12日2时55分,1.给出依次执行每条指令后的结果,MOV 23H,#
18、30H MOV 12H,#34H MOV R0,#23H MOV R7,12H MOV R1,#12H MOV A,R0 MOV 34H,R1 MOV 45H,34H MOV DPTR,#6712H MOV 12H,DPH MOV R0,DPL MOV A,R0,;(23H)=30H ;(12H)=34H ;(R0)=23H,;(R7)=34H ;(R1)=12H ;(A)=30H,;(34H)=34H ;(45H)=34H ;(DPTR)=6712H,;(12H)=67H ;(R0)=12H ;(A)=67H,内部RAM,2020年8月12日2时55分,2、在8051单片机片内RAM中,已知
19、(30H)38H,(38H)40H,(40H)48H,(48H)90H,请分析依次执行下面指令的结果。 MOVA,40H MOVR0,A MOVP1,0F0H MOVR0,30H MOVDPTR,3848H MOV40H,38H MOVR0,30H MOV90H,R0 MOV18H,30H MOVA,R0 MOVP2,P1,; (A)=48H ; (R0)=48H ; (P1)=0F0H ; (48H)=38H ; (DPTR)=3848H ; (40H)=40H ; (R0)=38H ; (90H)=38H ; (18H)=30H ; (A)=40H ; (P2)=0F0H,2020年8月1
20、2日2时55分,3、请用数据传送指令来实现下列要求的数据传送。 (1)把R0的内容送到R1 (2)内部RAM20H单元的内容传送到A中。 (3)外部RAM2000H单元的内容送到R0。 (4)外部ROM1000H单元的内容送内部RAM20H单元。,2020年8月12日2时55分,7、 堆栈操作(2条),PUSH direct ;SPSP+1,(SP)(direct) POP direct ; (direct) (SP), SPSP-1 第一条为压入指令,就是将direct中的内容送入堆栈中,第二条为弹出指令,就是将堆栈中的内容送回到direct中。,2020年8月12日2时55分,例: MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年贵州省仁怀市高一化学上册期末考试模拟考试卷附答案【预热题】
- 2026年江苏省东台市高三生物上册期末考试考试卷含答案
- 2026年陕西省韩城市高一化学上册期末考试试卷【模拟题】附答案
- 2026年河南省辉县市高三生物上册期末考试自测卷及参考答案
- 2026年江西省共青城市高三生物上册期末考试模拟测试卷带答案
- 六年级数学下册 第1课时 成正比例的量
- 2026年度海外留学项目合作协议书
- 2025年法官逐级遴选考试题及答案
- 基于条码技术的南都电源产品全生命周期精准跟踪管理系统构建与实践
- 基于机器视觉的测距与定位技术:原理、应用与展望
- 2025年派出所民警个人年度工作小结(全文)
- 海康威视iVMS-8700智能建筑综合管理平台 软件技术白皮书
- 首届全国行业职业技能竞赛(电力交易员)大赛考试题(附答案)
- 水上桩施工安全教育培训课件
- 影像科院感知识培训课件
- 2025年国家基本公共卫生服务项目培训试题(附答案)
- 医务人员仪容仪表及行为规范
- 2025年贵州茅台酒股份限公司和义兴酒业分公司维修工招聘10人高频重点提升(共500题)附带答案详解
- 高中常用成语积累800个
- 《常见药物不良反应》课件
- 公司与个人合作协议范本新
评论
0/150
提交评论