汽车单片机原理及应用---第四章 指令系统.pptVIP

汽车单片机原理及应用---第四章 指令系统.ppt

  1. 1、本文档共88页,可阅读全部内容。
  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文档。上传文档
查看更多
汽车单片机原理及应用---第四章 指令系统

第四讲 指令系统 RETI:向量中断返回指令。将存于堆栈的字数据返回到PC和PSW中,程序从中断服务子程序处返回。不能用于BRK指令的返回。执行RETI指令可将NMIS标志清零 RETB:BRK指令产生的软中断返回指令 指令系统 CPU 控制指令 包括:SEL RBn,NOP,EI,DI,HALT,STOP SEL RBn:由操作数(RBn)规定的寄存器组在下一条指令和后续指令中使用。RBn的范围从RB0到RB3 NOP:仅仅消耗时间,不作任何处理 EI:开中 DI:关中 HALT:设置HALT模式 STOP:设置STOP 模式 指令系统 汇编程序基本结构 78K系列微处理器使用RA78K0(汇编包)将源程序转换为机器语言 RA78K0包括7个程序:结构化汇编预处理程序、汇编程序、连接程序、目标代码转换程序、库、列表转换程序和项目管理器PMplus 项目管理器PM plus执行一系列操作:编辑、编译/装配、连接和调试等 基于模块的设计方法通常将一个源程序分为多个模块,每个源程序模块应该按照有关格式编写,才可以传送给汇编程序,汇编成目标代码 模块头(可以省略) 模块体 模块尾 汇编语言程序设计 模块头:可以使用的控制语句如下表 汇编语言程序设计 模块体:可以使用所有其他的伪指令、控制命令及指令系统中的所有指令。模块体必须用段来描述,可以使用下列4 种段描述模块体: 代码段必须用CSEG 定义 数据段必须用DSEG 定义 位段必须用BSEG 定义 绝对段用ORG 定义,或者用AT 指令重定位使用CSEG, DSEG, 或BSEG 定义的段 数据段必须在代码段之前定义 模块尾:使用END 伪指令描述模块的结束 汇编语句的格式 符号和助记符之间必须根据助记符的种类选用冒号、1 个或几个空格或制表符隔开 助记符和操作数之间必须用1 或几个空格或制表符隔开,有些指令没有操作数 注释必须用分号隔开,注释可有可无 每行必须用[CR]定界 汇编语言程序设计 符号的类型 CODE01 CSEG ; “CODE01”是一个段名 VAR01 EQU 10H ; “VAR01” 是一个(常量的)名字 LAB01: DW 0 ; “LAB01” 是一个标号 NAME SAMPLE ; “SAMPLE” 是一个模块名 MAC1 MACRO ; “MAC1”是一个宏名 汇编语言程序设计 助记符 助记符:可以是指令、伪指令或宏引用 操作数 操作数是指令、伪指令或宏引用操作的数据 根据不同的指令、伪指令或宏引用,操作数区可以有1 个或2 个操作数,也可以没有操作数,如果有两个操作数时,用逗号隔开 操作数主要类型 常数(数据和字符串常数)、 字符串、 寄存器名、 特殊字符($, #, !, and [ ])、段定义伪指令的重定位属性名、符号、表达式和位操作类型的操作数 汇编语言程序设计 二进制(后缀B或Y)、八进制(后缀O或Q)、十进制(后缀D或T,或没有后缀)、十六进制(后缀H )、ASCII 码 (使用一对单引号,例如‘a’代表65H) 特殊字符 $ :表示指令的地址(多字节指令时代表这个地址的第一个字节); 是一个分支指令的相对寻址模式 ! :表示一个分支指令的绝对寻址模式 # :表示立即数 [ ] :表示间接寻址 表达式和运算符 HIGH 运算符:返回该数据的高8位数值 LOW 运算符:返回该数据的低8位数值 MOV A,#HIGH 1234H = MOV A,#12H 汇编语言程序设计 DATAPOS 运算符:返回一个位符号的地址部分(字节地址) SYM EQU 0FE68H.6 ;用EQU定义“SYM”=0FE68H.6 MOV A,!DATAPOS SYM = MOV A, !0FE68H BITPOS 运算符:返回一个位符号的位部分(位位置) SYM EQU 0FE68H.6 CLR1 [HL].BITPOS SYM = CLR1 [HL].6 汇编语言程序设计 运算符的优先顺序 汇编语言程序设计 * * 主要内容: 寻址方式 指令系统 程序设计 指令地址寻址 相对寻址:将一条指令的8 位立即数与下一条指令的起始地址相加,结果赋给程序计数器(PC),然后转向相加结果指向的地址 立即数是带符号位的补码(–128 to +127),相对转移值是从下一条指令的起始地址开始,范围在–128 与+127之间 执行“BR $addr16”指令或条件转移指令 立即寻址:将指令中的立即数赋给程序计数器(PC),然后转向该地址 如“CALL !addr16”、“BR !addr16”或“CALLF !addr11” 指令 CALL !addr16 和BR !addr16指令的转移地址范围是所有内存空间

文档评论(0)

zhuwenmeijiale + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档