ImageVerifierCode 换一换
格式:PPT , 页数:51 ,大小:241.01KB ,
文档编号:5146803      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5146803.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(最新-第4章汇编语言程序设计-课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

最新-第4章汇编语言程序设计-课件.ppt

1、第第4章章 汇编语言程序设计汇编语言程序设计 本章要点:本章要点:p 汇编语言程序设计基础汇编语言程序设计基础p 源程序的汇编、连接与调试源程序的汇编、连接与调试p 分支程序设计技术分支程序设计技术p 循环程序设计技术循环程序设计技术p 子程序设计技术子程序设计技术p 综合程序设计示例综合程序设计示例本教案内容本教案内容第第4 4章章 汇编语言程序设计汇编语言程序设计n汇编语言程序设计基础汇编语言程序设计基础n源程序的汇编、连接与调试源程序的汇编、连接与调试n分支程序设计技术分支程序设计技术n循环程序设计技术循环程序设计技术n子程序设计技术子程序设计技术n综合程序设计示例综合程序设计示例汇编语

2、言程序设计汇编语言程序设计算法算法 所谓算法,简单地说就是计算机能所谓算法,简单地说就是计算机能够实现的有限的解题步骤。我们知道,够实现的有限的解题步骤。我们知道,计算机只能进行最基本的算术运算和逻计算机只能进行最基本的算术运算和逻辑运算,要完成较为复杂的运算和控制辑运算,要完成较为复杂的运算和控制操作,必须选择合适的算法,这是正确操作,必须选择合适的算法,这是正确编程的基础。编程的基础。若题目涉及到某种运算,则必须写若题目涉及到某种运算,则必须写出适合程序设计的正确算法,若题目要出适合程序设计的正确算法,若题目要完成的功能未涉及到运算,也要写出编完成的功能未涉及到运算,也要写出编程思想。程思

3、想。汇编语言程序设计汇编语言程序设计设计流程设计流程 将提出的算法或编程思想用将提出的算法或编程思想用流程图的方式画出来。图流程图的方式画出来。图4.14.1给给出了流程图中较为通用的几种符出了流程图中较为通用的几种符号。号。汇编语言程序设计汇编语言程序设计起始和终止框起始和终止框执行框执行框判断框判断框连接框连接框汇编语言程序设计汇编语言程序设计图图4.1 4.1 流程图符号流程图符号根据流程图编写程序根据流程图编写程序 编写程序是采用程序设计语言编写程序是采用程序设计语言来实现上面已确定的算法,此过程来实现上面已确定的算法,此过程有些书上称为编码。本书所介绍的有些书上称为编码。本书所介绍的

4、是采用汇编语言编写程序。采用汇是采用汇编语言编写程序。采用汇编语言编写程序应注意以下几个问编语言编写程序应注意以下几个问题:题:汇编语言程序设计汇编语言程序设计(1 1)必须详细了解必须详细了解CPUCPU的编程模型、指令系统、的编程模型、指令系统、寻址方式及相关伪指令;寻址方式及相关伪指令;(2 2)必须进行存储空间和工作单元的合理分配;)必须进行存储空间和工作单元的合理分配;(3 3)多次使用的程序段可采用子程序或宏指令;)多次使用的程序段可采用子程序或宏指令;(4 4)尽可能用标号或变量来代替绝对地址和常数;)尽可能用标号或变量来代替绝对地址和常数;汇编语言程序设计汇编语言程序设计程序的

5、检验程序的检验 程序编写好以后,必须经过书程序编写好以后,必须经过书面检查和上机调试,以便说明程序面检查和上机调试,以便说明程序是否正确。检验时,应预先选择典是否正确。检验时,应预先选择典型数据,检查是否可以得到预期结型数据,检查是否可以得到预期结果。果。汇编语言程序设计汇编语言程序设计编写说明文件编写说明文件 一个完整的软件应有相应的说明文一个完整的软件应有相应的说明文件,这不仅便于用户使用,也便于对程件,这不仅便于用户使用,也便于对程序的维护和扩充。说明文件主要应包括序的维护和扩充。说明文件主要应包括程序的功能和使用方法,程序的基本结程序的功能和使用方法,程序的基本结构和所采用的主要算法以

