- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lecture 6 (AssemblerDirectives)_Chinese Rv01
第六讲 汇编伪指令 汇编伪指令 代码生成 流程 汇编命令—介绍 段控制 通用段(SEGMENT, RSEG) 绝对段(CSEG, DSEG 和 XSEG) 地址控制 ORG, USING, END 符号定义 EQU, SET, CODE, DATA, IDATA, XDATA 存储初始化/保留 DB, DW, DD, DS 编程模板例子 代码生成流程 汇编伪指令—介绍 汇编伪指令不是汇编语言指令,不生成任何机器代码 他们是置于汇编语言程序来指导汇编程序执行一个特定的任务或功能的特殊的代码。 他们可以用来定义符号值,保留和初始化多个存储空间并控制程序代码的替代。 汇编伪指令通常是具体到一个专门的汇编程序。我们会在这门课例讲 Keil A51 汇编程序。 汇编伪指令被分为如下类: 段控制 地址控制 符号定义 存储器初始化/保留 段控制 在x51 CPU 结构中, 相邻的块代码或数据存储经常被认为是一个段 举例: 一个函数定义 (程序存储器) 一个阵列 (数据储存器) 按照能否重新定位可以被分为两种段 通用的或可重新定位的 绝对的 这两个类型都可以被指定为5个存储分类之一 CODE, DATA, IDATA, XDATA, BDATA/BIT 通用(可重新定位)段分割 通用段使用 SEGMENT 伪指令生成 其最后的存储位置由连接器来分配。 格式如下:: Symbol SEGMENT segment_memory_class 举例: MYDATA SEGMENT DATA 上面的伪指令定义了一个可重新定址的段叫 MYDATA, 在DATA 存储类内 一旦上面的段名被定义后,下一步就是用RSEG 伪指令来选择段(如下面举例) RSEG MYDATA 无论何时遇到上面的声明, MYDATA 段将变为当前活动段直到汇编程序经过另外一个RSEG 伪指令,其会定义到另外一个段区域 绝对段 绝对段是指一个固定存储器段. 其是由CSEG, DSEG 和XSEG伪指令生成 段的最终位置在编译的时候是固定的。 这条伪指令的格式如下: CSEG AT address ; 定义一个绝对代码段 DSEG AT address ; 定义一个绝对数据段 XSEG AT address ; 定义一个绝对外部数据段 例子: CSEG AT 0300H ;选择代码段 ;启始地址在0300H DSEG AT 0400H ;选择数据段 ;启始地址在 0400H 地址控制—ORG ORG伪指令格式如下: ORG expression ORG 伪指令用于设置当前段的定位值,偏移地址由表达式给出 然而,它没有改变段地址.段地址只可以使用标准的段伪指令去改变. 例子: ORG 80H ;设置定位值为 80H ORG伪指令不只是用于代码段,也可以用于其它段,比如:数据段. 例如, 为在指定地址给SECONDS和 MINUTES两个变量各保留一个字节的存储器空间,我们要按如下方式来写: DSEG ;数据段 ORG 30H SECONDS: DS 1 MINUTES: DS 1 地址控制—END 伪指令的格式: END END 伪指令表示了源文件的结尾。 它通知汇编程序哪里是汇编程序的结束。 因此任何在END 伪指令后的文本都会被汇编程序所忽略。 END 伪指令是所有源文件所必须的 如果在程序结尾没有写END,汇编程序将会产生一个错误信息。 符号定义 符号定义伪指令是给一个表达式或一个寄存器分配一个符号名称 该表达式 可以是一个常量数字,一个地址参数或者另外一个符号名 有些时候,用一个符号代表一个值或者寄存器是很有利的,因为这样做对使用者来说很利于编程 另外一个好处是,将一个值等同与一个符号用户只需要在伪指令声明时改变一次就可以了 针对这一符号的剩余伪指令的声明将自动更新 符号定义—EQU, SET EQU 和SET 的伪指令格式如下所示: Symbol EQU expression Symbol EQU register Symbol SET expression Symbol SET register 和C里的 “#define”宏定义很相似 表达式可以包括简单的数学运算符,如 ‘+’, ’-‘, ‘ * ‘, ‘/’, MOD 寄存器包括 A, R0, R1, R2, R3, R4, R5, R6 and R7 符号定义—EQU, SET 举例: COUNT EQU R3 ;equate to a register TOTAL
您可能关注的文档
- How to develop the ability of understanding English news.doc
- How to restrict network resource-chinese.doc
- HowToUsemaxplus.ppt
- HP ProLiant服务器使用SmartStart光盘配置阵列卡过程.docx
- HP ProLiant ML370 G6 服务器 - 使用 Array Configraiton Utility 进行阵列扩容.doc
- HP ML350 G6磁盘阵列配置.doc
- htc手机真假的鉴别.doc
- htcg12系统自带功能删除表.doc
- html基本代码.doc
- html电子.doc
文档评论(0)