MC9S12单片机原理及嵌入式应用开发技术 作者 陈万忠 第4章 指令系统.pptVIP

MC9S12单片机原理及嵌入式应用开发技术 作者 陈万忠 第4章 指令系统.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.带自动加、减5位偏移量的间接变址寻址 X、Y、SP做间接地址的同时将寄存器中的值加、减1~16,便于数据块的传送。   例如: MOVW   2, X+, 4, +Y; 如果X=2000、Y=3000,指令含义是将2000和2001两单元的内容传给3004和3005两单元。与C语言相同,X+为先用后加,+Y为先加后用。 7.相对寻址 相对寻址用于相对转移指令(relative)。 例如: BNE  LABLE;  //CCR寄存器中Z不为零,就转到LABLE处 JMP[D, PC];//转到PC+D所指向的存储器中的值所指处 相对转移是指转移的目的地地址是以当前指令所在的地址为基地址,再加上一个偏移量,偏移量的值是在汇编中由编译程序自动算出的,在汇编指令中只需给出目的地即可。 汇编指令的详细说明见英文手册S12XCPUV1 Reference Manual。 4.4 汇编语言程序设计 4.4.1 汇编管理指令 4.4.2 汇编语言程序设计举例 4.4.1 汇编管理指令 1. EQU(Equate 2. ORG(Original,EEPROM 3. RMB(Reserve 4. DC(Define 5. XDEF(External 6. XREF(External 7. END(End 4.4.2 汇编语言程序设计举例 下面的程序实现x1+x2=x3,变量x1、x2、x3占用2000开始空间,x1=7,x2=A5。 XDEF main ; //定义符号,在其他模块可以引用 //下行引用特定的宏定义,其中定义了MCS9S12X512所有的存储器映射寄存器 INCLUDE mc9s12xdp512.inc  ORG  2000//定义数据从2000开始存放   x1:DS.B1    //定义变量,占用一个字节空间 x2:DS.B1 x3:DS.B1 V1EQU7    //定义常量 V2EQUA5 //代码段 ORG  4000      main: MOVB#V1, x1//常量V1值赋给x1 MOVB#V2, x2 LDAAx1//x1数据传给累加器A ADDAx2//x1与A相加结果送给A STAAx3//将A值送x3 HERE:BRAHERE//单片机在此没有停止指令  END 汇编语言编程在程序设计中 第4章 指 令 系 统 主编 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 第4章 指 令 系 统 4.1 S12汇编指令集 4.2 指令的分类 4.3 寻址方式 4.4 汇编语言程序设计 4.1 S12汇编指令集 计算机是靠机器指令加工处理信息的。所谓机器指令,就是这样一组代码信息,它指出进行什么操作,有哪些数据参与该操作,操作的结果如何处理等。机器指令也是二进制数形式的代码,记住它非常困难,因而用符号指令即汇编语言与机器码一一对应。而符号指令采用了助记符,容易理解和记忆。 符号指令的构成如下: [标号:]操作助记符[第一操作数][,第二操作数][,第三操作数][,第四操作数][;注释] 操作助记符以符号形式给出该指令执行什么操作,即操作码,由2~5个英文字母表示,如加ADD、逻辑与ANL等。要达到助记的目的,就要养成直接以英语读助记符、直接记英文含义的习惯。例如: CLR  读作 clear LDAA读作 load accumulator A 4.2 指令的分类 4.2.1 数据传送类指令 4.2.2 算术运算类指令 4.2.3 逻辑运算类指令 4.2.4 程序控制指令 4.2.1 数据传送类指令 1) Load指令也称为加载指令,将数据从存储器空间读到寄存器中,或将地址加载到寄存器中。 2) Store指令是与加载指令相对应的存储指令,完成将数据从寄存器存储到存储器空间中。 3) Move指令将数据从一个存储器空间传到另一个存储器空间,不经过寄存器。 4) Transfer指令执行寄存器到寄存器之间的数据传送。 5) Exchange指令实现寄存器间的数据交换。 6) 堆栈操作指令分为将数据压入堆栈和将数据从堆栈中弹出。 ① 将数据压入堆栈如下: ② 将数据从堆栈中弹出如下: 4.2.1 数据传送类指令 图4-1 数据传送示意图 1) Load指令也称为加载指令,将数据从存储器空间读到寄存器中,或将地址加载到寄存器中。 2) Store指令是与加载指令相对应的存储指令,完成将数据从寄存器存储到存储器空间中。 3) Move指令将数据从一个存储器空间传到另一个存储器空间,不经过寄存器。 4) Transfer指令执行寄存器到寄存器之间的数据传送。 5) Exchange指令实现寄存器间的数据交换。 6) 堆

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档