6、及程序必要说构和所采用的主要算法以及程序必要说明和注意事项等。明和注意事项等。汇编语言程序设计汇编语言程序设计 我们知道,我们知道,8086/8088 CPU8086/8088 CPU的地址空间是分段的地址空间是分段结构的,程序中出现的数据与代码以及程序中用到结构的,程序中出现的数据与代码以及程序中用到的堆栈都必须纳入某个段中。那么,如何告诉汇编的堆栈都必须纳入某个段中。那么,如何告诉汇编程序,源程序中的哪些内容属于数据段,哪些属于程序,源程序中的哪些内容属于数据段,哪些属于代码段呢?这自然是由汇编系统中提供的伪指令来代码段呢?这自然是由汇编系统中提供的伪指令来实现的。下面我们首先介绍构成完整

7、程序的有关伪实现的。下面我们首先介绍构成完整程序的有关伪指令。指令。汇编语言程序设计基础汇编语言程序设计基础汇编语言源程序的完整结构汇编语言源程序的完整结构 STACK SEGMENT STACK STACK SEGMENT STACK DB 256 DUP(?)DB 256 DUP(?)TOP LABEL WORD TOP LABEL WORD STACK ENDS STACK ENDS DATA1 SEGMENT DATA1 SEGMENT DATA1 ENDS DATA1 ENDS用用DBDB、DWDW等伪指令定义的段的实体等伪指令定义的段的实体汇编语言程序设计基础汇编语言程序设计基础

8、DATA2 SEGMENT DATA2 SEGMENT DATA2 ENDS DATA2 ENDS CODE SEGMENT CODE SEGMENT ASSUME CS:CODE,DS:DATA1 ASSUME CS:CODE,DS:DATA1 ASSUME ES:DATA2,SS:STACK ASSUME ES:DATA2,SS:STACK START:MOV AX,DATA1 START:MOV AX,DATA1 MOV DS,AX MOV DS,AX ;DSDS初始化初始化 MOV AX,DATA2MOV AX,DATA2 MOV ES,AX MOV ES,AX ;ESES初始化初始化

9、用用DBDB、DWDW等伪指令定义的段的实体等伪指令定义的段的实体汇编语言程序设计基础汇编语言程序设计基础 MOV AX,STACK MOV AX,STACK MOV SS,AX MOV SS,AX ;SSSS初始化初始化 MOV SP,OFFSET TOPMOV SP,OFFSET TOP MOV AH,4CH MOV AH,4CH INT 21H INT 21H ;程序结束,返回;程序结束,返回DOSDOS操作系统操作系统 CODE ENDS CODE ENDS ;代码段定义结束;代码段定义结束 END START END START ;整个程序结束;整个程序结束.用指令语句编写的完成某一

10、功能的用指令语句编写的完成某一功能的程序体。程序体。汇编语言程序设计基础汇编语言程序设计基础1.1.段定义伪指令段定义伪指令格式:格式:段名段名 SEGMENT SEGMENT 定位类型定位类型组合类型组合类型类型类型 ;段定义开始伪指令段定义开始伪指令 指令语句或伪指令语句组成的段的实体指令语句或伪指令语句组成的段的实体段名段名 ENDS ;ENDS ;段定义结束伪指令段定义结束伪指令汇编语言程序设计基础汇编语言程序设计基础段名:段名:段名是所定义的段的名称,其构段名是所定义的段的名称,其构 成规则与语句的名称一样。成规则与语句的名称一样。段名一但定义,就具备了以下段名一但定义,就具备了以下

11、5 5个属性。个属性。段地址段地址段内偏移地址段内偏移地址定位类型定位类型组合类型组合类型类别类别汇编语言程序设计基础汇编语言程序设计基础 其中,格式中的定位类型、其中,格式中的定位类型、组合类型和类别外面的方括号不组合类型和类别外面的方括号不是语法符号,它表示该项是可以是语法符号,它表示该项是可以省略的。省略的。汇编语言程序设计基础汇编语言程序设计基础在段定义时,在段定义时,SEGMENTSEGMENT与与ENDSENDS必必须成对出现。须成对出现。SEGMENTSEGMENT与与ENDSENDS左边的段名必左边的段名必须一致。须一致。汇编语言程序设计基础汇编语言程序设计基础定位类型:定位类

