网站大量收购独家精品文档,联系QQ:2885784924

汇编语言第3章全解.ppt

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

第三章 汇编语言程序格式 汇编语言程序由执行性语句和说明性语句构成。第二章介绍的可完成相应功能的指令即是执行性语句,是与机器指令一一对应的指令。而说明性语句只是为汇编程序提供必要的信息的指令,又称为伪指令,它与机器指令无关。 本章主要让读者掌握汇编语言程序的基本格式,并通过上机实践,熟悉汇编语言程序的开发过程及其调试方法。 本章重点:伪指令、汇编语言程序结构、上机过程 第一节 伪指令 伪指令是指示如何汇编、连接,不直接产生机器指令。 一、段定义伪指令 格式:段名 SEGMENT [定位类型] [组合类型] [‘类别’] : 段名 ENDS 功能:定义一个以SEGMENT伪指令开始、以ENDS伪指令结束的段。各项用空格分隔,加方括号表示可选项。 1.段名:用户定义的,表示该段的段首地址,含段地址和偏移地址两个属性。段开始和段结束的段名必须相同。 段名作为操作数用于指令中时,表示立即数的段地址。 2.定位类型:定义段起始地址的类型,用于连接时。 1)BYTE (字节起点):表示本段以任意边界开始。 2)WORD (字起点):表示本段以偶数地址边界开始。 3)PARA (节起点):表示本段以节边界开始(10H为一节)。默认 4)PAGE (页起点):表示本段以页边界开始(100H为一页)。 3.组合类型:为连接程序提供本段与其他段的组合关系。 1)NONE(不连接):表示本段与其它段无连接关系,依次存放。 2)PUBLIC(公用段):表示本段与同名的其它段相邻连接,组成一个共同段。 3)STACK(堆栈段):表示本段为堆栈段的一部分。 4)AT 表达式(定段地址):表示本段的段地址由表达式的值得到。不能指定CS。 5)COMMON(共同段):表示本段与同名的其它段相覆盖,长度由最长段长度定。 6)MEMORY:表示本段地址高于其它同名段。如多个段选该类型,则第一个有效。 4.‘类别’:用户定义的、用单引号括起来的字符串表示的合法的名称。连接时同类名的段(段名未必相同)连续存放,但仍然是不同的段。‘类别’名相同的各个段在连接时,先出现的在前,后出现的在后,每段都有自己的起始地址。 一个汇编语言源程序可以有几个段,每段由各自的段定义伪指令包含起来,以将数据和代码明确地分开。 在代码段(CS)开始执行指令前,必有一条伪指令ASSUME以明确段和段寄存器间的关系,但并不初始化段寄存器的值。 格式: ASSUME CS:代码段名,DS:数据段名,ES:附加段名,SS:堆栈段名 其中每个段名是各段定义时的段名。 例如:DATA SEGMENT ;定义数据段 : DATA ENDS CODE SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DATA : CODE ENDS 其中ASSUME语句建立了CODE段名与CS寄存器、DATA段名与DS寄存器的对应关系。 二、程序结束伪指令 格式: END [标号] 功能:源程序中最后一个语句,标志整个程序的结束,汇编程序遇到该指令即停止汇编。 主程序结束:END 标号 ;该标号为程序开始的起始地址。 子程序结束:END 例如:END START ;START是该程序的第一条可执行指令的标号 告诉汇编程序用此地址的值来初始化CS:IP。 注意:这条指令必不可少,但不能放在程序的中间,否则,END语句后的语句就不能被汇编为目标代码了。 三、变量定义伪指令:为变量分配内存空间,并赋予初始值。 格式: [变量名] 助记符 操作数[,…,操作数] DB:定义字节,每个操作数占一字节的内存单元。 DW:定义字,每个操作数占一个字的内存单元。 DD:定义双字,每个操作数占二个字的内存单元。 DQ:定义四字,每个操作数占四个字的内存单元。 DT:定义十字节,每操作数占十字节的内存单元。 (Byte、Word、Dword、Qword、Tbyte) 其中变量名、助记符和操作数之间以空格隔开,且[ ]中内容为可选项。下面介绍各个部分的作用。 1)变量名是用户定义的一个符号地址,表示操作数的首地址,它有三个属性:段地

文档评论(0)

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

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

1亿VIP精品文档

相关文档