网站大量收购独家精品文档,联系QQ:2885784924

[工学]第4章 80C51单片机指令系统.ppt

  1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第4章 80C51单片机指令系统

第4章 80C51单片机指令系统 4.1 单片机指令系统概述 指令形式 机器语言也称机器码,由“0”和“1”组成,即二进制码。 汇编语言就是用容易记忆的缩写符号表示机器语言指令。 汇编语言程序由伪指令或汇编语言指令组成 伪指令指示汇编程序如何将汇编语言指令转换成机器代码。 指令概述 [标号:]操作码 操作数1,操作数2[;注释] 换行表示一条指令结束。 例: LOOP: MOV A,#40H ;取参数 [标号:]操作码 操作数1 ,操作数2 [;注释] 换行表示一条指令结束。 例: LOOP: MOV A,#40H ;取参数 操作码 [操作数1] [操作数2] 例如 4.2 80C51单片机指令寻址方式 一、寻址方式(找信方式) 寻址比较 位寻址地址表 4.2.1 立即寻址 操作数在指令中,在操作码后面。用“#”表示。 操作数可以是8位的,也可以是16位的。 4.2.2 直接寻址 直接寻址:在指令中直接给出操作数所在存储单元的地址。指令中操作数部分是操作数所在地址。 直接寻址方式可访问片内RAM的128个单元以及所有的SFR。对于SFR,既可以使用它们的地址,也可以使用它们的名字。 4.2.3 寄存器寻址 操作数在某一个寄存器中。 所用的寄存器可以是:R0~R7、A、B、DPTR等。 4.2.4 寄存器间接寻址 指令中寄存器中的内容给出的是操作数的地址。 80C51规定:R0、R1和DPTR可以作为间接寻址寄存器。 例如:将片内RAM 30H单元内容56H送A,可执行指令“MOV A,@R0”。其中R0内容为30H。如图所示: 2、DPTR间址访问片外RAM的64KB空间 如:设(DPTR)=2000H MOVX @DPTR,A ;A?外RAM的2000H单元 MOVX A,@DPTR ;外RAM的2000H单元? A 4.2.5 变址寻址 变址寻址:以某个寄存器的内容为基地址,在这个基地址的基础上加上地址偏移量形成真正的操作数地址。 80C51中采用DPTR或PC为变址寄存器,A的内容为地址偏移量。 变址寻址只能访问程序存储器,访问范围64KB。 例如:MOVC A,@A+DPTR;((A)+(DPTR))→A 如图所示 4.2.6 相对寻址 相对寻址:是以当前的PC值加上指令中规定的偏移量rel而形成实际的转移地址。 相对寻址只出现在相对转移指令中。 当前的PC值是指执行完相对指令后的PC值;相对转移指令操作码所在地址称为源地址;转移后的地址称为目的地址。 目的地址=源地址+相对转移指令字节数+rel rel为补码表示的有符号数。 例如: SJMP 54H;PC←PC+2+54H 4.2.7 位寻址 位寻址:采用位寻址方式的指令的操作数是8位二进制数中的某一位,指令中给出的是位地址。位地址在指令中用bit表示。 例如:CLR bit MOV ACC.0,11H ;ACC.0←(11H) 位地址的两种表示方法: 直接使用位地址,如D3H; 直接用寄存器名字加位数,如PSW.3。 位寻址区域: 片内RAM的20H-2FH的16个单元中的128位; 字节地址能被8整除的SFR。 操作数寻址方式和有关空间 4.3 80C51单片机指令分类介绍 指令系统 MCS-51的指令 1 数据传送指令(29条)??? 2 算术运算指令(24条) 3 逻辑运算指令(24条) 4 控制转移指令(17条) 5 位操作指令(17条) 6 常用伪指令(17条) 1 数据传送指令(29条) ——8位数据传送指令(15条) 1 数据传送指令(29条) ——16位数据传送指令(1条) 4.3.1 数据传送指令 MOV R0,#70H ;(R0)=70H MOV A,@R0 ;(A)=60H MOV R1,A ;(R1)=60H MOV A,@R1 ;(A)=30H MOV @R0,P1 ;(70H)=7BH MOV 60H,#40H ;(60H)=40H 例4.2 试编写一程序段,实现将内部RAM?中30H单元中的内容传送到外部RAM 3000H单元中。 ???解: MOV? A,30H MOV? DPTR,#3000H ??????????? MOVX? @DPTR,A? ——交换和查表类指令(9条) 2算术运算类指令(24条) ——加法指令(8条) ——加1减1

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档