12、型:告诉汇编程序(告诉汇编程序(MASM.EXEMASM.EXE)对)对该段汇编时,该段的起始边界的要该段汇编时,该段的起始边界的要求。其类型有求。其类型有PAGEPAGE、PARAPARA、WORDWORD、BYTEBYTE四种。这四种类型的边界地址四种。这四种类型的边界地址的要求如下:的要求如下:汇编语言程序设计基础汇编语言程序设计基础PAGE=XXXX XXXX XXXX 0000 0000PAGE=XXXX XXXX XXXX 0000 0000PARA=XXXX XXXX XXXX XXXX 0000 PARA=XXXX XXXX XXXX XXXX 0000(缺省型缺省型)WORD

13、=XXXX XXXX XXXX XXXX XXX0WORD=XXXX XXXX XXXX XXXX XXX0BYTE=XXXX XXXX XXXX XXXX XXXXBYTE=XXXX XXXX XXXX XXXX XXXX 即它们的边界地址(即它们的边界地址(2020位地址)应分位地址)应分别可以被别可以被256256、1616、2 2、1 1除尽,分别称为以除尽,分别称为以页、节、字、字节为边界。页、节、字、字节为边界。汇编语言程序设计基础汇编语言程序设计基础 在实际应用中,每个段的定位类型在实际应用中,每个段的定位类型常选常选PARAPARA(节)型。(节)型。因为若选因为若选PAGEP

14、AGE(页)(页)型,将会使相邻的段间有较大空间的浪型,将会使相邻的段间有较大空间的浪费;而选费;而选WORDWORD或或BYTEBYTE型,又很难做到使型,又很难做到使一个段的偏移地址从一个段的偏移地址从0000H0000H开始。开始。汇编语言程序设计基础汇编语言程序设计基础组合类型:组合类型:告诉连接程序(告诉连接程序(LINK.EXELINK.EXE)在进行多模)在进行多模块目标程序连接时,该段与其它段连接的有块目标程序连接时,该段与其它段连接的有关信息,如本段与其它段是否组合为同一段;关信息,如本段与其它段是否组合为同一段;组合后,本段信息与其他段信息的关系如何组合后,本段信息与其他段

15、信息的关系如何等。组合类型有以下等。组合类型有以下6 6种不同的类型:种不同的类型:汇编语言程序设计基础汇编语言程序设计基础NONENONE型:型:表示本段与不同模块中的其它段表示本段与不同模块中的其它段在逻辑上不发生关系。连接后各模块中的在逻辑上不发生关系。连接后各模块中的各段都有自己的段地址(也称基地址)。各段都有自己的段地址(也称基地址)。STACKSTACK型:型:组合后的这个段用作堆栈。当组合后的这个段用作堆栈。当段定义中指明了段定义中指明了STACKSTACK类型后,说明堆栈类型后,说明堆栈段已经确定,所以,在可执行文件装入内段已经确定,所以,在可执行文件装入内存后段寄存器存后段寄

16、存器SSSS中已是该段的段地址,堆中已是该段的段地址,堆栈指针栈指针SPSP已指向堆栈底。已指向堆栈底。汇编语言程序设计基础汇编语言程序设计基础PUBLICPUBLIC型型 COMMONCOMMON型型 ATAT表达式型表达式型 MEMORYMEMORY型型汇编语言程序设计基础汇编语言程序设计基础类别:类别:类别可以使任何一个合法的名称,类别可以使任何一个合法的名称,但必须用单引号括起来。在多模块程序但必须用单引号括起来。在多模块程序设计中,连接时,将把不同模块中相同设计中,连接时,将把不同模块中相同类别类别的各段在物理上相邻地连接在的各段在物理上相邻地连接在一起,其顺序亦与一起,其顺序亦与L

17、INKLINK时提供的各模块时提供的各模块顺序一致。当类别相同的各段的段名不顺序一致。当类别相同的各段的段名不同时,它们连接后虽在同一物理段内,同时,它们连接后虽在同一物理段内,但但汇编语言程序设计基础汇编语言程序设计基础它们仍不属于同一段,也就是它们的段基址它们仍不属于同一段,也就是它们的段基址不相同。这样做的一个好处是便于程序的固不相同。这样做的一个好处是便于程序的固化。在编程时,它们都是独立的代码段,各化。在编程时,它们都是独立的代码段,各段有各自的段基址,但连接后,他们却在同段有各自的段基址,但连接后,他们却在同一物理段,从而可以固化在一起。一物理段,从而可以固化在一起。在单模块程序设

