- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章 汇编语言与汇编程序设计
第四章 汇编语言及汇编程序设计 ;本章学习目标 ;4.1汇编语言概述-1;4.1汇编语言概述-2; 常用的汇编程序(汇编编译器)有Microsoft公司的MASM系列和Borland公司的TASM系列。汇编程序以汇编语言源程序文件作为输入,并由它产生三种输出文件:目标程序文件和源程序列表文件以及交叉引用文件。目标程序文件经连接定位后由计算机执行;源程序列表文件将列出源程序、目标程序的机器语言代码及符号表。源程序列表文件和交叉引用文件是中间结果.通常可以不理睬它.;4.1汇编语言概述-3;*.EXE文件;二、汇编环境介绍;三、汇编语言上机过程
(1)用编辑程序建立ASM源文件
(2)用汇编程序对ASM源文件进行汇编,产生OBJ目标文件。若在汇编过程中出现语法错误,根据错误信息提示(如位置、类型、说明),用编辑软件重新调入源程序进行修改。
(3)用链接程序对目标文件进行连接,生成EXE文件(文件名.EXE);
(4)在DOS提示符下,键入EXE文件名,运行程序。 ;四、汇编语言的语句:
汇编语言有指令语句和伪指令语句
(1)指令语句: 汇编程序对源程序进行汇编时,把指令语句翻译成机器指令,能够产生目标代码,是CPU可以执行的能够完成特定功能(操作)的语句。
(2)伪指令语句:伪指令没有与其对应的机器指令,它不产生目标代码,它只是为汇编程序和连接程序提供一些必要控制的管理性语句,指示汇编程序如何汇编源程序, ,并完成相应的伪操作包括符号的定义、变量的定义、段的定义等。所以称为伪指令。
(3)宏指令语句:在汇编语言源程序中,若某程序片段需要多次使用,为了避免往重复书写,我们可以把它定义为一条宏指令。;四、1、汇编语言语句格式
一般情况下,汇编语言的语句可以由以下几部分组成:[名字] 操作符 [操作数] [;注释]
说明:
(1)名字是一个符号。
(2)操作符可以是机器指令、伪指令和宏指令的助记符;
(3)操作数是操作符的操作对象,由一个或多个表达式
组成,当有两个或两个以上的操作数时,各操作数之间用
逗号隔开;
(4)注释字段是以“;”开头的说明部分,可以用英文或
者中文书写。注释字段是语句的非执行部分 ,用来说明
本条指令(或本段程序)在程序中的功能和作用。
(5)上述四部分中,用“[ ]”框住的部分表示这个部分可有可无。;汇编语言的语句;第一个部分 汇编语言标识符; 标识符有三种属性:段属性、偏移属性及类型属性。
(1)段属性:表示标识符所在段的段地址,标号的值在CS寄存器中;变量的值在CS以外的寄存器中。
(2)偏移属性:表示段内偏移地址,默认从0000H开始.从本段开始到标识符位置的字节数。标识符的偏移地址是16位或32位无符号数,取决于段的长度;
(3)类型属性:标识符分“标号”和“变量”。
“标号”的类型有两种:NEAR指明它是段内引用,指针长度为2字节;FAR指明它是段外引用,指针长度为4字节;
“变量”的类型主要定义该变量保留的字节数,有字节、字、双字、结构名、记录名等。;定义标识符类型
定义标识符类型伪指令的一般格式为:
符号名 LABEL 类型
该语句的功能是定义该标识符(符号地址)所指定的内存单元中的数据类型,以后用到这个标识符所指定的内存单元中的数据时不用再定义它的类型。例如:
THXY1 LABEL BYTE;指明THXY1的类型为“字节”
THXY2 LABEL WORD;指明THXY1的类型为“字”
THXY1 LABEL DWORD ;指明THXY1的类型为“双
字”; 定义标识符类型
3.定义符号名语句
定义符号名语句的一般格式为:符号名 LABEL 类型
功能:LABEL伪操作使同一个变量具有不同的类型属性。
说明:在定义符号名语句中,类型可以为:BYTE、WORD、DWORD、QDWORD、TBYTE或FWORD。
例如:
THXY1 LABEL BYTE;表明下一语句和本语句是同一个变量.
THXY2 DW 11AAH,22BBH
MOV AL,THXY1 ;运行结果(AL)= 0AAH
MOV BX,THXY2 ;运行结果(BX)= 11AAH
说明:在上述定义符号名语句中,对于以THXY2开始的存储器中的同一个单元,同时定义了字节属性和字属性,使用THXY1变量名时,为字节属性;使用THXY2变量名时,为字属性。所以执行上述两条数据传送指令后,AL寄存器中的内容为0AAH,BX寄存器中的内容为11AAH。;操作符就是机器指令、伪指令和宏指令的助记
文档评论(0)