No 3amp;4单片机指令系统及程序设计.ppt

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

第三、四讲 单片机指令系统及程序设计 基本概念 高级语言 汇编语言 机器语言 指令格式 特殊符号的含义: Rn(n=0~7)—当前选中的寄存器区的8个工作寄存器R0~R7 。 Ri(i=0,1)—当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1 direct—内部数据存储单元的8位地址。包含内部RAM低128B(00~7FH)和特殊功能寄存器80~FFH共256个单元地址。 ?#data—指令中的8位立即数。 ?#data16—指令中的16位立即数。 addr16—用于LCALL(长调用)和LJMP(长跳转)指令中的16位目的地址,目的地址的空间为64KB程序存储器地址。 addr11—用于ACALL(绝对调用)和AJMP(绝对转移)指令中的11位目的地址,目的地址必须放在与下条指令第一个字节同一个2KB程序存储器空间之中。 rel—8位带符号的偏移字节,用于所有的条件转移和SJMP等指令中,偏移字节对于下条指令的第一个字节开始的-128~+127范围内。 @ —间接寄存器寻址或基址寄存器的前缀。 / —为操作的前缀,声明对该位操作数取反。 DPTR —数据指针。 bit —内部RAM和特殊功能寄存器的直接寻址位。 A —累加器。 B —寄存器B,用于乘法和除法指令中。 C或CY —进位标志位。 (x) —某地址单元中的内容。 ((x)) —由X寻址单元中的内容。 寻址方式 [1].立即寻址 [2].直接寻址 [3].寄存器寻址 [4].寄存器间接寻址 [5].变址寻址 [6].相对寻址 [7].位寻址 [1].立即寻址 立即寻址就是把操作数直接在指令中给出,即操作数包含在指令中,指令操作码的后面紧跟着操作数,一般把指令中的操作数称为立即数,因此而得名。 立即数可以是8位或16位 为了与直接寻址方式相区别,在立即数前加上“#”符号 例如:??????MOV??A, #0EH ; (A)←0EH 这条指令的意义是将0EH这个操作数送到累加器A中。 [2].直接寻址 指令中直接给出操作数所在的存储器地址, 以供寻址取数或存数的寻址方式称为直接寻址。 例如:????????MOV??A, 68H ; (A)← (68H) 这条指令的意义是把内部RAM中的68H单元中的数据内容传送到累加器A中。 值得注意的是直接寻址方式只能使用8位二进制地址,因此这种寻址方式仅限于内部RAM进行寻址。 低128位单元在指令中直接以单元地址的形式给出。 对于特殊功能寄存器SFR只能用直接寻址方式访问 [3].寄存器寻址 寄存器寻址对选定的8个工作寄存器R0~R7以及A、B、DPTR进行操作,也就是操作数在寄存器中,因此指定了寄存器就得到了操作数,寄存器寻址的指令中以寄存器的符号来表示寄存器。 例如:???????MOV??A , R0 ; (A)←(R0) 这条指令的意义是把所用的工作寄存器组中的R0的内容送到累加器A中。 值得一提的是工作状态寄存器的选择是通过程序状态寄存器来控制的,在这条指令前,应通过PSW设定当前工作寄存器组。 [4].寄存器间接寻址 寄存器中存放的是操作数的地址,也即操作数是通过寄存器指向的地址单元得到的,这便是寄存器间接寻址名称的由来。 例如指令:?????MOV??A , @R0 ; (A)←((R0)) 这条指令的意义是R0寄存器指向地址单元中的内容送到累加器A中。 假如R0=#56H,那么是将56H单元中的数据送到累加器A中。 这里要强调的是: 寄存器的内容不是操作数本身, 而是操作数的地址。 寄存器间接寻址使用所选定寄存器区中的R0、R1或者DPTR作为地址指针, 来寻址片内数据存储器RAM(00~FFH)的256个单元, 但它不能访问特殊功能寄存器SFR。 例如: MOV R1, #80H ; (R1)←80H MOV A, @R1 ; (A)←(80H) 寄存器间接寻址也适用于访问外部数据存储器, 此时, 用R0、 R1或DPTR作为地址指针。 堆栈指针SP也可作为间接寻址寄存器 寄存器间接寻址用符号“@”指明。 [5].变址寻址 基址加变址寄存器间接寻址是以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,将两寄存器的内容相加形成操作数的16位的实际地址。 例如:????MOVC???A,@A+DPTR ???????? MOVC??A,@A+PC ???????? JMP???@A+DPTR 在这三条指令中,A作为偏移量寄存器,DPTR或PC作为变址寄存器,A作为无符号数与DPTR或PC的内容相加,得到访问的实际地址。其中前两条是程序存储器读指令,后一条是无条

文档评论(0)

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

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

1亿VIP精品文档

相关文档