18、计中,类别可有可无。若在单模块程序设计中,类别可有可无。若有,它只是告知程序阅读者本段信息的含义。有,它只是告知程序阅读者本段信息的含义。汇编语言程序设计基础汇编语言程序设计基础2.2.汇编语言源程序的完整结构汇编语言源程序的完整结构 STACK SEGMENT STACK STACK SEGMENT STACK DB 256 DUP(?)DB 256 DUP(?)TOP LABEL WORD TOP LABEL WORD STACK ENDS STACK ENDS DATA1 SEGMENT DATA1 SEGMENT DATA1 ENDS DATA1 ENDS用用DBDB、DWDW等伪指令

19、定义的段的实体等伪指令定义的段的实体汇编语言程序设计基础汇编语言程序设计基础 DATA2 SEGMENT DATA2 SEGMENT DATA2 ENDS DATA2 ENDS CODE SEGMENT CODE SEGMENT ASSUME CS:CODE,DS:DATA1 ASSUME CS:CODE,DS:DATA1 ASSUME ES:DATA2,SS:STACK ASSUME ES:DATA2,SS:STACK START:MOV AX,DATA1 START:MOV AX,DATA1 MOV DS,AX MOV DS,AX ;DSDS初始化初始化 MOV AX,DATA2MOV A

20、X,DATA2 MOV ES,AX MOV ES,AX ;ESES初始化初始化用用DBDB、DWDW等伪指令定义的段的实体等伪指令定义的段的实体汇编语言程序设计基础汇编语言程序设计基础 MOV AX,STACK MOV AX,STACK MOV SS,AX MOV SS,AX ;SSSS初始化初始化 MOV SP,OFFSET TOPMOV SP,OFFSET TOP MOV AH,4CH MOV AH,4CH INT 21H INT 21H ;程序结束,返回;程序结束,返回DOSDOS操作系统操作系统 CODE ENDS CODE ENDS ;代码段定义结束;代码段定义结束 END STAR

21、T END START ;整个程序结束;整个程序结束.用指令语句编写的完成某一功能的用指令语句编写的完成某一功能的程序体。程序体。汇编语言程序设计基础汇编语言程序设计基础3.3.LABELLABEL伪指令伪指令 格式中的类型有格式中的类型有BYTEBYTE、WORDWORD、DWORDDWORD、结构名、记录名、结构名、记录名、NEARNEAR、FARFAR共共7 7种种。前。前5 5种属种属于变量的类型,后两种是属于标号的类型。于变量的类型,后两种是属于标号的类型。结构和记录是由伪指令定义的两种数据类型结构和记录是由伪指令定义的两种数据类型(关于这两种数据类型的定义在此就不在叙述,关于这两种

22、数据类型的定义在此就不在叙述,请参阅有关资料)。请参阅有关资料)。格式格式:名称名称 LABEL LABEL 类型类型汇编语言程序设计基础汇编语言程序设计基础 格式中的名称就是语句的名称,为一标格式中的名称就是语句的名称,为一标识符,若后面的类型是前识符,若后面的类型是前5 5种之一,那么该名种之一,那么该名称就是变量名;当类型为后两种时,该名称称就是变量名;当类型为后两种时,该名称就是标号。我们已经知道,变量与标号除具就是标号。我们已经知道,变量与标号除具有类型属性外,还具有段地址和偏移地址的有类型属性外,还具有段地址和偏移地址的属性,名称的这两个属性就是汇编程序汇编属性,名称的这两个属性就

23、是汇编程序汇编到该语句时语句所在的段地址和偏移地址。到该语句时语句所在的段地址和偏移地址。汇编语言程序设计基础汇编语言程序设计基础如前面定义的堆栈段:如前面定义的堆栈段:STACK SEGMENT STACK STACK SEGMENT STACK DB 256 DUP(?)DB 256 DUP(?)TOP LABEL WORD TOP LABEL WORD STACK ENDS STACK ENDS 由于由于STACKSTACK段内的偏移地址开始为段内的偏移地址开始为0000H0000H,段内留出了段内留出了256256个字节作为堆栈区,因此汇编个字节作为堆栈区,因此汇编到到TOPTOP处时

24、,偏移地址为处时,偏移地址为0100H0100H。汇编语言程序设计基础汇编语言程序设计基础汇编情况如下图所示:汇编情况如下图所示:256B256B堆栈区堆栈区SS:0000HSS:0000HTOPTOPSS:00FFHSS:00FFH0100H0100HTOPTOP具有该单具有该单元的偏移地址元的偏移地址属性,但不占属性,但不占用该单元。用该单元。汇编语言程序设计基础汇编语言程序设计基础 由于堆栈指针由于堆栈指针SPSP初始化后要指向栈底初始化后要指向栈底+1+1单元,所以上述程序段中有:单元,所以上述程序段中有:MOV AX,STACK MOV AX,STACK MOV SS,AX MOV

