汇编语言程序格式.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 汇编语言程序格式 4.1 汇编程序功能 汇编语言程序的上机过程是 编辑源程序 用汇编程序处理源程序将源程序转化为目标程序。 用连接程序把目标程序转化为 DOS可执行程序。 汇编程序的主要功能是: 检查汇编语言源程序 报告源程序中的错误 形成目标程序 4.2 伪操作 伪操作:又称为伪指令。她不象机器指令那样是在程序运行期间由计算机来执行的,而是汇编程序在对源程序汇编期间由汇编程序处理的操作。伪操作主要可以完成以下操作: 数据定义及存储器分配伪操作 表达式赋值伪操作 段定义伪操作 程序开始和结束伪操作 对准伪操作 基数控制伪操作 数据定义及存储器分配伪操作 数据定义及存储器分配伪操作格式为: [Variable] Mnemonic Operand,…,Operand [;Comments] 注释(comments):可有可无,说明该伪操作的功能。 变量(variable):可有可无,用符号地址表示,作用与指令语句前的标号相同,但是后面没有冒号。 助记符字段(Mnemonic) 助记符字段说明所用伪操作的助记符,常见的为: DB:用来定义字节,其后每个操作数占用一个字节。 DW:用来定义字,其后每个操作数占用一个字。 DD:用来定义双字,其后每个操作数占用两个字。 DQ:用来定义四个字,其后每个操作数占用四个字。 DT:用来定义十个字节,其后每个操作数占用十个字节,形成压缩的BCD码。 利用这些助记符可以确定指令是字节操作还是字操作。 操作数字段 操作数可以是常数、表达式(根据该表达式求得的常数)、字符串、“?”、变量或者标号等。 操作数字段可以使用复制操作符来复制某些操作数。格式为: repeat_count DUP(operand,…operand) 其中repeat_count可以是一个表达式,也可以是一个正整数,用来指定括号中的操作数重复的次数。DUP操作可以嵌套。 操作数的类型属性 操作数的类型属性由助记符字段隐含表示,但是,程序中有两个办法可以重新定义操作数的类型属性,而且优先于隐含的类型属性。方法为: 使用PTR属性操作符。格式为: type PTR Variable±constant expression 其中type可以是BYTR、WORD或DWORD。 使用LABLE伪操作。格式为: name LABLE type 其中type可以是BYTE、WORD或DWORD。 表达式赋值伪操作 有时程序中多次出现同一个表达式,为了方便起见可以用赋值伪操作给表达式赋予一个名字。赋值伪操作有两种: EQU 格式为:Expression_name EQU Expression = 格式为: Expression_name=Expression 二者的区别: EQU伪操作中的表达式名不允许重复定义,而=伪操作中则允许。 段定义伪操作 格式为: segment name SEGMENT [align_type] [combine_type] [‘class’] … segment name ENDS 此外,在代码段开始必须用ASSUME伪操作声明段和寄存器之间的关系,格式为: ASSUME sreg:segment name, …,sreg:segment name 定位类型 定位类型(align_type)字段可以是: PARA:指定段的起始地址必须从小段边界开始。 BYTE:指定段可以从任何地址开始。 WORD:指定段必须从字的边界开始。 PAGE:指定段必须从页的边界开始,也就是该地址的最低两个16进制数位必须为0。 如果没有这项声明,系统默认为 组合类型 组合类型(combine_type)字段可以是: PUBLIC:指定段连接时与有相同名字的其他分段连接在一起。连接次序由连接命令指定。 COMMON:指定段在连接时与其他同名分段有相同的起始地址。连接长度是各分段中的最大长度。 AT expression:指定段的起始地址是表达式所计算出来的16位段地址。但不能用来指定代码段。 STACK:指定该段在运行时为堆栈段的一部分。 MEMORY:指定段将分配在所有其他连接在一起的段的前面。 程序开始和结束伪操作 开始为模块起名字的伪操作格式为: NAME module_name 或TITLE text 这两个伪操作可以同时拥有,可以只有一个,也可以都没有。 结束伪操作格式为: END [label] 其中label指示程序开始执行的起始地址。如果多个模块相连,只有主程序使用label。 对准伪操作 对准伪操作有以下三种: EVEN:使下一个字节地址成为偶数。 ORG cons

文档评论(0)

一天一点 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档