单片机原理与应用(倪云峰)全书第3章合编.ppt

单片机原理与应用(倪云峰)全书第3章合编.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.1.1 单片机的汇编语言   由于计算机只能识别二进制机器语言代码,它是一种用二进制数0、1组成的代码,不易辨识、记忆和书写,因此难以直接用它来进行程序设计。   为了既能体现机器语言的特点,又便于人们理解、记忆和书写,计算机常采用助记符来编写指令。助记符是根据机器指令的不同功能和操作对象来描述指令的,它采用有关的英文缩写来描述指令的特征,因此便于记忆、理解和分类。这种采用助记符和其他一些符号所编写的指令程序称为汇编语言源程序。 3.1.2 指令格式   MCS-51的指令有111条,分别表征30多种基本指令功能。其汇编指令格式如下:   标号:操作码 目的操作数,源操作数 ;注释   标号是该指令的符号地址,表明该指令在程序中的位置,在其他指令中可被引用,经常出现在转移指令中,可根据需要设置。标号后用“:”与操作码分隔开。标号的命名应符合字符集,即英语的大小写字母(a~z,A~Z)、数字0~9。标号严禁使用保留字符,如指令助记符、伪指令、常数等语言规范中已经使用了的符号,长度不能超过8个字符。   操作码和操作数是指令的核心部分,二者之间用空格分隔。操作码的作用是命令CPU作何操作;操作数则是该操作指令的作用对象,分为目的操作数和源操作数,二者之间用“,”分开。有些指令中无操作数,有些只有一个操作数。注释是对该指令功能的解释,主要是便于理解和阅读程序,可根据需要适当添加,编译器对注释是不作处理的。注释之前要用“;”与操作指令分开。   从指令的二进制代码表示的角度看,指令格式以8位二进制(1?B)为基础,分为单字节、双字节和三字节指令。 3.1.3 指令中的常用符号   在分类介绍各类指令之前,下面先对描述指令的一些符号的意义进行简单约定。   (1) ?Ri和Rn:R表示当前工作寄存器区中的工作寄存器;i表示0或1,即R0和R1;n表示0~7,即R0~R7。当前工作寄存器的选定是由PSW的RS1位和RS0位决定的。   (2) ?#data:#?表示立即数,data为8位常数。#data是指包含在指令中的8位立即数。   (3) ?#data16:包含在指令中的16位立即数。   (4) ?rel:相对地址,以补码形式表示的地址偏移量,范围为-128~+127,主要用于无条件相对短转移指令SJMP和所有的条件转移指令中。   (5) ?addr16:16位目的地址。目的地址可在全部程序存储器的64 KB空间范围内,主要用于无条件长转移指令LJMP和子程序长调用指令LCALL中。   (6) ?addr11:11位目的地址。目的地址应与下一条指令处于相同的2 KB程序存储器地址空间范围内,主要用于绝对转移指令AJMP和子程序绝对调用指令ACALL中。   (7) ?direct:表示直接寻址的地址,即8位内部数据存储器RAM的单元地址(0~127/255),或特殊功能寄存器SFR的地址。对于SFR,可直接用其名称来代替其直接地址。   (8) ?bit:内部数据存储器RAM和特殊功能寄存器SFR中的可直接寻址位地址。   (9) ?@:间接寻址寄存器或基地址寄存器的前缀(如@Ri、@DPTR),表示寄存器间接寻址。   (10) ?(x):表示x中的内容。   (11) ?((x)):表示由x寻址的单元中的内容,即(x)为地址,该地址的内容用((x))表示。   (12) ?/?和→符号:/?表示对该位操作数取反,但不影响该位的原值;→表示指令操作流程,将箭头一方的内容送入箭头另一方的单元中。 3.2.1 寄存器寻址   指令中的操作数是放在寄存器中的,找到了寄存器就可得到操作数,这种寻址方式称为寄存器寻址。寄存器寻址的工作寄存器指的是R0~R7、累加器A、寄存器B、数据指针 DPTR、CY(作为位处理累加器)等。   例如:   机器码 助记符       MOV A,R3   这条指令表示寄存器送数给累加器,为一条单字节指令,低3位011代表工作寄存器R3的地址,高5位11101代表从寄存器往累加器A送数据的操作。该指令的低3位可从000到111变化,分别代表了R0~R7。设R3中的操作数是B9H,上述指令的寻址过程如图3.1所示。 3.2.2 立即寻址   指令的源操作数是一个数值,这种操作数被称做立即数,在指令中用“#”作为其前缀。含有立即数的指令的指令码中,操作码后面的字节内容就是操作数本身,不需要到其他地址单元去取,这种寻址方式被称为立即寻址方式。   例如:     机器码 助记符     注释     74 FA MOV A,#0FAH ;A ← FAH   FAH是立即数,

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档