第7讲5单片机汇编语言程序设计.doc

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

标题: 第四部分 汇编语言程序设计1、理解源程序、目标代码、编辑、汇编等含义 2、了解汇编过程 3、掌握伪指令的使用掌握顺序结构、分支结构程序的编写方法伪指令的使用 一、 结构清晰,易读、易于移植 占用存储空间少; 运行时间短; 程序的编制、调试及排错所需时间短; 3、汇编程序功能 汇编指令与机器码指令有一一对应的关系。 汇编程序是一种翻译程序,将源程序翻译成目标程序。 汇编程序的汇编过程 汇编有两种方法:手工汇编、机器汇编。 1、手工汇编: 第一次汇编:确定地址,翻译成各条机器码,字符标号原样写出; 第二次汇编:标号代真,将字符标号用所计算出的具体地址值或偏移量代换。 ? 源程序 地址 目标程序 ? 第一次汇编 第二次汇编 ? ORG 1000H ? START: MOV R0,BUFFER-1 1000 A82F A82F ? MOV R2,#00H 1002 7A00 7A00 ? MOV A,@R0 1004 E6 E6 ? MOV R3,A 1005 FB FB ? INC R3 1006 0B 0B ? SJMP NEXT 1007 80NEXT 8005 ? LOOP; INC R0 1009 08 08 ? ? CJNE @R0,#44H,NEXT 100A B644NEXT B64401 ? ? INC R2 100D 0A 0A ? NEXT: DJNZ R3,LOOP 100E DBLOOP DBF9 ? MOV RESULT,R2 1010 8A2A 8A2A ? ? SJMP $ 1012 80FE 80FE ? BUFFER DATA 30H ? ? ? ? RESULT DATA 2AH ? ? ? ? ? END ? ? ? 2、机器汇编 两次扫描过程。 第一次扫描:检查语法错误,确定符号名字; 建立使用的全部符号名字表; 每一符号名字后跟一对应值(地址或数)。 第二次扫描:是在第一次扫描基础上,将符号地址转换成真地址(代真); 利用操作码表将助记符转换成相应的目标码。 、伪指令 伪指令是告诉汇编程序,如何汇编源程序的指令。 伪指令既不控制机器的操作,也不能被汇编成机器代码,故称为伪指令。 1、起始地址伪指令 ORG ORG addr16 用于规定目标程序段或数据块的起始地址,设置在程序开始处。 2、汇编结束伪指令 END 告诉汇编程序,对源程序的汇编到此结束。一个程序中只出现一次,在末尾。 3、赋值伪指令 EQU 告诉汇编程序,将汇编语句操作数的值赋予本语句的标号。 格式: 标号名称 EQU 数值或汇编符号 “标号名称”在源程序中可以作数值使用,也可以作数据地址、位地址使用。 先定义后使用,放在程序开头。 4、定义字节伪指令 DB 告诉汇编程序从指定的地址单元开始,定义若干字节存储单元并赋初值。 格式: [标号:] DB 字节数据或字节数据表 5、定义字伪指令 DW 从指定地址开始,定义若干个16个位数据,高八位存入低地址;低八位存入高地址。 例、 ORG 1000H PIOI: DW 7654H,40H、12、‘AB’ 6、数据地址赋值伪指令 DATA 将表达式指定的数据地址赋予规定的字符名称 格式: 字符名称 DATA 表达式 注:该指令与EQU 指令相似,只是,可先使用后定义,放于程序开头、结尾均可。 7、定义空间伪指令 DS 从指定地址开始,保留由表达式指定的若干字节空间作为备用空间。 格式: [标号:] DS 表达式 例2、 ORG 1000H DS 0AH DB 71H,11H,11H ;从100BH开始存放71H、11H、11H。 注:DB、DW、DS 只能用于程序存储器;而不能用于数据存储器。 8、位地址赋值伪指令 BIT 将位地址赋予规定的字符名称。 格式: 字符名称 BIT 位地址 例3、 X1 BIT P12 相当于 X1 EQU 92H 汇编程序的基本结构 、顺序程序举例 例1、设在外RAM的60H单元存有1个字节代码,要求将其分解成两个4位字段,高4位存入原单元的低4位,其低4位存入61H单元的低4位,且要求这两个单元的高4位均为0,试编制完整程序。 解: 字节分解: 核心指令 MODE: ANL ORL 1000H MODE:MOV R0,#60H MOVX A,@R0 MOV B,A ANL A,#0F0H SWAP A MOVX @R0,A ANL B,#0FH MOV A,B INC R0 MOVX @R0,A END 、分支结构与分支程序设计 结构:根据不同的条件,进行相应的处理。 通常用条件转移指令形成简单分支结构。 如: 判(A

文档评论(0)

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

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

1亿VIP精品文档

相关文档