第2章+指令系统及汇编语言程序设计.ppt

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

2 指令系统及汇编语言程序设计 教学目的 熟悉单片机的寻址方式 掌握指令系统中的常用指令的用法 了解汇编语言伪指令及其用法 熟悉汇编语言程序的三种基本结构 本章内容 寻址方式 指令系统 汇编语言指令格式 汇编语言程序设计概述 2.1 寻址方式 指令的机器代码由操作码和操作数组成。其中操作码规定了指令的性质和功能,操作数说明参与操作的数据或该数据所存放的地址。 AT89系列单片机指令系统的寻址方式有7种,寄存器寻址、直接寻址、立即寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。 寻址方式 寄存器寻址 寄存器寻址方式以指令中给出的某一寄存器的内容作为操作数。可以实现寄存器寻址操作的寄存器包括寄存器组R0~R7,累加器ACC,寄存器B,数据指针DPTR和进位Cy等。 直接寻址 直接寻址方式在指令中直接给出操作数所在存储单元的地址,该地址指出了参与运算或传送的数据所在的字节单元或位的地址。直接寻址方式中操作数存储的空间有以下3种: 特殊功能寄存器SFR; 片内RAM的低128B(00H~7FH); 位地址空间。 寻址方式 立即寻址 立即寻址方式在指令中直接给出参与操作的常数,操作码后面紧跟1个或2个字节的操作数(称为立即数)。立即寻址时操作数存放于程序存储器中,不占用内部RAM单元。在采用立即寻址的指令中立即数前面必须加上“#”号标识,可以是一个8位或16位的二进制常数,也可以用十进制或十六进制表示。 寄存器间接寻址 寄存器间接寻址方式以指令中指定寄存器的内容作为地址,而该地址单元的内容才是操作数。这是一种二次寻址方式,所以称为寄存器间接寻址。程序执行分两步完成:首先根据指令得到寄存器的内容,即操作数的地址;然后根据地址找到所需要的操作数,并完成相应的操作。 变址寻址(基址寄存器+变址寄存器间接寻址) 变址寻址指令由基址寄存器和变址寄存器组成,16位寄存器DPTR(数据指针)或PC(程序计数器)作为基址寄存器,8位累加器A作为变址寄存器。 相对寻址 相对寻址主要是针对跳转指令而言的。对于跳转指令,转去的目标指令的地址是通过正在执行的指令地址来确定的,即以当前程序计数器PC值为基准,加上指令中给定的偏移量rel所得结果而形成实际的转移地址。 位寻址 AT89C52片内RAM有两个区域可以进行位寻址:一是20H~2FH的16个单元共128位的位地址;二是字节地址为8的倍数的12个特殊功能寄存器,共92个位地址。 AT89C52单片机的寻址方式多种,总的来说有以下几个原则: 对程序存储器只能采用立即寻址和变址寻址方式; 对特殊功能寄存器空间只能采用直接寻址方式,不能采用寄存器间接寻址方式; 内部数据存储器高128B只能采用寄存器间接寻址方式,不能采用直接寻址方式; 内部数据存储器低128B既能采用寄存器间接寻址方式,又能采用直接寻址方式; 外部扩展数据存储器只能采用MOVX指令访问。 2.2 指令系统 数据传送指令(29条) 算术运算指令(24条) 逻辑运算指令(24条) 位操作类指令(17条) 控制转移类指令(17条) 数据传送指令 数据传送指令操作可以在累加器A、工作寄存器R0~R7、内部数据存储器、外部数据存储器和程序存储器之间进行。 数据传送指令 以累加器A为目的操作数的指令,MOV(Move) 以寄存器Rn为目的操作数的指令 以直接地址为目的操作数的指令 以间接地址为目的操作数的指令 16位数据传送指令 查表指令,MOVC(Move Code) 累加器A与片外RAM数据传送指令,MOVX(Move External RAM) 堆栈操作指令,PUSH,POP 数据交换指令,XCH(Exchange),XCHD(Exchange Low-order Digit),SWAP 数据传送指令 例2.5 共阴极数码管对应的显示代码程序。 ORG 0000H MOV A,30H ;PC=0000,双字节指令 MOV A,#80H ;PC=0002,双字节指令 MOVC A,@A+PC ;PC=0004,双字节指令 ;PC=0006 ┇ 0RG 0086H SEGTAB: DB 3FH,06H,5BH,4FH,66H;对应于字符0,l,2,3,4 DB 6DH,7DH,07H,7FH,67H;对应于字符5,6,7,8,9 算术运算指令 算术运算指令包括加、减、乘、除基本四则运算和加1(增量)、减1(减量)运算。除加1和减1指令外,算术运算指令影响进位Cy、半进位Ac、溢出位Ov三个标志位。 1.不带进位的加法指令,ADD 2.带Cy进位的加法指令ADDC和带Cy的减法指令S

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档