第4章汇编语言设计学习培训模板课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第4章汇编语言设计学习培训模板课件.ppt》由用户(林田)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 设计 学习 培训 模板 课件
- 资源描述:
-
1、第4章 汇编语言设计第第3章学习了章学习了8086硬指令,硬指令,第第4章介绍章介绍MASM基本的伪基本的伪指令。第指令。第4章重点掌握:章重点掌握:程序的格式、开发方法程序的格式、开发方法 参数的表达、变量的定义参数的表达、变量的定义 基本伪指令基本伪指令 程序设计结构程序设计结构硬指令和伪指令硬指令和伪指令n硬指令硬指令使使CPU产生动作、并在程序执产生动作、并在程序执行时才处理的语句,就是第行时才处理的语句,就是第3章学习的处理章学习的处理器指令(助记符指令)器指令(助记符指令)n伪指令伪指令(Directive)不产生不产生CPU动动作、在程序执行前由汇编程序处理的说明性作、在程序执行
2、前由汇编程序处理的说明性语句,例如,数据说明、变量定义等等语句,例如,数据说明、变量定义等等伪指令与具体的处理器类型无关,但与汇编伪指令与具体的处理器类型无关,但与汇编程序的版本有关程序的版本有关2022-11-163内容提要内容提要4.1 汇编语言与汇编程序汇编语言与汇编程序n汇编语言汇编语言是一种面向是一种面向CPUCPU指令系统的程序设指令系统的程序设计语言,它采用指令助记符来表示操作码和计语言,它采用指令助记符来表示操作码和操作数,用符号地址表示操作数地址。操作数,用符号地址表示操作数地址。n汇编语言编写的源程序在输入计算机后,需汇编语言编写的源程序在输入计算机后,需要将其翻译成目标程
3、序,计算机才能执行相要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程称为汇编,完成汇编应指令,这个翻译过程称为汇编,完成汇编任务的程序称为任务的程序称为汇编程序汇编程序。汇编语言源程序汇编语言源程序机器语言目标程序机器语言目标程序汇编程序汇编程序翻译工具翻译工具常用汇编程序常用汇编程序nMASMMASM是是Microsoft公司的汇编器,公司的汇编器,MASM 6.11从从8086可支持到可支持到Pentium CPU。宏汇编宏汇编程序程序MASMEXE是目前在是目前在 PC机上使用较多的机上使用较多的汇编程序。它是采用两遍扫描的方式对源程序进汇编程序。它是采用两遍扫描的方式对源程序
4、进行汇编的。行汇编的。nTASM TASM(Turbo Assembler)是是Borland公公司的汇编器,司的汇编器,TASMTASM的部分语法与的部分语法与MASMMASM不同。不同。TASM 5.0也可以用来汇编也可以用来汇编Win32汇编语言源汇编语言源程序程序。2022-11-16辑辑编编文本编辑器,如文本编辑器,如 EDIT.COM源程序:文件名源程序:文件名.asm编编汇汇汇编程序,如汇编程序,如 TASM.EXE目标模块:文件名目标模块:文件名.obj接接连连连接程序,如连接程序,如TLINK.EXE可执行文件:文件名可执行文件:文件名.exe试试调调调试程序,如调试程序,如
5、 TD.EXE错误错误错误错误错误错误错误错误与上机调试有关的文件类型介绍与上机调试有关的文件类型介绍n源程序文件源程序文件(.asm):在编辑状态下建立的汇编语在编辑状态下建立的汇编语言源程序。言源程序。n目标文件目标文件(.obj):是源程序按模块独立汇编后形是源程序按模块独立汇编后形成的目标代码文件,内含与指令操作码一一对应成的目标代码文件,内含与指令操作码一一对应的二进制机器码,但不能直接运行。的二进制机器码,但不能直接运行。n可执行文件可执行文件(.exe):链接程序将各模块对应的目链接程序将各模块对应的目标程序和汇编语言的库程序文件连接起来,把目标程序和汇编语言的库程序文件连接起来
6、,把目标程序中的相对地址连成物理内存中的绝对地址标程序中的相对地址连成物理内存中的绝对地址,由此产生了可在,由此产生了可在DOS下运行的下运行的.EXE文件。文件。为何学习汇编语言?为何学习汇编语言?n对理解计算机的工作原理有很大意义。对理解计算机的工作原理有很大意义。n能编出高效率的程序,对于小型的微处理器能编出高效率的程序,对于小型的微处理器系统几乎是唯一选择。系统几乎是唯一选择。n能直接控制硬件。能直接控制硬件。n能编出实时性强的程序。能编出实时性强的程序。4.2 汇编语言中的标识符、运算符及操作符汇编语言中的标识符、运算符及操作符一、汇编语言一、汇编语言源程序的组成源程序的组成n三段式
7、结构三段式结构:数据段、堆栈段、代码段数据段、堆栈段、代码段n每段均由伪指令每段均由伪指令SEGMENT开始开始,ENDS结束。结束。n整个源程序用整个源程序用END语句结尾语句结尾,END后面可跟该程后面可跟该程序执行的起始地址序执行的起始地址START。n 这里把主程序建立为过程这里把主程序建立为过程,由由DOS调用该过程调用该过程,进进入程序后将入程序后将DS的内容及的内容及0作段地址和偏移地址入作段地址和偏移地址入栈栈,以便在程序结束时用以便在程序结束时用RET指令返回指令返回DOS。2022-11-1612完整程序具有以下特点:完整程序具有以下特点:二、语句二、语句的构成与规范的构成
8、与规范名字名字 操作符操作符 操作数操作数 ;注释;注释 执行性语句执行性语句由硬指令构成的语句,它通常对由硬指令构成的语句,它通常对应一条机器指令,出现在程序的应一条机器指令,出现在程序的代码段代码段中:中:标号标号:硬指令助记符硬指令助记符 操作数操作数,操作数操作数;注释;注释说明性语句说明性语句由伪指令构成的语句,它通常指由伪指令构成的语句,它通常指示汇编程序如何汇编源程序:示汇编程序如何汇编源程序:名字名字 伪指令助记符伪指令助记符 参数参数,参数参数,;注释;注释2022-11-16131、名字、名字域域n标号标号是反映硬指令位置(是反映硬指令位置(逻辑地址逻辑地址)的)的标识符标
9、识符,后跟一个冒号分隔后跟一个冒号分隔n名字名字是反映伪指令位置(是反映伪指令位置(逻辑地址逻辑地址)和属性的)和属性的标标识符识符,后跟空格或制表符分隔,没有一个冒号,后跟空格或制表符分隔,没有一个冒号n标识符标识符(IdentifierIdentifier)一般最多由一般最多由3131个字母、数个字母、数字及规定的特殊符号(如字及规定的特殊符号(如 _ _、$、?、)组成,不)组成,不能以数字开头。默认情况下,汇编程序不区别标能以数字开头。默认情况下,汇编程序不区别标识符中的字母大小写识符中的字母大小写n一个程序中,每个标识符的定义是唯一的,还不一个程序中,每个标识符的定义是唯一的,还不能
10、是汇编语言采用的保留字能是汇编语言采用的保留字2022-11-16142、操作符、操作符域域n硬指令助记符硬指令助记符可以是任何一条处理器指令,可以是任何一条处理器指令,也可以是一条宏指令也可以是一条宏指令n伪指令助记符伪指令助记符将在本章学习将在本章学习2022-11-16153、操作数、操作数域域n处理器指令的处理器指令的操作数操作数可以是立即数、寄存器可以是立即数、寄存器和存储单元和存储单元n伪指令的伪指令的参数参数可以是常数、变量名、表达式可以是常数、变量名、表达式等,可以有多个,参数之间用逗号分隔等,可以有多个,参数之间用逗号分隔n参数参数是指令的操作对象(在学习硬指令时被是指令的操
11、作对象(在学习硬指令时被称为操作数),参数之间用逗号分隔称为操作数),参数之间用逗号分隔n参数参数根据指令不同可以没有,可以有根据指令不同可以没有,可以有1个、个、2个或多个个或多个2022-11-1616n实现实现+(加法加法)、-(减法减法)、(乘法乘法)、/(除除)、MOD(求余求余)以及以及SHL(左移左移)和和SHR(右移右移)共共七种运算七种运算mov ax,3mov ax,3*4+54+5;等价于等价于 mov ax,17mov ax,17n其中其中MODMOD也称为取模,它产生除法之后的余也称为取模,它产生除法之后的余数,如数,如19 19 mod 7=5mod 7=5n加加+
12、和减和减-运算符还可以用于地址表达式运算符还可以用于地址表达式三、运算符三、运算符移位运算符移位运算符n实现对数值的左移、右移的逻辑操作;移入实现对数值的左移、右移的逻辑操作;移入低位或高位的是低位或高位的是0 0n格式为:格式为:数值表达式数值表达式 SHL/SHR SHL/SHR 移位次数移位次数mov al,0101b SHL(2mov al,0101b SHL(2*2)2);等价于等价于 mov al,01010000bmov al,01010000bn实现按位相与、相或、异或、求反的逻辑运实现按位相与、相或、异或、求反的逻辑运算算or al,03h AND 45hor al,03h
13、AND 45h;等价于等价于 or al,01hor al,01hn关系运算符有关系运算符有 EQ(相等相等)、NE(不相等不相等)、LT(小小于于)GT(大于大于)、LE(小于或等于小于或等于)、GE(大于大于或等于或等于)共六种共六种n关系运算都是双操作数运算,它的运算对象只能关系运算都是双操作数运算,它的运算对象只能是两个性质相同的项目。是两个性质相同的项目。n关系运算的结果只可能是两种情况:即关系成立关系运算的结果只可能是两种情况:即关系成立或不成立。或不成立。当关系成立时,运算结果为全当关系成立时,运算结果为全1,否则,否则为全为全0。MOV AL,3 EQ 2;AL=00HMOV
14、BX,3 GE 2;BX=FFFFH 四、操作符四、操作符n分析操作符分析操作符n合成操作符合成操作符分析操作符是对存储器地址进行运算的。它分析操作符是对存储器地址进行运算的。它可以将存储器地址的三个重要属性,即段、可以将存储器地址的三个重要属性,即段、偏移量和类型分离出来,返回到所在位置作偏移量和类型分离出来,返回到所在位置作操作数使用。操作数使用。分析运算符共有五个:分析运算符共有五个:SEG、OFFSET、TYPE、SIZE和和LENGTH。其中其中SIZE和和LENGTH只对数据存储器地址操作数有效只对数据存储器地址操作数有效。四、操作符四、操作符nSEG(求段基址)求段基址)把把SE
15、G运算符加于一个标号或变量,求出的是该运算符加于一个标号或变量,求出的是该标号或变量所在段基址。标号或变量所在段基址。格式:格式:SEG 变量名或标号名变量名或标号名nOFFSET(求偏移量)求偏移量)把把OFFSET运算符加于一个标号或变量,所求出运算符加于一个标号或变量,所求出的是该标号或变量在段内的偏移量部分。的是该标号或变量在段内的偏移量部分。格式:格式:OFFSET 变量名或标号名变量名或标号名nTYPETYPE运算符可加在变量、结构和标号的前面,运算符可加在变量、结构和标号的前面,所求出的是这些存储器操作数的类型部分。所求出的是这些存储器操作数的类型部分。存储器操作数存储器操作数类
16、型值类型值nLENGTH把把LENGTH运算符加在数组变量的前面,求出该运算符加在数组变量的前面,求出该数组中所包含的变量或结构的个数。数组中所包含的变量或结构的个数。在在8086汇编语言中,汇编语言中,LENGTH运算符只对用运算符只对用DUP定义的变量才有意义,它给出分配给变量的定义的变量才有意义,它给出分配给变量的单元单元(字节、字或双字字节、字或双字)数。数。V1DW 4 DUP(1)MOV AL,LENGTH V1 ;AL4nSIZESIZE和和LENGTH的功能类似,也是只有用于由的功能类似,也是只有用于由DUP定义的变量才有意义,但不同的是它给出的定义的变量才有意义,但不同的是它
17、给出的是一个变量总的字节数。是一个变量总的字节数。SIZE X LENGTH X TYPE XV1DW 4 DUP(1)MOV AL,SIZEV1;AL8n这种操作符为这种操作符为存储器地址操作数存储器地址操作数临时指定一临时指定一个新的属性,而忽略当前的属性,所以又称个新的属性,而忽略当前的属性,所以又称为为属性修改操作符属性修改操作符。n有有3个综合运算符个综合运算符:PTRPTRTHISTHIS段属性前缀段属性前缀PTRnPTR用来生成一个新的存储器地址操作数,但它用来生成一个新的存储器地址操作数,但它本身并不实际分配存储器。本身并不实际分配存储器。格式:格式:类型类型 PTR 存储器地
18、址表达式存储器地址表达式nPTR将它左边的类型指定给右边的地址表达式。将它左边的类型指定给右边的地址表达式。这样一来,这样一来,PTR便产生了一个新的存储器地址操便产生了一个新的存储器地址操作数。这个新的地址操作数具有和作数。这个新的地址操作数具有和PTR右边的地右边的地址表达式一样的段基址和偏移量,即它们指示的址表达式一样的段基址和偏移量,即它们指示的是同一存储单元,但却有不同的类型。是同一存储单元,但却有不同的类型。V1DW 2030HV2EQU BYTE PTR V1THISnTHIS运算符像运算符像PTR一样,可以用来建立一一样,可以用来建立一个特殊类型的存储器地址操作数,而不实际个特
19、殊类型的存储器地址操作数,而不实际为它分配新的存储单元。为它分配新的存储单元。用用THIS建立的存建立的存储器地址操作数的段和偏移量部分与目前所储器地址操作数的段和偏移量部分与目前所能分配的下一个存储单元的段和偏移量相同能分配的下一个存储单元的段和偏移量相同,但类型由,但类型由THIS指定。指定。V2 EQU THIS BYTEV1 DW 2030HTYPE V12TYPE V21段属性前缀段属性前缀n8086的寻址方式中,有一些是隐含指出所的寻址方式中,有一些是隐含指出所规定的段寄存器的。例如,若用规定的段寄存器的。例如,若用BP作基址作基址寻址的单元,则表明此单元位于寻址的单元,则表明此单
20、元位于SS段;而段;而用用BX作基址寻址的单元则位于作基址寻址的单元则位于DS段。但在段。但在某些特例下,需要进行段超越寻址,则应使某些特例下,需要进行段超越寻址,则应使用段属性前缀。用段属性前缀。格式:格式:段寄存器名:地址表达式段寄存器名:地址表达式MOV AX,ES:BXSI4.3 伪指令及其应用伪指令及其应用 伪指令是汇编程序系统软件同程序设计者伪指令是汇编程序系统软件同程序设计者之间的约定,伪指令不翻译成指令码,不指之间的约定,伪指令不翻译成指令码,不指挥挥CPUCPU操作,仅仅告诉汇编程序软件对源程操作,仅仅告诉汇编程序软件对源程序汇编时按何种约定的规则对源程序进行相序汇编时按何种
21、约定的规则对源程序进行相应的处理和安排,随着系统硬、软件的不断应的处理和安排,随着系统硬、软件的不断升级,伪指令也不断增多。升级,伪指令也不断增多。2022-11-1631一、数据一、数据定义及存储器分配伪指令定义及存储器分配伪指令这类指令有:这类指令有:DB、DW、DD、DQ和和DT,它们的作用是将所需要的数据放入指定的存它们的作用是将所需要的数据放入指定的存储单元中,或者是为程序分配指定数目的存储单元中,或者是为程序分配指定数目的存储单元,并根据情况对它们进行初始化。储单元,并根据情况对它们进行初始化。格式:格式:变量名变量名DBDWDDDQDT表达式,表达式,表达式,表达式,;注释注释2
22、022-11-1632nDB:定义定义字节变量字节变量,其后的每一个表达式,其后的每一个表达式占一个字节。占一个字节。nDW:定义定义字变量字变量,其后的每一个表达式的,其后的每一个表达式的值占二个字节,低字节在低地址,高字节在值占二个字节,低字节在低地址,高字节在高地址。高地址。nDD:定义定义双字变量双字变量,其后的每一个表达式,其后的每一个表达式的值占四个字节,同样低字节在低地址,高的值占四个字节,同样低字节在低地址,高字节在高地址。字节在高地址。2022-11-1633n十进制数,以字母十进制数,以字母D或或d结尾,可以省略结尾,可以省略n由由09、AF组成,以字母组成,以字母H或或h
23、结尾结尾n由由0或或1两个数字组成,以字母两个数字组成,以字母B或或b结尾结尾n例如:例如:64H、0FFh、0B800H、01101100B2022-11-1634n表示定义的变量无法确定初值表示定义的变量无法确定初值n DA-B DB?2022-11-1635n用单引号或双引号括起来的单个字符或多个用单引号或双引号括起来的单个字符或多个字符,其数值是每个字符对应的字符,其数值是每个字符对应的ASCII码码的值的值n例如:例如:d=64HAB=4142HHello,Everybody!2022-11-1636n重复操作符重复操作符DUP的应用的应用用用DUP定义重复数据,格式为:定义重复数据
24、,格式为:变量名变量名 DBDWDDDQDT 表达式表达式 DUP(表达式表达式)DUP左边的表达式表示要重复的次数,右左边的表达式表示要重复的次数,右边圆括号中的表达式表示要重复的内容,它边圆括号中的表达式表示要重复的内容,它可以是下列的内容之一:可以是下列的内容之一:一个问号?,表示该单元不初始化,由汇编程序随一个问号?,表示该单元不初始化,由汇编程序随便预置为什么值;便预置为什么值;一个数据项表;一个数据项表;一个数值表达式或地址表达式。一个数值表达式或地址表达式。2022-11-1637DATASEGMENTWD1DW-8,2549HWD2DW BY2BY1DB ABCD$BY2DB
25、2 DUP(-1)DB 25,2,5DD1DD BY2DATA ENDS 2022-11-1638已知已知DS=1234H,画存储单元分配图,画存储单元分配图例 4-7二、符号二、符号定义伪指令定义伪指令EQU和和=nEQU伪指令的作用是把该指令右边的数值伪指令的作用是把该指令右边的数值等价赋值给它左边的符号。等价赋值给它左边的符号。符号名符号名 EQU 表达式表达式其中,表达式可以是一个常数,一个可以求其中,表达式可以是一个常数,一个可以求出常数值的表达式,一个寄存器名或一个指出常数值的表达式,一个寄存器名或一个指令助记符令助记符COUNTEQU 20 COUNT2EQU COUNT10 C
展开阅读全文