[信息与通信]单片机_31.ppt

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

第三章 单片机汇编程序设计 羊大立 E-mail: 309747726@ yangdali @ 内容目录 §3.1 概述 §3.2 寻址方式 §3.3 指令系统 §3.4 汇编程序设计 §3.1 概述 一、基本概念 二、51单片机指令分类 三、51指令格式 四、描述51指令的常用符号 一、基本概念 指令:是CPU根据人的意图来执行某种操作的命令。 指令系统:一台计算机所能执行的全部指令的集合。 汇编语言:采用助记符表示的指令。 汇编语言程序:使用汇编语言指令编写的程序称为汇编语言程序。 二、51单片机指令分类 7种寻址方式,111条指令 二、51单片机指令分类 按功能分: 三、51指令格式 51汇编语言指令由操作码和操作数两部分组成。 汇编语言指令基本格式: 三、51指令格式 机器语言指令存储格式 双字节指令格式: 三字节指令格式: 四、描述51指令的常用符号 Rn:工作寄存器中的寄存器R0、R1…R7之一 Ri:工作寄存器中的寄存器R0或R1 #data:8位立即数 #data16:16位立即数 direct:片内RAM或SFR的地址(8位) @:表示间接寻址的符号 四、描述51指令的常用符号 bit:片内RAM或SFR的位地址 addr11:11位目的地址 addr16:16位目的地址 rel: 补码形式的8位地址偏移量。 偏移范围为-128~127 / :位操作指令中,该位求反后参与操作,不影响该位 四、描述51指令的常用符号 X:片内RAM的直接地址或寄存器 (X):相应地址单元中的内容 ((X)):由X间接寻址的单元的内容,即X指向的地址单元中的内容。 →:箭头左边的内容送入箭头右边的单元内 §3.2 寻址方式 一、基本概念 二、立即寻址 三、直接寻址 四、寄存器寻址 五、寄存器间接寻址 六、变址寻址 (基址+变址) 七、相对寻址 八、位寻址 一、基本概念 寻址:就是寻找指令中操作数或操作数所在地址。 寻址方式:就是寻找操作数或者是操作数地址的方法。 51单片机寻址方式共有7种:寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。 二、立即寻址 操作数就包含在指令代码中,在操作码之后,称为立即数。在指令中,用操作数前加“#”前缀表示。 如: MOV P1, #80H MOV R7, #0F5H MOV DPTR,#1245H 三、直接寻址 直接使用操作数所在单元的地址在指令中表示操作数。地址前不加任何符号。 操作数在SFR、内部RAM、位地址空间。 如: MOV A,00H MOV C,60H MOV A,0F0H 四、寄存器寻址 操作数在下列寄存器中:累加器A、通用寄存器B、工作寄存器R0~R7、地址寄存器DPTR。 在指令中直接用寄存器名表示该操作数。 例: MOV A,R0 (将R0寄存器中的数送到累加器A中去) 一点说明 问题:我们知道,工作寄存器就是内存单元的一部分,如果我们选择工作寄存器组0,则R0就是RAM的00H单元,那么这样一来,MOV A,00H 和 MOV A,R0不就没什么区别了吗? 一点说明 说明:这两条指令执行的结果是完全相同的,都是将00H单元中的内容送到A中去,但是执行的效率不同: 执行MOV A,00H指令需要2个机器周期,目标码要2个字节(E5H 00H); MOV A,R0指令则只需要1个机器周期,目标码只要1个字节(E8H)就可以了。 五、寄存器间接寻址 操作数在单元中,其地址放在另一个寄存器中,在指令中用该寄存器加“@”前缀来表示这个操作数。 能用于此方式的寄存器只有3个: R0,R1 8位地址,片内或片外低256字节 DPTR 16位,片外64KB 如: MOV A,@R0 MOVX A,@R0 MOVX A,@DPTR 六、变址寻址 (基址+变址) 以DPTR或PC为基址寄存器,累加器A为变址寄存器。把两者内容相加,结果作为操作数的地址。指令中加“@”前缀。 常用于查表操作。例: MOVC A,@A+DPTR ;(A+DPTR) →A MOVC A,@A+PC ;PC+1 →PC,(A+PC)→A 如:MOVC A,@A+DPTR

文档评论(0)

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

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

1亿VIP精品文档

相关文档