51汇编伪指令详解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51汇编伪指令 伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的操作指令一样,并可加在汇编程序的任何地方,但它们并不产生机器指令。许多伪指令要求带参数,这在定义伪指令时由“表达式”域指出,任何数值与表达式匀可以作为参数。不同汇编程序允许的伪指令并不相同,以下所述的伪指令仅适用于MASM51系统,但一些基本的伪指令在大部份汇编程序中都能使用,当使用其它的汇编程序版本时,只要注意一下它们之间的区别就可以了。 MASM51中可用的伪指令有: ORG 设置程序起始地址 END 标志源代码结束 EQU 定义常数 SET 定义整型数 DATA 给字节类型符号定值 BYTE 给字节类型符号定值 WROD 给字类型符号定值 BIT 给位地址取名 ALTNAME 用自定义名取代保留字 DB 给一块连续的存储区装载字节型数据 DW 给一块连续的存储区装载字型数据 DS 预留一个连续的存储区或装入指定字节。 INCLUDE 将一个源文件插入程序中 TITLE 列表文件中加入标题行 NOLIST 汇编时不产生列表文件 NOCODE 条件汇编时,条件为假的不产生清单 一、ORG 伪指令ORG用于为在它之后的程序设置地址值,它有一个参数,其格式为: ORG 表达式 表达式可以是一个具体的数值,也可以包含变量名,如果包含变量名,则必须保证,当第一次遇到这条伪指令时,其中的变量必须已有定义(已有具体的数值),否则,无定义的值将由0替换,这将会造成错误。在列表文件中,由ORG定义的指令地址会被打印出来。 ORG指令有什么用途呢?指令被翻译成机器码后,将被存入系统的ROM中,一般情况下,机器码总是一个接一个地放在存储器中,但有一些代码,其位置有特殊要求,典型的是五个中断入口,它们必须被放在0003H,000BH,0013H,001BH和0023H的位置,否则就会出错,如果我们编程时不作特殊处理,让机器代码一个接一个地生成,不能保证这些代码正好处于这些规定的位置,执行就会出错,这时就要用到ORG伪指令了。看如下例子: 例: INT_0 EQU 1000H TIME_0 EQU 1010H INT_1 EQU 1020H TIME_1 EQU 1030H SERIAL EQU 1040H AJMP START ;跳转到主程序起始点 LJMP INT_0 ;外中断0处理程序 LJMP TIME_0 ;定时中断0处理程序 LJMP INT_1 ;外中断1处理程序 LJMP TIME_1 ;定时中断1处理程序 LJMP SERIAL ;串行口中断程序 START: NOP END 上面的程序经汇编后列表文件如下: The Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 1 08-26-96   1000 = INT_0 EQU 1000H 1010 = TIME_0 EQU 1010H 1020 = INT_1 EQU 1020H 1030 = TIME_1 EQU 1030H 1040 = SERIAL EQU 1040H 0000 0111 AJMP START ; 0002 021000 LJMP INT_0 ;外中断0处理程序 0005 021010 LJMP TIME_0 ;定时中断0处理程序 0008 021020 LJMP INT_1 ;外中断1处理程序 000B 021030 LJMP TIME_1 ;定时中断1处理程序 000E 021040 LJMP SERIAL ;串行口中断程序 START: 0011 00 NOP 0000 END The Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 2 08-26-96 ;%T Symbol Name Type Value INT_0 . . . . . . . . . . . . . I 1000 INT_1 . . . . . . . . . . . . . I 1020 SERIAL. . . . . . . . . . . . . I 1040 START . . . . . . . . . . . . . L 0011 TIME_0. . . . . . . . . . . . . I 1010 TIME_1. . . . . . . . . . . . . I 1030 ;%Z 00 Errors (0000) 由列表文件,可以绘出代码在ROM中的映象图如下: 代码 01H 11H 02H 10H 00H 02H 10H 10H 02H 10H 20H 地址 00H 01H 02H 03H

文档评论(0)

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

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

1亿VIP精品文档

相关文档