汇编语言基础(2).ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《汇编语言基础(2).ppt》由会员分享,可在线阅读,更多相关《汇编语言基础(2).ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业汇编语言基础汇编语言基础 钱新杰钱新杰宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业掌握语句的格式掌握指示性语句、段定义语句、过程定义语句和指令语句的基本应用掌握汇编语言程序设计的三大基本结构 本次课学习目标宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业1、8086的汇编语言的源程序是分段的,由若干个段形成一个源程序。简述源程序的一般格式?NAME1 SEGMENT 语句语句 语句语句 NAME1 ENDS NAME2 SEGMENT 语句语句 语句语句 NAME2 ENDS END
2、标号标号2、简述标识符的基本应用和定义规则?标识符标识符是由程序员自由建立起来的、有特定意义的字符序列是由程序员自由建立起来的、有特定意义的字符序列。一个标识符是由最多为一个标识符是由最多为31个个字母、数字及规定的特殊字符字母、数字及规定的特殊字符(?_)等组成的等组成的,而,而且且不能用数字打头。不能用数字打头。复习提问宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 一个汇编语言的源程序是由一条条语句组成的,一个汇编语言的源程序是由一条条语句组成的,语句语句(Statements)就是完成一个动作的说明就是完成一个动作的说明。源程。源程序中的语句可分成序中的语句可分成
3、两类两类:指令语句指令语句:汇编程序把它们翻译成机器代码,这汇编程序把它们翻译成机器代码,这些代码命令些代码命令8086执行某些操作。如执行某些操作。如MOV、ADD、JMP等。等。指示性语句指示性语句(伪指令伪指令):汇编程序并不把它们汇编程序并不把它们(也不也不可能可能)翻译成机器代码,只是翻译成机器代码,只是用来指示用来指示、引导汇编程引导汇编程序在汇编时进行一些操作序在汇编时进行一些操作,如,如定义符号定义符号、分配存储分配存储单元单元、初始化存储器初始化存储器等等,所以伪指令本身不占用等等,所以伪指令本身不占用存储单元。存储单元。如如:MY_PLACE DB?INC MY_PLACE
4、语句宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 指令语句的格式为:指令语句的格式为:标号:助记符标号:助记符 参数,参数,参数,参数 ;注释;注释 指示性语句的格式为:指示性语句的格式为:名称名称 命令命令 参数,参数,参数,参数 ;注释;注释 宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 在在IBM宏汇编中有以下几种指示性语句宏汇编中有以下几种指示性语句(Directive statements):(1)符号定义语句符号定义语句(Symbol definition);(2)数据定义语句数据定义语句(Data definition);(3)段定
5、义语句段定义语句(Segmentation definition);(4)过程定义语句过程定义语句(Procedure definition);(5)结束语句结束语句(Termination)。指示性语句宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业1.等值语句等值语句EQU EQU语句给符号名定义一个值,或定语句给符号名定义一个值,或定义为别的符号名,甚至可定义为一条可以义为别的符号名,甚至可定义为一条可以执行的指令等。执行的指令等。EQU语句的格式:语句的格式:NAME EQU EXPRESSION EQU语句在未解除前,不能重新定义。语句在未解除前,不能重新定义。例
6、如:例如:BUFFER_SIZE EQU 32 符号定义语句宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业2.等号等号(Equal sign)语句语句=此语句的此语句的功能与功能与EQU语句类似语句类似,最大特点是,最大特点是能能对符号进行再定义对符号进行再定义。例如:例如:EMP=6 EMP=EMP+13.解除语句解除语句PURGE 已经用已经用EQU命令定义的符号,若以后不再用了命令定义的符号,若以后不再用了就可以用就可以用PURGE语句来解除语句来解除。PURGE语句的语句的格式格式为为:PURCE 符号符号1,符号,符号2,符号,符号n 注意注意:PURGE语句本
7、身不能有名字。用语句本身不能有名字。用PURGE语句解除后的符号可以重新定义。语句解除后的符号可以重新定义。例如:例如:PURGE NEW_PORT NEW_PORT EQU PORT_VAL+10 宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 数据定义语句,为一个数据项分配存储单数据定义语句,为一个数据项分配存储单元,用一个符号名与这个存储单元相联系,且元,用一个符号名与这个存储单元相联系,且为这个数据提供一个任选的初始值。为这个数据提供一个任选的初始值。与数据项相联系的符号名称为变量。数据与数据项相联系的符号名称为变量。数据定义语句的例子如下:定义语句的例子如下:T
8、HINGDB?;定义一个字节定义一个字节BIGGER_THINGDW?;定义一个字定义一个字BIGGEST_THING DD?;定义一个双字定义一个双字 数据定义语句宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 例如:例如:THINGDB25 不仅使不仅使THING这个符号与一个字节的存这个符号与一个字节的存储单元相联系,而且在汇编时会把储单元相联系,而且在汇编时会把25放入与放入与THING相联系的存储单元中。所以相联系的存储单元中。所以THING是是一个字节变量,它的初始值为一个字节变量,它的初始值为25。同样,以下语句:同样,以下语句:BIGGER DW4142H
9、 在汇编时就会把在汇编时就会把41H与与42H分别放至与分别放至与BIGGER_THING相联系的两个连续的字节相联系的两个连续的字节单元中。单元中。宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 下面的语句:下面的语句:BIGGEST DD 12345678H 它定义了一个双字变量,且给了初始值。它定义了一个双字变量,且给了初始值。当汇编程序汇编时遇到当汇编程序汇编时遇到“?”号,则它仍然号,则它仍然为数据项分配相应的存储单元为数据项分配相应的存储单元(DB分配一个字节、分配一个字节、DW分配一个字、分配一个字、DD分配一个双字分配一个双字),但并不,但并不产生一个目标
10、码来初始化这些存储单元。即产生一个目标码来初始化这些存储单元。即“?”号是为了保留若干个存储单元,以便存放号是为了保留若干个存储单元,以便存放指令执行的中间结果。指令执行的中间结果。宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 在实际应用中,还经常会用到由在实际应用中,还经常会用到由字节、字节、字或双字构成的表字或双字构成的表。可由在数据定义语句的参数部分,引入若可由在数据定义语句的参数部分,引入若干个用逗号分隔的参数就可以建立一个表。下干个用逗号分隔的参数就可以建立一个表。下列语句定义了一个包含列语句
11、定义了一个包含2的权的字节的表:的权的字节的表:POWERS_2DB1,2,4,8,16 宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 可以用可以用DUP来缩写若干相同的值。来缩写若干相同的值。DUP利利用给出的一个初值用给出的一个初值(或一组初值或一组初值)以及这些值应以及这些值应该重复的次数来初始化存储器。该重复的次数来初始化存储器。DB 100 DUP(0);100个字节全初始化为个字节全初始化为0DW 100 DUP(0);100个字全初始化为个字全初始化为0DW 10 DUP(?);保留保留10个字个字 宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自
12、动化技术专业 可以用可以用DB数据定义语句在内存中定义一数据定义语句在内存中定义一个字符串。字符串中的每一个字符用它的个字符串。字符串中的每一个字符用它的ASCII码表示,为一个字节,故字符串的定码表示,为一个字节,故字符串的定义必须用义必须用DB命令。命令。有两种定义字符串的方法:有两种定义字符串的方法:一种是字符串中的每一个字符分别定义,每一种是字符串中的每一个字符分别定义,每一个字符之间用逗号分隔;一个字符之间用逗号分隔;另一种方法是在整个字符串的前后都加单引另一种方法是在整个字符串的前后都加单引号,号,例如:例如:EXAM1 DB THIS IS AN EXAMPLE 宜宾职业技术学院
13、电气自动化技术专业宜宾职业技术学院电气自动化技术专业 IBM宏汇编对在程序中涉及的每一个存宏汇编对在程序中涉及的每一个存储单元与一种类型联系起来,这样能对访储单元与一种类型联系起来,这样能对访问存储器的指令产生正确的目标码。例如,问存储器的指令产生正确的目标码。例如,数据定义语句:数据定义语句:SUM DB?告诉汇编程序,告诉汇编程序,SUM是字节类型的是字节类型的,以,以后当遇到如下的指令语句:后当遇到如下的指令语句:INC SUM 汇编程序就产生一个字节增量指令,而汇编程序就产生一个字节增量指令,而不是一个字增量指令。不是一个字增量指令。宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电
14、气自动化技术专业 一个存储单元的类型如下:一个存储单元的类型如下:(1)数据字节数据字节。如。如 SUM DB?;定义一个字节定义一个字节 (2)数据字数据字(两个连续的字节两个连续的字节)。如。如 BIGGER DW?;定义一个字定义一个字 (3)数据双字数据双字(四个连续的字节四个连续的字节)。如。如 BIGGEST DD?;定义一个双字定义一个双字 (4)NEAR指令单元指令单元。如。如 CYCLE:CMPSUM,100 (5)FAR指令单元指令单元。宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业。一个一个NEAR指令单元规定了一个长度为两个字指令单元规定了一个长度
15、为两个字节的指针,即此指令单元在段内的地址偏移量。节的指针,即此指令单元在段内的地址偏移量。获得了此地址偏移量,就可以采用段内的转移或获得了此地址偏移量,就可以采用段内的转移或调用。调用。一个一个FAR指令单元,规定了一个长度为四个字指令单元,规定了一个长度为四个字节的指针,即此指令单元所在段的段地址和段内节的指针,即此指令单元所在段的段地址和段内的地址偏移量。的地址偏移量。只有获取了这四个字节,才能得只有获取了这四个字节,才能得到一个到一个FAR指令单元的全地址,实现交叉的段调指令单元的全地址,实现交叉的段调用或转移。用或转移。宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术
16、专业 分析运算符把存储器地址操作数分解为分析运算符把存储器地址操作数分解为它们的各个组成部分。这些运算符是:它们的各个组成部分。这些运算符是:(1)SEG,(2)OFFSET,(3)TYPE,(4)SIZE,(5)LENGTH。宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 (1)SEG 分析运算符分析运算符SEG,返回的是一个存储单元返回的是一个存储单元的段地址的段地址(即它所在段的起始地址即它所在段的起始地址);故语句:故语句:SEG BUFFER1SEGBUFFER2 是相同的,它们返回的地址都是是相同的,它们返回的地址都是DATA_TABLES的地址。所以,的地址
17、。所以,若要对数据段若要对数据段寄存器初始化寄存器初始化,则可以采用指令:,则可以采用指令:MOVAX,SEG BUFFER1MOVDS,AX 宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 (2)OFFSET OFFSET运算符返回的是每一个存储单元地运算符返回的是每一个存储单元地址的段内偏移量,即它与段地址之间的偏差址的段内偏移量,即它与段地址之间的偏差。(3)TYPE TYPE运算符返回一个数字值,它表示存储运算符返回一个数字值,它表示存储器操作数的类型部分。器操作数的类型部分。字节、字和双字的类型字节、字和双字的类型部分,分别是它们所占有的字节数。部分,分别是它们
18、所占有的字节数。NEAR指令指令单元为单元为-1,FAR指令单元为指令单元为-2。(4)SIZE 分析运算符分析运算符SIZE返回一个为存储器地址操返回一个为存储器地址操作数所分配的字节数作数所分配的字节数。宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 (5)LENGTH LENGTH运算符返回一个与存储器地址运算符返回一个与存储器地址操作数相联系的单元数操作数相联系的单元数(所定义的基本单元的所定义的基本单元的个数个数)。注意:。注意:要用要用LENGTH返回的存储区必返回的存储区必须用须用DUP()来定义,否则返回值为来定义,否则返回值为1。故可以。故可以利用利用L
19、ENGTH运算符对计数器进行初始化。运算符对计数器进行初始化。一般来说,若一个存储单元操作数一般来说,若一个存储单元操作数X,则则 size X=(length X)(type X)宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 段定义的主要命令有:段定义的主要命令有:(1)SEGMENT,(2)ENDS,(3)ASSUME,(4)ORG。(1)SEGMENT,(2)ENDS SEGMENT和和ENDS语句把汇编语言源程语句把汇编语言源程序分成段,这些段就相应于存储器段,在这些序分成段,这些段就相应于存储器段,在这些存储器段中,存放相应段的目标码。存储器段中,存放相应段的
20、目标码。(3)ASSUME 汇编程序必须知道程序的段结构,并知道汇编程序必须知道程序的段结构,并知道在各种指令执行时将访问哪一个段由段寄存器在各种指令执行时将访问哪一个段由段寄存器所指向。这个信息是由所指向。这个信息是由ASSUME语句提供的。语句提供的。段定义语句宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业 通常在汇编语言的源程序中,通常在汇编语言的源程序中,至少要定义码至少要定义码段段(指令段指令段)、堆栈段和数据段,、堆栈段和数据段,有时还要定义附有时还要定义附加段。加段。每一个段必须有一个名称每一个段必须有一个名称,如,如MY_DATA、MY_CODE等。等。一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内