ch4 汇编语言程序设计基本方法.pptx
《ch4 汇编语言程序设计基本方法.pptx》由会员分享,可在线阅读,更多相关《ch4 汇编语言程序设计基本方法.pptx(340页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第四章第四章汇编语言程序设计基本方法汇编语言程序设计基本方法l全面掌握全面掌握8086CPU指令系统的使用指令系统的使用,包括包括:指令的指令的功能功能,寻址方法及其书写格式寻址方法及其书写格式,对对标志位标志位的影响的影响,使用使用注意事项注意事项.l掌握汇编语言程序设计所必须的掌握汇编语言程序设计所必须的伪指令伪指令,并由此构并由此构成汇编语言程序的完整结构成汇编语言程序的完整结构.l掌握掌握变量变量,常量常量和一些常用的基本程序设计方法和一些常用的基本程序设计方法,如如:分支程序分支程序,循环程序循环程序,子程序子程序,堆栈使用以及宏指令堆栈使用以及宏指令,字字符串操作符串操作等的内容
2、等的内容.微型计算机原理与应用(西电科大通院)2指令的执行过程指令的执行过程微型计算机原理与应用(西电科大通院)34.1 4.1 汇编语言基本概念汇编语言基本概念l4.1.1汇编语言和机器语言汇编语言和机器语言汇编语言和机器语言属于低级语言汇编语言和机器语言属于低级语言汇编语言中的语句与机器的型号密切相关汇编语言中的语句与机器的型号密切相关:即即CPU不同不同,其指令系统就不同其指令系统就不同,书写格式也不同书写格式也不同.如如:语句语句X=A+B高级语言的操作高级语言的操作:给变量给变量A,B赋初值赋初值,汇编语言的操作汇编语言的操作:whereistheAandB?whereshouldt
3、heresultbeput?显然,汇编语言在通过程序告诉计算机做什么?如何做?时,更加具体!正是这种具体,使得该语言与计算机(CPU)紧密相关,也要求学习和使用汇编语言的人对处理器的结构更加的深入!微型计算机原理与应用(西电科大通院)41.机器语言机器语言:l机器机器(CPU)能直接认识的一种二进制代码语言能直接认识的一种二进制代码语言.CPU能认识的一组二进制代码就是一条指令能认识的一组二进制代码就是一条指令.如如:B0H12H告诉告诉CPU将将(AL)12H告诉告诉CPU将将(AX)+2(AX)05H02H00H一条二进制的指令代码一条二进制的指令代码,或者机器语言代码或者机器语言代码微型
4、计算机原理与应用(西电科大通院)5机器语言程序的特点机器语言程序的特点l采用机器语言编写的程序采用机器语言编写的程序,即即:二进制代码程序二进制代码程序l优点优点:程序送入计算机后程序送入计算机后,CPU可以直接运行可以直接运行l缺点缺点:不易书写不易书写,不易检查不易检查,编写程序困难编写程序困难微型计算机原理与应用(西电科大通院)6汇编语言汇编语言(Assemble Language)l一种面向机器的程序设计语言,是一种用符号表示的一种面向机器的程序设计语言,是一种用符号表示的低级程序设计语言(低级程序设计语言(机器语言的符号化描述机器语言的符号化描述,如如:一组字一组字母母,数字和符号)
5、,通常是为特定计算机或计算机系列数字和符号),通常是为特定计算机或计算机系列专门设计的。专门设计的。l汇编语言程序汇编语言程序:用汇编语言编写的程序用汇编语言编写的程序(或称或称:汇编语言汇编语言源程序源程序).这种编程方法称为这种编程方法称为汇编语言程序设计汇编语言程序设计.l汇编语言源程序名必须为汇编语言源程序名必须为:文件名文件名.ASM用用MOVAL,12H代替代替B012H用用ADDAX,0002H代替代替050200H微型计算机原理与应用(西电科大通院)7l用汇编语言编写的程序不能用汇编语言编写的程序不能由机器直接执行,而必须经由机器直接执行,而必须经汇编程序翻译成机器语言程汇编程
6、序翻译成机器语言程序。汇编语言指令与翻译成序。汇编语言指令与翻译成的机器语言指令之间基本是的机器语言指令之间基本是一一对应的关系。一一对应的关系。l汇编过程示意汇编过程示意:微型计算机原理与应用(西电科大通院)8采用汇编语言进行程序设计的优点采用汇编语言进行程序设计的优点l可充分利用机器的硬件功能和结构特点,加快程序的执行速度,可充分利用机器的硬件功能和结构特点,加快程序的执行速度,减少目标程序所占用的存储空间减少目标程序所占用的存储空间l常用来编写常用来编写实时控制程序、实时通信程序实时控制程序、实时通信程序,有时也用来编制某些,有时也用来编制某些系统软件程序。系统软件程序。l要比一串二进制
7、代码清晰要比一串二进制代码清晰,书写容易书写容易,记忆方便记忆方便缺点:缺点:1.与高级语言比与高级语言比,编程效率低(与人们描述计算过程的需要差距大)编程效率低(与人们描述计算过程的需要差距大)2.与机器硬件的具体结构联系过于紧密与机器硬件的具体结构联系过于紧密在一种结构的机器上开发在一种结构的机器上开发的程序极难移植到另一种不同结构的机器上去。的程序极难移植到另一种不同结构的机器上去。3.与低级语言比与低级语言比,CPU不能直接执行不能直接执行,用汇编语言编写的汇编语言源程用汇编语言编写的汇编语言源程序必须经过汇编序必须经过汇编,翻译称机器语言格式翻译称机器语言格式,CPU才能执行才能执行
8、.微型计算机原理与应用(西电科大通院)9l汇编汇编:把汇编语言源程序翻译成机器语言的过程把汇编语言源程序翻译成机器语言的过程l汇编程序汇编程序:能把语言源程序翻译成机器语言的系能把语言源程序翻译成机器语言的系统程序统程序(语言加工程序语言加工程序).8086宏汇编程序为宏汇编程序为MASM.EXEl如如:机器语言程序机器语言程序B012H050200H汇编语言源程序汇编语言源程序MOVAL,12HADDAX,0002H汇编程序汇编程序MASM.EXE汇编汇编反汇编反汇编(在在DEBUG.EXE下进行下进行)微型计算机原理与应用(西电科大通院)10汇编语言源程序汇编语言源程序可执行程序可执行程序
9、用全屏幕用全屏幕编辑编辑软件编辑软件编辑汇编语言源程序汇编语言源程序文件名文件名.ASM用汇编程序用汇编程序MASM.EXE对源程序对源程序文件名文件名.ASM进行进行汇编汇编用连接程用连接程LINK.EXE对对文件名文件名.OBJ进行进行连接连接在磁盘上形成可在磁盘上形成可执行执行文件文件文件名文件名.EXE在磁盘是形成在磁盘是形成目标程序目标程序文件文件文件名文件名.OBJ有语法错误?有错误?有有没没没没有有微型计算机原理与应用(西电科大通院)117.1.2汇编语言源程序的组成汇编语言源程序的组成l汇编语言程序中汇编语言程序中,程序的语句有三类程序的语句有三类:指令语句指令语句:汇编后能产
10、生机器语言代码汇编后能产生机器语言代码,是是CPU能执行的语句能执行的语句伪指令语句伪指令语句:说明性的说明性的“指令指令”。这些说明性的。这些说明性的“指令指令”是面是面向汇编程序和连接程序的向汇编程序和连接程序的.宏指令语句宏指令语句:它是它是8086指令系统没有的指令指令系统没有的指令,是用户自己根据宏是用户自己根据宏指令定义的方法自己定义的一条能完成某一特定功能的新的指令定义的方法自己定义的一条能完成某一特定功能的新的指令指令宏汇编程序宏汇编程序5.0版版(MASMV5.0)规定,汇编语言源程序的每行规定,汇编语言源程序的每行只能写一个语句:只能写一个语句:指令语句或伪指令语句指令语句
11、或伪指令语句。行长不能超过。行长不能超过128个字符。每个语句最多可由四个字段组成:个字符。每个语句最多可由四个字段组成:名字字段、名字字段、操作字段、操作数字段和注释字段。操作字段、操作数字段和注释字段。微型计算机原理与应用(西电科大通院)12指令指令/伪指令语句伪指令语句:l汇编语句的格式为:汇编语句的格式为:其中,其中,指令操作助记符指令操作助记符:指出该条语句的基本操作功能,是必须有的部分指出该条语句的基本操作功能,是必须有的部分.而而项可有可无项可有可无,视情况而定。视情况而定。若是指令语句若是指令语句,标识符就是一个标号名标识符就是一个标号名,以以冒号结尾冒号结尾;若是伪指令语句若
12、是伪指令语句,标识符就是变量名或者段名标识符就是变量名或者段名,以以空格结尾空格结尾操作数表达式操作数表达式:可以是常数或表达式可以是常数或表达式(立即数立即数),也可指明操作数所在也可指明操作数所在处的一种说明处的一种说明.标识符标识符操作助记符操作助记符 操作数操作数1,操作数操作数2,;注释注释注释以分号开头,分号右边的内容将被汇编程序忽略。标识符的第一个字符必须是字母,不能为数字,总字符的个数不能超过31个.在起名时,不能与指令系统重名,而且尽量有意义微型计算机原理与应用(西电科大通院)13汇编程序负责计算伪指令语句中表达式的值,解释伪指令语句汇编程序负责计算伪指令语句中表达式的值,解
13、释伪指令语句的含义并遵照的含义并遵照“执行执行”,但并不产生机器代码但并不产生机器代码。汇编程序负责计算指令语句中表达式的值,并汇编程序负责计算指令语句中表达式的值,并将汇编指令翻译将汇编指令翻译成机器指令代码。成机器指令代码。指令语句经汇编后,在可执行程序运行期间由指令语句经汇编后,在可执行程序运行期间由CPU解释,并由解释,并由CPU按指令的要求完成各种运算与操作。按指令的要求完成各种运算与操作。微型计算机原理与应用(西电科大通院)14DATASEGMENT;数据段 NUMDW0011101000000111BNOTESDBTheresultis:,$DATAENDSCODESEGMENT
14、;代码段ASSUMECS:CODE,DS:DATABEGIN:MOVAX,DATAMOVDS,AXMOVDX,OFFSETNOTES;显示提示信息MOVAH,9HINT21HMOVBX,NUM;将数装入BXMOVCH,4;CH作循环计数器 示例程序:微型计算机原理与应用(西电科大通院)15ROTATE:DISPLAY:MOVCL,4 ;CL中放移位位数MOVDL,AL;显示16进制数ROLBX,CLMOVAH,2MOVAL,BLINT21HANDAL,0FH;AL中为一位16进制数DECCHADDAL,30H;转换为ASCII码值JNZROTATECMPAL,9;是09的数码?MOVAX,4C
15、00H;返回DOSJLEDISPLAYINT21HADDAL,07H;在AF之间CODEENDS;代码段结束 ENDBEGIN;模块结束微型计算机原理与应用(西电科大通院)16STACKSEGMENTSTACKSTADB50DUP(?)TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,TOP:CODEENDSENDSTART堆栈段定义格式微型计算机原理与应用(西电科大通院)174.1.3汇编语言的常数和表达式汇编语言的
16、常数和表达式(1)常数、常量常数、常量编程时已经确定其值,程序运行期间不会改变其值的数据对象称为编程时已经确定其值,程序运行期间不会改变其值的数据对象称为常数。常数。8086/8088CPU允许定义四种形式的常数:允许定义四种形式的常数:整数、字符串整数、字符串、“组组合合BCD码数码数”和实数和实数(浮点数浮点数),但只能处理整数、字符串、,但只能处理整数、字符串、“组合组合BCD码数码数”,不能处理实数,不能处理实数(浮点数浮点数)。常数表达式的名字称为常量。常数表达式的名字称为常量。常量可用常量可用伪指令说明符伪指令说明符“EQU”或或“=”定义。例如,定义。例如,AEQU7或或A=7都
17、可将常量都可将常量A的值定义为常数的值定义为常数7。注意:伪指令说明符注意:伪指令说明符EQUEQU左边的符号名不允许重复定义,而左边的符号名不允许重复定义,而“=”左边的符号左边的符号名可以重复定义;名可以重复定义;微型计算机原理与应用(西电科大通院)18数值常数数值常数l按基数不同按基数不同,可有可有等不同的表达式等不同的表达式l如如(AL)12,则有则有:二进制 十进制 八进制 十六进制 MOV AL,12 ;12为十进制数MOV AL,0CH ;0C为十六进制数MOV AL,00001100B ;00001100B为二进制数MOV AL,14O ;14O为八进制数微型计算机原理与应用(
18、西电科大通院)19字符串常数字符串常数l字符串常数是由单引号字符串常数是由单引号括起来的一串字符括起来的一串字符或者单个字符或者单个字符.l如如:MOV DL,A ;(DL)41HBUF DB 12Aa ;将12Aa字符串定义给变量 ;BUF以下连续4个存储单元12Aa微型计算机原理与应用(西电科大通院)20(2)表达式表达式:l表达式由操作数和操作符组成表达式由操作数和操作符组成.算术操作符算术操作符:+,-,*,/,MOD逻辑操作符逻辑操作符:AND,OR,XOR,NOT关系操作符关系操作符:EQ(相等相等),NE(不等不等),LT(小于小于)GT(大于大于),LE(小于或等于小于或等于)
19、,GE(大于或等于大于或等于)属性操作符属性操作符:SEG,OFFSET,TYPE,LENGTH,SIZE属性修改操作符属性修改操作符:PTR微型计算机原理与应用(西电科大通院)21算术操作符算术操作符:MOV DL,5+2+3 ;(DL)11MOV AL,11/2 ;(AL)05HMOV AL,11 MOD 2 ;(AL)01H逻辑操作符逻辑操作符:MOV AL,0CCH AND 0F0H ;(AL)0C0HAND AL,0CCH OR 0F0H ;(AL)0C0H&0FCH微型计算机原理与应用(西电科大通院)23关系操作符关系操作符若关系成立,则为真,取值全1(字节:0FFH;字:0FFF
20、FH);若关系不成立,则为假,取值全0;如:MOV AL,04H LT 05H ;MOV AL,0FFH微型计算机原理与应用(西电科大通院)24属性操作符属性操作符MOV BX,OFFSET TABLE ;BX取变量TABLE单元的偏移地址MOV AX,SEG TABLE ;AX取变量TABLE单元的段地址MOV DL,TYPE TABLE ;DL取变量TABLE的类型SRC均为立即数微型计算机原理与应用(西电科大通院)25变量的属性变量的属性l变量具有下列属性变量具有下列属性:段地址段地址(SEG):变量所在段的段地址变量所在段的段地址偏移地址偏移地址(OFFSET):变量所在段内的偏移地址
21、变量所在段内的偏移地址类型类型(TYPE):每个变量所定义的字节数每个变量所定义的字节数.长度长度(LENGTH):定义的变量个数定义的变量个数.在含有在含有DUP的操作符中的操作符中,重复的次数即个数重复的次数即个数其他各种变量定义中其他各种变量定义中,变量的个数均为变量的个数均为1大小大小(SIZE):分配给同一变量名的所有变量的总字节数分配给同一变量名的所有变量的总字节数,SIZE=TYPELENGTHDB=1;DW=2;DD=4;DQ=8;DT=10;微型计算机原理与应用(西电科大通院)26DATA1DB20HDATA2DW0204H,1000HDATA3DB(-1*3),(15/3)
22、DATA4DD12345HDATA5DB0123DATA6DWAB,C,DDATA8DD?DATA9DB5DUP(00)类型类型长度长度大小大小变量名变量名逻辑地址逻辑地址121412411111111512141245变变量量的的首首地地址址微型计算机原理与应用(西电科大通院)274.1.5 4.1.5 属性操作符及表达式属性操作符及表达式l获取属性的操作符获取属性的操作符:标号或变量一旦确定标号或变量一旦确定,它们它们的属性就唯一确定的属性就唯一确定.SEG变量名或标号变量名或标号OFFSET变量名或标号变量名或标号TYPE变量名或标号变量名或标号LENGTH变量名或标号变量名或标号操作符
23、操作符表达式表达式SEGOFFSETTYPELENGTHSIZESIZE变量名或标号变量名或标号取段地址取段地址取偏移地址取偏移地址取类型取类型取长度取长度表达式的意义表达式的意义取大小取大小微型计算机原理与应用(西电科大通院)28leg:MOVAX,SIZEDATA9MOVAX,SEGDATA1MOVAL,TYPEDATA9DAT3DW5DUP(?)DAT4DBLENGTHDAT3微型计算机原理与应用(西电科大通院)29lPTR操作符操作符格式中的类型可以为格式中的类型可以为:BYTE,WORD,DWORD,NEAR,FAR功能功能:重新定义已定义的变量或标号的类型重新定义已定义的变量或标号
24、的类型Eg:DAT3DW5DUP(?)MOVBYTEPTRDAT3,AL类型类型PTR表达式表达式在该指令中,重新定义;但原来定义的字变量类型并没有修改属性修改操作符属性修改操作符微型计算机原理与应用(西电科大通院)30MOV WORD PTR BX,02H ;(DS:(BX)02H ;(DS:(BX)+1)00H只在本条语句中使用PTR将变量临时修改为字节型变量,脱离了本语句,变量的类型恢复原样微型计算机原理与应用(西电科大通院)31表达式的操作顺序表达式的操作顺序:表达式中常用的伪操作符按以下顺序依次优先处理:(i)()、(ii)LENGTH、WIDTH、SIZE、MASK(iii)(结构
25、字段名操作符结构字段名操作符)(iv):(段超越前缀的操作符段超越前缀的操作符)(v)PTR、OFFSET、SEG、TYPE、THIS(vi)HIGH、LOW(i)+(正号正号)、-(负号负号)(ii)*、/(iii)MOD、SHL、SHR(iv)+、-EQ、NE、LT、LE、GT、GE(i)NOT(ii)AND(iii)OR、XORSHORT例如,因为例如,因为“HIGH”运算优先于运算优先于“+”运算,所以,运算,所以,HIGH 1234H+2=12H+2=14H HIGH(1234H+2)=HIGH 1236H=12H微型计算机原理与应用(西电科大通院)324.1.4标号标号,变量及伪指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ch4 汇编语言程序设计基本方法 汇编语言 程序设计 基本 方法
限制150内