第6章 8086 8088汇编语言程序设计

第6章 8086 8088汇编语言程序设计

ID:40719726

大小:50.50 KB

页数:4页

时间:2019-08-06

第6章 8086 8088汇编语言程序设计_第1页
第6章 8086 8088汇编语言程序设计_第2页
第6章 8086 8088汇编语言程序设计_第3页
第6章 8086 8088汇编语言程序设计_第4页
资源描述:

《第6章 8086 8088汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、68086/8088汇编语言程序设计6.1.1汇编语言的语句格式汇编语句分为指令语句和汇编命令语句。指令语句的格式如下:(标号:)(前缀指令)助记符(操作数);(注释)其中()中的内容是可以省略的,多个操作数间是以逗号隔开的。汇编命令语句不汇编成机器代码,它仅仅在汇编过程中告诉汇编程序应如何编译汇编命令式为汇编程序在编译时用的。汇编命令语句用四个字段组成,格式如下:(名字)助记符(操作数);(注释)当伪指令是数据定义的伪指令时,它称为变量。6.1.2标号、变量及表达式标号是用符号表示的地址。标号有3个属性:段地址、偏移地址和类型。标号的段地址和偏移地址是指标号对应的指令首字节所在的段地

2、址和段内的偏移地址。标号的类型属性有两种:NEAR和FAR类型。在转移和调用指令中常将标号作为转移目标地址使用。变量是与一个数据项的第一字节相对应的标识符。它表示该数据项第一字节在现行段中的偏移量。变量有3个属性:段地址(SEG)、偏移地址(OFFSET)、类型(TYPE)。表达式由运算符和运算对象组成。运算符有算术、逻辑、关系运算符和汇编语言特定的运算符(分析、合成等)运算对象可以是常数、变量和标号,也可以是操作数,还可以是构成程序的段、偏移量或圆括号内的偏移量。6.1.3伪指令伪指令共有20条,常用有以下几条:(1)赋值伪指令EQU,利用EQU指令可用标号来代表数据、数据地址或程序

3、地址。伪指令EQU有两种格式,即A.名称EQU表达式B.名称EQU被定义过的名称或标号(2)定义变量(分配存储单元)伪指令,就是给变量分配内存的伪指令。这些伪指令是DB,DW,DD,DQ,DT。A.当用DW定义地址表达式时,地址表达式中的变量名称表示该变量的第一个存储单元的偏移地址。B.当用DD定义地址表达式时,低字节用预置偏移地址,高位字用于预置段地址。C.地址表达式中的变量或标号可与常数值相加减。对于变量来说运算结果的类型不变;对标号来说,运算结果仍表示原标号段中的偏移地址。D.变量或标号不能相加,但可相减,结果是没有属性的纯数值。(3)定义存储单元类型伪指令(PTR)。这类指令不

4、单独使用,而是和指令结合起来使用。利用这些伪指令,对存储单元指定数据类型。(4)段定义伪指令A.段定义伪指令SEGMENT/ENDS主要是用来定义段的名称和范围,还可指明段的定位类型、组合类型和分类名。段定义伪指令的格式是:段名1SEGMENT[定位类型][组合类型][分类名]┆段名1ENDS当定义数据段、附加数据和堆栈段时,在SEGMENT/ENDS伪指令中间的语句,只能包括伪指令语句,不能包括指令语句。只有当SEGMENT/ENDS定义代码段时,中间的语句才能为指令语句以及与指令有关的伪指令语句。由SEGMENT/ENDS所定义的段小于64KB。B.OGR伪指令。该指令用来规定目标

5、程序存放单元的偏移量。它的格式如下:ORG表达式该指令前面不能带标识符。C.ASSUME伪指令。该指令语句用来告诉汇编程序在指令执行期间内存的哪一段是数据段,哪一段是堆栈段,哪一段是代码段。该指令的格式为:ASSUME段寄存器名:段名符[,段寄存器名:段名符,…]ASSUME语句只能安排在代码段内,一般应排在代码段作为首指令。(5)定义过程的伪指令有PROC,ENDP,NEAR和FAR。一个过程可以被其他程序所调用,它的最后一条指令总是返回指令,返回到主程序。定义过程的伪指令总是成对出现的,在这两条伪指令间的内容就作为一个过程,即一个子程序。(6)定义结构的伪指令STRUC/ENDS。

6、定义结构伪指令的格式如下:结构名称STRUC┆由DB,DW,DD伪指令所组成的语句序列字段标识符结构名称ENDS结构定义并不保留任何存储空间,也不为任何存储单元赋值,它仅仅是一种模式。因而在引用结构和其字段之前,必须为结构分配空间或赋值。要给结构分配存储空间或赋值,必须有一个引用该结构的语句,其格式如下:变量结构名称<赋值说明>访问结构的方法是:变量名,字段名(7)源程序结束伪指令END。该指令表明了源程序的终结,其格式如下:END表达式(表达式通常就是程序第一条指令的语句标号)6.1.4分支程序设计程序的分支主要是靠条件转移指令来实现。这里需要注意的是条件转移语句都是近程跳转。若程序

7、所要转移的地址超出其范围时,需利用一条无条件转移语句作为中转。6.1.5循环程序设计循环程序设计主要用于某些需要重复进行的操作,主要使用循环指令LOOP,LOOPZ或LOOPNZ或条件转移指令。循环程序的设计可分为设置循环初始状态、循环体和循环控制条件三部分。(1)设置循环初始状态主要是指设置次数的计数初值,以及其他为能使循环体正常工作而设置的初始状态等。(2)循环体是循环操作(重复执行)的部分,包括循环的工作部分及修改部分。循环的工作部分是实

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

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

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