25、SS,AX MOV SP,OFFSET TOP MOV SP,OFFSET TOP此段程序完成对此段程序完成对SSSS、SPSP的初始化的初始化汇编语言程序设计基础汇编语言程序设计基础 又由于前面介绍组合类型时,介绍了若又由于前面介绍组合类型时,介绍了若某段定义时,其组合类型选为某段定义时,其组合类型选为STACKSTACK型,系统型,系统默认该段为堆栈段。所以,在可执行文件装默认该段为堆栈段。所以,在可执行文件装入内存后,段寄存器入内存后,段寄存器SSSS中已是该段的段基址,中已是该段的段基址,堆栈指针堆栈指针SPSP已指向堆栈底已指向堆栈底+1+1单元的偏移地址。单元的偏移地址。因此,在程

26、序设计时,程序段就不用给因此,在程序设计时,程序段就不用给SSSS、SP SP 初始化了。初始化了。汇编语言程序设计基础汇编语言程序设计基础 MOV AX,STACK MOV AX,STACK MOV SS,AX MOV SS,AX MOV SP,OFFSET TOP MOV SP,OFFSET TOP这段程序可以缺省。这段程序可以缺省。即:即:汇编语言程序设计基础汇编语言程序设计基础 LABEL LABEL伪指令的功能是定义某变量名或标伪指令的功能是定义某变量名或标号的类型的。它虽具有段地址与偏移地址的号的类型的。它虽具有段地址与偏移地址的属性,但它不占内存单元。属性,但它不占内存单元。例如

27、:例如:BARRAY LABEL BYTEBARRAY LABEL BYTE AARRAY DW 100 DUP(?)AARRAY DW 100 DUP(?)汇编语言程序设计基础汇编语言程序设计基础 上面定义了两种类型的变量,上面定义了两种类型的变量,BARRAYBARRAY为为字节类型,字节类型,AARRAYAARRAY为字类型,它们的段和偏为字类型,它们的段和偏移地址属性完全相同,都是下面保留的移地址属性完全相同,都是下面保留的100100个个字空间的首地址,其目的是为了程序中可以字空间的首地址,其目的是为了程序中可以对这对这100100个字空间作两种不同类型的操作。这个字空间作两种不同类

28、型的操作。这一点上,一点上,LABELLABEL的作用与前面介绍的的作用与前面介绍的PTRPTR操作操作符的作用相类似。符的作用相类似。汇编语言程序设计基础汇编语言程序设计基础BARRAYBARRAY100100个字空间个字空间AARRAYAARRAY汇编语言程序设计基础汇编语言程序设计基础 当需要对该当需要对该100100个字空间进行字个字空间进行字操作时,可利用操作时,可利用AARRAYAARRAY字变量。如字变量。如下面指令格式是正确的。下面指令格式是正确的。MOV AX,AARRAYMOV AX,AARRAY汇编语言程序设计基础汇编语言程序设计基础 当需要对该当需要对该100100个字

