第二章 汇编语言与汇编程序

第二章 汇编语言与汇编程序

ID:6162659

大小:192.00 KB

页数:38页

时间:2018-01-05

第二章      汇编语言与汇编程序_第1页
第二章      汇编语言与汇编程序_第2页
第二章      汇编语言与汇编程序_第3页
第二章      汇编语言与汇编程序_第4页
第二章      汇编语言与汇编程序_第5页
资源描述:

《第二章 汇编语言与汇编程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第二章汇编语言与汇编程序§2.1机器语言与汇编语言一.机器语言——机器只能识别二进制编码•机器指令——机器能直接执行的一组二进制代码(命令)——该二进制代码称为机器码(MachineCode).如:40HàINCAX01D8HàADDAX,BX•指令通常由两部分组成:操作码和操作数•操作码——该指令的功能,即执行什么操作。•操作数——指令操作对象,指明参加操作的数或操作数的地址。•机器指令的集合à机器语言à用机器语言编写的程序à机器语言程序二、汇编语言机器语言编写程序烦琐,难记忆,不易理解,易出错。用一些助记符来表示指令的操作码,操作数亦用一些符号来表示à符号指令。如上:40

2、HàINCAX01D8HàADDAX,BX•符号指令与机器指令一一对应。•符号指令的集合à符号语言,又称汇编语言à用汇编语言编写的程序à汇编语言程序à不能由计算机直接执行,必须将它翻译成机器语言程序à翻译过程称汇编à翻译程序为汇编程序。•汇编语言源程序à汇编à目标程序三、宏汇编程序àMASM允许把一串指令定义为一条宏指令,有宏汇编功能。如MASMà系统程序。宏汇编语言有三类基本指令:符号指令,伪指令,宏指令。§2.2常用伪指令与常用算符•每一种计算机语言都规定了自己的符号系统及语法规则。汇编语言也是如此,除符号指令外,还必须正确使用各种符号。汇编中的各种符号由伪指令定义,或为

3、汇编的保留字。一、汇编语言源程序结构——单模块程序结构•参见教材P、60一般程序由三个段组成。教材中程序的小写字母部分均为程序结构。STACKSEGMENTSTACKDW32DUP(?)STACKENDSDATASEGMENT:DATAENDSCODESEGMENTBEGINPROCFARASSUMECS:CODE,SS:STACK,DS:DATAPUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AX:RETBEGINENDPCODEENDSENDBEGIN•因为连接程序为每一个用户程序建立了一个程序段前缀PSP,在PSP的开始处安排了一条INT20H指

4、令,执行该指令结束当前程序返回调用程序。•而PSP的地址,其段地址寄存在DS和ES中;偏移地址为0,将DS:0000地址进栈,即PSP地址进栈。•PSP的长度为256个字节,即100H个单元,主要存放了装入程序与DOS连接的信息。•结束用户程序返回DOS有两种方法:其一:MOVAH,4CH;返回DOSINT21H其二:INT20H;返回调用程序,便于调试它的机器码是CD20H,当用DEBUG调用EXE文件时,在DS:0000单元中便可看到该指令。•DOS在转移控制权时,将CS指向EXE程序的代码段,SS指向堆栈段,但DS和ES并不指向用户程序的数据段和附加数据段,而是指向PS

5、P。二、常用伪指令(P58)伪指令不产生机器代码,CPU也不会产生某种操作,它主要告诉汇编程序哪些是数据,哪些是指令,符号约定,程序从何处开始,何处结束,即为汇编控制命令。伪指令很多,下面主要介绍段定义,过程定义。1、段定义伪指令à定义一个存储段,一个程序模块可由若干段组成。格式:〈段名〉SEGMENT[定位方式][组合方式][‘类别名’]……伪指令或指令〈段名〉ENDS功能:定义一个以“段名”为名称的存储段。•定位方式,组合方式,‘类别名’à赋给段名的属性,三个可选项主要用于多模块化程序设计,以告诉LINK程序各模块间段如何定位,段与段如何组合,还可连接在一起。一般单模块程

6、序可省略。•段名à给段取名,用来指出汇编程序为该段分配的存储区的起始地址,即段地址,为一常数,用SEG运算符取得。•定位方式à相邻两段间应如何衔接,即对该段的起始地址所提出的要求。定位方式有四种选择:(1)[PARA](节)à规定段的起始地址总是16的整数倍,即低四位为零,省略时,系统隐含为此方式,教材中均默认为PARA方式。(2)WORD(字)à规定段的起始地址总是2的整数倍,即低1位为零。(3)Byte(字节)à规定段的起始地址总是1的整数倍,即能被1整除,任何地址可为段地址,不留空隙。(4)Page(页)à规定段的起始地址总是256的整数倍,即低8位为零。•组合方式——

7、提供本段同其他段的组合关系,有6种选择方式。(1)[NONE]不选择à表示本段与其他逻辑上不发生关系,尽管物理上可能相邻,但每段都有自己的段首址。系统隐含该组合方式,单模块程序,各段之间不发生关系,采用不选择方式,教材中多数例题的数据段,代码段均为不选择方式。(2)PUBLIC公共à将同段名,同类别名的段顺序相拼,是否留有空隙取决与定位方式。(3)STACK堆栈à将同段名,同类名的段顺序相拼,不留空隙,长度相加,构成堆栈段。一个程序模块中至少有一个段为STACK组合方式的段。(4)COMMON公用à将同

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。