- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 51单片机的指令系统 本讲重点: 寻址方式 MCS-51指令集 数据传送与交换指令 算术运算和逻辑运算指令 控制转移指令 位操作指令 MCS-51的指令系统 51系列单片机指令集含有111条指令 每条指令在程序存储器ROM中占据一定的空间,以字节为单位。按指令所占字节数分类: 单字节(49条);双字节(46条);3字节(16条) 每条指令在执行时要花去一定的时间,以机器周期为单位。按指令执行时间分类: 单周期(64条);双周期(45条);4周期(2条) 按指令的功能分类,可分为4大类: 数据传送与交换(29条); 算术运算和逻辑运算(48条); 控制转移(17条); 位操作(17条); MCS-51型单片机指令时序图 MCS-51的指令系统 特点: 具有存储效率高、执行速度快的特点 指令系统具有简明、整齐、易于掌握的特点 对位地址空间有丰富的位操作指令,形成一个相当完整的位操作指令子集 MCS-51的指令系统 指令的格式: [标号:]操作码 [目的操作数][,源操作数][;注释] 方括符[ ]:表示可选项 标号:代表指令所在地址,1-6个字符/数字,第一个字符必须是英文字母,与指令的操作码之间用“:”分开 操作码:就是指令功能助记符,指令实体 操作数:指明该指令的操作对象,而目的操作数是用来存放结果的 注:共有三种类型的操作数:立即数操作数(只可作为源操作数)、寄存器操作数、存储器操作数 注释,以“;”开头 MCS-51指令中的符号 Rn:当前工作寄存器组中的R0~R7(其中n=0,1,2,…7) Ri:当前工作寄存器组中的R0、R1 (其中i=0,1) dir:8位直接字节地址(片内RAM和SFR地址) #data:8位立即数 #data16:16位立即数 addr16:16位地址值 addr11:11位地址值 bit:位地址(在位地址空间中) rel:相对偏移量(在相对转移指令中使用,为1字节补码) ( ):用于注释中表示存储单元的内容 $: 表示当前指令的地址。 51单片机指令的寻址方式 寻址就是寻找操作数的地址。 寻址方式就是如何确定操作数所在的地址,并把它们提取出来的方法。 七种寻址方式,一条指令可能含多种寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址(基址寄存器+变址寄存器间接寻址) 位寻址 相对寻址 立即寻址 操作数直接就出现在指令中、可立即参与指令所规定的操作,例: MOV A,#64H ;(A)← 立即数64H MOV DPTR,#385FH ;(DPTR)← 立即数385FH 说明: 符号“#”表明其后跟的是立即数 立即数就是数字量本身 由于立即数是一个常数,不是物理空间,故立即数在寻址操作中只能作为源操作数 指令中的立即数可以是8位立即数#data8和16位立即数#data16 访问的存储空间为 ROM 。 直接寻址 指令中直接给出操作数所在单元的地址或名称 ,以供寻址取数或存放的寻址方式 例:MOV R1,1FH ;(R1) ←(1FH) MOV 30H,4AH ;(30H)←(4AH) 说明: 访问的存储空间为内部数据存储器及特殊功能寄存器。 内部数据存储器在指令中直接以地址表示 特殊功能寄存器在指令中既可用地址也可用寄存器名表示 直接寻址方式是访问特殊功能寄存器SFR的惟一方式 寄存器寻址 从寄存器中读取操作数或存放操作数进寄存器 例:MOV A,B ;(A) ←(B) MOV 30H,R7 ;(30H)←(R7) MOV R3,A ;(R3) ←(A) INC DPTR ;DPTR寄存器内容加1 说明: 寻址范围:通用寄存器Rn(n=0,1,…7)、A、B、DPTR B寄存器仅在乘、除法指令中为寄存器寻址,在其它指令中为直接寻址 问题:工作寄存器是内存单元的一部分,如果我们选择工作寄存器组0,则R0就是RAM的00H单元,那么这样一来,MOV A,00H(直接寻址) 和 MOV A,R0(寄存器寻址)有什么区别? 答案: 上述两条指令执行的结果是完全相同的,但执行指令的过程不同。执行指令MOV A,00H需要2个机器周期,而执行指令MOV A,R0则只需要1个机器周期。此外,第一条指令变成最终的目标码需要两个字节(E5H,00H),而第二条指令变成最终目标码只需要一个字节(E8H)。 单片机指令功能表 寄存器间接寻址 寄存器中的内容是一个地址,由该地址单元寻址到所需的操作数 例:MOV R1,#30H ;(R1)← 立即数30H MOV A,@R1 ;片内RAM 30H单元的内容送至A MOVX A, @R1 ;片外RAM
您可能关注的文档
最近下载
- 诸侯纷争与变法运动【课件】.pptx VIP
- 中国高血压防治指南(2024年修订版)_中国高血压防治指南修订委员会__.pdf VIP
- “扬子石化杯”2024年第38届中国化学奥林匹克(江苏赛区)初赛化学.pdf VIP
- 民事诉讼法中案外第三人对执行的异议之诉.pdf VIP
- 车险承保方案.pdf VIP
- “扬子石化杯”2024年第38届中国化学奥林匹克(江苏赛区)初赛化学试卷含答案.pdf VIP
- 临海市城市生活垃圾焚烧发电厂扩建工程环境影响报告.pdf
- 2025内蒙古鄂尔多斯市公安机关招聘留置看护警务辅助人员115人笔试参考题库附答案解析.docx VIP
- 模电教案-李国丽.doc
- 2023版中国结直肠癌及癌前病变内镜诊治共识PPT课件.pptx VIP
文档评论(0)