29、空间进行字节操个字空间进行字节操作时,可利用作时,可利用BRRAYBRRAY字节变量。如下面指字节变量。如下面指令格式是正确的。令格式是正确的。MOV AL,BARRAYMOV AL,BARRAY MOV AL MOV AL,BYTE PTR AARRAYBYTE PTR AARRAY等效于等效于汇编语言程序设计基础汇编语言程序设计基础4.ASSUME4.ASSUME伪指令伪指令 ASSUME ASSUME伪指令告诉汇编程序(伪指令告诉汇编程序(MASM.EXEMASM.EXE)在对源程序汇编时,源程序中的段名与哪个在对源程序汇编时,源程序中的段名与哪个段寄存器建立关系。这种关系只是一种承诺段

30、寄存器建立关系。这种关系只是一种承诺关系,汇编程序对源程序汇编时,承认这种关系,汇编程序对源程序汇编时,承认这种关系,但段寄存器的值并未确定,用户必须关系,但段寄存器的值并未确定,用户必须在代码段一开始用在代码段一开始用MOVMOV指令对指令对DSDS、ESES、SSSS初始初始化。化。汇编语言程序设计基础汇编语言程序设计基础 START START:MOV AXMOV AX,DATA1DATA1 MOV DS MOV DS,AX AX ;对;对DSDS初始化初始化 MOV AXMOV AX,DATA2DATA2 MOV ES MOV ES,AX AX ;对;对ESES初始化初始化 MOV A

31、XMOV AX,STACKSTACK MOV SS MOV SS,AX AX ;对;对SSSS初始化初始化 如前面完整结构程序中的下段程序:如前面完整结构程序中的下段程序:汇编语言程序设计基础汇编语言程序设计基础 因为因为CSCS不能做不能做DSTDST,所以用户不,所以用户不能对能对CSCS初始化,初始化,CSCS和和IPIP的初始化是的初始化是系统赋给的,其方法见下面的系统赋给的,其方法见下面的ENDEND伪指令介绍。伪指令介绍。汇编语言程序设计基础汇编语言程序设计基础5.END5.END伪指令伪指令 格式:格式:END END 表达式表达式 该伪指令标志整个源程序的结束。它告该伪指令标志

32、整个源程序的结束。它告诉汇编程序汇编到此结束。所以,每个单独诉汇编程序汇编到此结束。所以,每个单独汇编的源程序的结尾必须有汇编的源程序的结尾必须有ENDEND伪指令。格式伪指令。格式中的表达式是该程序运行时的启动地址,它中的表达式是该程序运行时的启动地址,它通常是可执行语句的标号。通常是可执行语句的标号。汇编语言程序设计基础汇编语言程序设计基础如前面完整结构程序中的最后有:如前面完整结构程序中的最后有:MOV AHMOV AH,4CH4CH INT 21H INT 21HCODE ENDSCODE ENDS END START END START 总汇编结束总汇编结束起始地址表达式起始地址表达

33、式汇编语言程序设计基础汇编语言程序设计基础6.=6.=伪指令和伪指令和EQUEQU伪指令伪指令格式:格式:名称名称=表达式表达式名称名称EQU表达式表达式功能:功能:将表达式的值赋给左边的名将表达式的值赋给左边的名称,但表达式的值不能超过称,但表达式的值不能超过65535。汇编语言程序设计基础汇编语言程序设计基础 伪指令本身不占内存空间。它的功能是伪指令本身不占内存空间。它的功能是为格式中的表达式部分赋一个名称。在编写为格式中的表达式部分赋一个名称。在编写源程序时,凡用到表达式值的地方都可以用源程序时,凡用到表达式值的地方都可以用名称(名称(符号常量符号常量)来代替。但汇编时,在出)来代替。但

34、汇编时,在出现名称的地方又用表达式的值取代了该名称,现名称的地方又用表达式的值取代了该名称,例如是一个变量名,那么它将被这个变量名例如是一个变量名,那么它将被这个变量名取代。取代。汇编语言程序设计基础汇编语言程序设计基础 EQU EQU伪指令定义的名称在程序中只能定义伪指令定义的名称在程序中只能定义一次,而用一次,而用 =伪指令定义的名称可以重新定伪指令定义的名称可以重新定义。义。COUNT EQU 5COUNT EQU 5*8 8 BPT =BYTE PTR BPT =BYTE PTR MOV CX MOV CX,COUNT COUNT ;等效于;等效于 MOV CXMOV CX,5 5*8

35、 8 MOV BPTBX MOV BPTBX,0 0;等效于;等效于 MOV BYTE PTR BXMOV BYTE PTR BX,0 0 汇编语言程序设计基础汇编语言程序设计基础7.ORG7.ORG伪指令伪指令格式:格式:ORG表达式表达式 格式中的表达式的值是一个格式中的表达式的值是一个2 2字节字节的无符号数。的无符号数。ORGORG伪指令的功能是指明伪指令的功能是指明该语句下面的指令或者变量在段内的偏该语句下面的指令或者变量在段内的偏移地址。移地址。汇编语言程序设计基础汇编语言程序设计基础例如:例如:ORG 0100HORG 0100H 该伪指令指出,下面指令或变量的偏该伪指令指出,下面指令或变量的偏移地址为移地址为0100H0100H。ORGORG伪指令一般常用于数据段中来伪指令一般常用于数据段中来确定某变量的偏移地址。确定某变量的偏移地址。汇编语言程序设计基础汇编语言程序设计基础

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|