- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 MCS-51 的指令系统与汇编语言程序设计
3.1 MCS-51单片机指令系统概述 1.指令的概念 指令是由CPU解释执行,用于控制功能部件完成某种指定操作的命令。 由于CPU只能识别二进制数,所以计算机的指令均由二进制代码组成,通常把这样的指令称为机器指令。 一般的计算机都有几十甚至上百条机器指令,这些指令就构成了计算机的指令系统。不同类型的CPU具有不同的指令系统。 2.指令系统说明 MCS-51的基本指令共111条: 每条指令在程序存储器ROM中占据一定的空间,以字节为单位。 按指令所占的字节来分: (1) 单字节指令49条; (2) 双字节指令45条; (3) 三字节指令17条。 标号:操作码 操作数;注释 ⑴ 标号:指令的符号地址。 用于一段功能程序的识别标记或控制转移地址。指令前的标号代表该指令的地址,是用符号表示的地址。一般用英文字母和数字组成。标号必须用冒号“ :”与操作码分隔。⑵ 操作码:表示指令的操作功能。 操作码用助记符表示,它代表了指令的操作功能。 操作码是指令的必需部分,是指令的核心,不可缺少。 ⑶ 操作数:参加操作的数据或数据地址。 ⑤ 操作数与操作码之间用空格分隔,操作数与 操作数之间用逗号“,”分隔。 3.2 指令系统的寻址方式 寻址方式就是在指令中说明操作数所在地址的方法。 共7种寻址方式。 1.立即寻址方式 指令的操作数是要参与运算的数,所以又叫立即数,用“#”号表示。立即数就是存放在程序存储器中的常数。 例如:ADD A,#34H 把立即数34H与累加器A中内容相加,结果送A中。在MCS-51的指令系统中,仅有一条指令的操作数是16位的立即数,其功能是向地址指针 DPTR传送16位的地址,即把立即数的高8位送入DPH,低8位送入DPL。 例如:MOV DPTR,#3FA6H 表示把16位二进制表示的地址送给DPTR寄存器。 2.直接寻址方式 直接寻址方式是指操作数给出的是参与运算的数的地址。在MCS-51单片机中,直接地址只能用来表示特殊功能寄存器、内部数据存储器以及位地址空间。其中,特殊功能寄存器和位地址空间只能用直接寻址方式来访问。 例如:MOV A,3AH 表示把内部RAM的3AH单元的内容传送到A。 寻址范围: (1) 内部RAM的128个单元 (2) 特殊功能寄存器。除了以单元地址的形式外,还可用寄存器符号的形式给出。例如: MOV A,80H 与 MOV A,P0是等价的。 4. 寄存器间接寻址方式 寄存器中存放的是操作数的地址,在寄存器前加前缀标志“@” 。 访问内部RAM或外部RAM的低256个字节时,只能采用R0或R1作为间址寄存器。例如: MOV A,@Ri ;i=0或1 其中Ri中的内容为40H,把内部RAM40H单元内容送A。 寻址范围: (1)访问内部RAM低128个单元,其通用形式为@Ri (2)对外部内部RAM的64K字节的间接寻址,例如: MOVX A,@DPTR (3)片外数据存储器的低256字节 例如:MOVX A,@Ri (4)堆栈区 堆栈操作指令PUSH(压栈)和POP(出栈)使用堆栈指针(SP)作间址寄存器 5.基址寄存器加变址寄存器间址寻址方式 以16位寄存器DPTR(或PC)作为基址寄存器,累加器作为变址寄存器。变址时,把两者的内容相加,得到的结果作为操作数的地址。这种方式常用于查表操作。 例如: 1)以程序计数器当前值为基址 格式:MOVC A,@A+PC 2)以数据指针DPTR为基址 格式:MOVC A,@A+DPTR 如:其中A的原有内容为05H,DPTR的内容为0400H,该指令执行的结果是把程序存储器0405H单元的内容传送给A。 说明: (1)本寻址方式是专门针对程序存储器的寻址方式,寻址范围可达到64KB。 (2)本寻址方式的指令只有3条: MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR 6.相对寻址方式 在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,即把PC的当前值加上偏移量就构成了程序转移的目的地址: 目的地址=转移指令所在的地址 + 转移指令的字节数 + rel 偏移量rel是一带符号的8位二进制数补码数。 范围是:–128 ~+127 向地址增加方向
您可能关注的文档
最近下载
- L1基础自动化系统的铁区MES的实现.docx VIP
- 2025年山东普通高中学业水平等级考试生物真题及答案 - 副本 .pdf VIP
- PEMS相关模板(PEMS软件开发计划或开发生命周期&可编程医用电气系统(PEMS)检查文件清单).pdf VIP
- 旅游接待业 课件全套 第1--10章 旅游接待业导论---旅游接待业高质量发展.pptx
- 运维服务项目实施组织及管理措施.docx VIP
- 柔性器件材料与结构失效分析.pptx VIP
- IPC-9850中文版.doc
- 2025年四川自贡市中考英语试卷含答案.docx VIP
- 2019年国庆70周年阅兵装备解读报告.pptx
- 2024人教版PEP英语三年级上册全册教学设计教案含反思.pdf
文档评论(0)