《宏汇编语言书》PPT课件.ppt
《《宏汇编语言书》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《宏汇编语言书》PPT课件.ppt(82页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第3 3章章 汇编语言程序格式汇编语言程序格式母亲卡 第3章 汇编语言程序格式汇编语言程序格式 3.1汇编程序功能汇编程序功能3.2伪操作伪操作3.3汇编语言程序格式汇编语言程序格式3.4汇编语言程序的上机过程汇编语言程序的上机过程3.5DOS系统功能调用系统功能调用开开始始第第3 3章章 汇编语言程序格式汇编语言程序格式3.1汇编程序功能汇编程序功能 1.程序的建立及汇编过程程序的建立及汇编过程 用编辑程序建立用编辑程序建立ASM源文件源文件源源文文件件就就是是用用汇汇编编语语言言的的语语句句格格式式编编写写的的程程序序源源程程序序。它它是是不不能能被被机机器器所所识识别别的的,所所以以要
2、要经经过过汇汇编编程程序序加加以以翻翻译。译。我我们们通通常常用用编编辑辑程程序序(全全屏屏幕幕编编辑辑程程EDIT)产生汇编语言的源程序)产生汇编语言的源程序。返回本章首页返回本章首页第第3 3章章 汇编语言程序格式汇编语言程序格式用用MASM程序把源程序程序把源程序ASM转换成转换成OBJ文件。文件。汇编语言的作用汇编语言的作用就是把源文件转换成二进制就是把源文件转换成二进制代码表示的目标文件(称为代码表示的目标文件(称为OBJ文件)。文件)。在转换的过程中,汇编程序对源程序进行二在转换的过程中,汇编程序对源程序进行二遍扫视,如果源程序中有语法错误,则汇编遍扫视,如果源程序中有语法错误,则
3、汇编结束后,汇编程序将指出源程序中的错误,结束后,汇编程序将指出源程序中的错误,用户还可以用编辑程序来修改源程序中的错用户还可以用编辑程序来修改源程序中的错误,最后得到无语法错误的误,最后得到无语法错误的OBJ文件。文件。第第3 3章章 汇编语言程序格式汇编语言程序格式用用LINK程序把程序把OBJ文件转换成文件转换成EXE文件文件OBJ文文件件虽虽然然已已经经是是二二进进制制文文件件,但但它它还还不能直接上机运行;不能直接上机运行;OBJ文文件件必必须须经经过过连连接接程程序序(LINK)把把目目标标文文件件与与库库文文件件或或其其他他目目标标文文件件连连接接在在一一起起形形成可执行文件(成
4、可执行文件(EXE文件)。文件)。这这个个文文件件可可以以由由DOS装装入入存存储储器器,并并在在机机器上运行。器上运行。用用DOS文件命令直接键入文件名就可以执行文件命令直接键入文件名就可以执行改程序。改程序。第第3 3章章 汇编语言程序格式汇编语言程序格式用图来表示对汇编语言的处理过程:用图来表示对汇编语言的处理过程:2汇编程序的主要功能:汇编程序的主要功能:检查源程序;检查源程序;测出源程序中的语法错误,并给出出错信息测出源程序中的语法错误,并给出出错信息产生源程序的目标程序,并给出列表文件产生源程序的目标程序,并给出列表文件展开宏指令展开宏指令 编辑程序编辑程序ABC.ASM文件文件汇
5、编程序汇编程序ABC.OBJ文件文件连接程序连接程序ABC.EXE文件文件第第3 3章章 汇编语言程序格式汇编语言程序格式3.2 伪操作伪操作 汇汇编编语语言言程程序序由由指指令令、伪伪操操作作和和宏宏指指令令组成。组成。伪伪操操作作又又称称伪伪指指令令,它它不不象象机机器器指指令令那那样样是是在在程程序序运运行行期期间间由由计计算算机机来来执执行行的的,它它是是在在汇汇编编程程序序对对源源程程序序汇汇编编期期间间由由汇汇编编程程序序处处理理的的操操作作,它它们们可可以以完完成成如如数数据据定定义义,分分配配存存储储区区,指指示程序结束示程序结束等功能。等功能。返回本章首页返回本章首页第第3
6、3章章 汇编语言程序格式汇编语言程序格式1数据定义及存储器分配伪操作数据定义及存储器分配伪操作伪操作的格式伪操作的格式:【变量】变量】助记符助记符操作数操作数1,操作数,操作数2,【;注释】【;注释】其中变量字段是可有可无的,它是符号地址,其中变量字段是可有可无的,它是符号地址,(1)变量变量是是“操作数操作数1”的的偏移地址。偏移地址。(2)助记符(操作项)助记符(操作项):说明伪操作的功能。:说明伪操作的功能。【说明所定义的数据类型】【说明所定义的数据类型】(3)操作数:操作数:是存放到数据区的数据是存放到数据区的数据,以备程序使用。以备程序使用。(4)注释注释:说明该伪操作的功能,它是可
7、有可无的。:说明该伪操作的功能,它是可有可无的。第第3 3章章 汇编语言程序格式汇编语言程序格式1数据定义及存储器分配伪操作数据定义及存储器分配伪操作(2)助记符)助记符(操作项操作项):说明伪操作的功能:说明伪操作的功能【说明所定义的数据类型】【说明所定义的数据类型】DB:用来定义字节,其后的每一个操作数都占一个字节。用来定义字节,其后的每一个操作数都占一个字节。DW:用用来来定定义义字字,其其后后的的每每一一个个操操作作数数都都占占一一个个字字(低低位位字字节节在在第第一一个个字字节节地地址址中中,高高位位字字节节在在第第二二个个字节地址中)。字节地址中)。DD:定义双字,其后的每个操作数
8、占有二个字。:定义双字,其后的每个操作数占有二个字。DQ:定义四个字,其后的每个操作数占四个字:定义四个字,其后的每个操作数占四个字DT:定义十个字节,其后每个操作数占:定义十个字节,其后每个操作数占10个字节。个字节。第第3 3章章 汇编语言程序格式汇编语言程序格式1数据定义及存储器分配伪操作数据定义及存储器分配伪操作这这些些伪伪操操作作可可以以把把数数据据存存入入指指定定的的存存储储单单元元或或者者只只分分配配存存储储器器空空间间而而并并不不存存入入确确定定的的数数据。据。(3)操作数:操作数:是存放到数据区的数据,以备是存放到数据区的数据,以备程序使用。程序使用。操操作作数数可可以以是是
9、常常数数或或表表达达式式,但但在在存存储储区区中存放的是数据。中存放的是数据。第第3 3章章 汇编语言程序格式汇编语言程序格式1数据定义及存储器分配伪操作数据定义及存储器分配伪操作例3.7 数据的定义:DATA_BYTEDB10,4,10HDATA_WORDDW100,100H,+5DATE_DWDD3*20,0FFFDHARYDW1,1,1,2,2,2解:解:DB:100AH,DW:100D0064H+50005HDD:3*20=60D=3CH=0000003CH0FFFDH=0000FFFFDH 第第3 3章章 汇编语言程序格式汇编语言程序格式1数据定义及存储器分配伪操作数据定义及存储器分
10、配伪操作DATA_BYTEDB10,4,10HDATA_WORDDW100,100H,+5DATE_DWDD3*20,0FFFDHNUM DW 1,1,1,2,2,2DS=0B45 ES=0B35 SS=0B48 CS=0B55 IP=0010 NV UP EI PL NZ NA PO NC-D0B45:00000B45:0000 0A 04 10 64 00 00 01 05-00 3C 00 00 00 FD 0F 00 .d.0B45:0010 00 01 00 01 00 01 00 02-00 02 00 02 00 00 00 00 .0B45:0020 00 00 00 00 0
11、0 00 00 00-00 00 00 00 00 00 00 00 .第第3 3章章 汇编语言程序格式汇编语言程序格式1数据定义及存储器分配伪操作数据定义及存储器分配伪操作操作数也可以是字符串操作数也可以是字符串例例3.8:MESSAGEDBHELLODBAB用用ASCII码值一个字节来表示一个字符码值一个字节来表示一个字符H48H;E45H;L4CH;L4CH;O4FH;A41H;B42H用十六进制表示的用十六进制表示的ASCII码字符。码字符。DS=0B45ES=0B35SS=0B47CS=0B54IP=0005-D0B45:00000B45:000048454C4C4F414201-0
12、001000100020002HELLOAB.0B45:00100002000600000000-0000000000000000.第第3 3章章 汇编语言程序格式汇编语言程序格式操作数可以保留存储空间,但不存入数据。操作数可以保留存储空间,但不存入数据。例3.9:ABC DB 0,?,?,?,0 DEF DW?,60,?0B45:0000 00 00 00 00 00 00 00 3C-00 00 00 00操操作作数数字字段段还还可可以以使使用用复复制制操操作作符符来来复复制制一一个个多个或操作数。多个或操作数。格式:复制数格式:复制数DUP(操作数,(操作数,操作数),操作数)复复制制数
13、数指指定定括括号号中中的的操操作作数数被被重重复复的的次次数数,它它可以是一个表达式。可以是一个表达式。第第3 3章章 汇编语言程序格式汇编语言程序格式 例例3.10:ARRAY1DB2DUP(0,1,2,?)ORG10HARRAY2DB5DUP(?)ORG20HARRAY3DB5DUP(8)语句语句1与与ARRAY1DB0,1,2,?,0,1,2,?等价等价0B45:00000001020000010200-00000000000000000B45:00100000000000000000-00000000000000000B45:00200808080808000000-000000000
14、0000000DUP操作可嵌套操作可嵌套例:例:ARRAY4DB2DUP(0,2DUP(1,2),3)(1+221)26212字节字节第第3 3章章 汇编语言程序格式汇编语言程序格式第第3 3章章 汇编语言程序格式汇编语言程序格式变量的类型属性:变量的类型属性:1)变量是第一个数据项的偏移地址变量是第一个数据项的偏移地址。2)用用来来表表示示每每一一个个数数据据项项的的长长度度,它它是是以以字字节节为单位来表示的。为单位来表示的。用用DB定义的变量占定义的变量占1字节。字节。DW=2,DD=4,DQ=8,DT=10汇汇编编语语言言用用隐隐含含的的类类型型属属性性来来确确定定某某些些指指令令是是
15、字指令还是字节指令字指令还是字节指令在赋值语句中,两个操作数类型要一致。在赋值语句中,两个操作数类型要一致。第第3 3章章 汇编语言程序格式汇编语言程序格式例例7:OPER1DB1,2OPER2DW1234H,5678H MOVAL,OPER1(赋值语句)(赋值语句)MOVAX,OPER2OPER1为字节类型属性,为字节类型属性,AL为字节类型属性,为字节类型属性,OPER2为字类型属性,为字类型属性,AX为字类型属性。为字类型属性。若若改为改为MOVAX,OPER1MOVAL,OPER2错误:汇编程序在汇编时,能发现两条错误:汇编程序在汇编时,能发现两条MOV指令中的指令中的两两个操作数的类
16、型不匹配个操作数的类型不匹配。可以可以用用“PTR”属性操作符指定操作数的类型属性属性操作符指定操作数的类型属性,其格式:其格式:类型类型PTR变量变量常量常量 类型:BYTE,WORD,DWORD(双字双字)第第3 3章章 汇编语言程序格式汇编语言程序格式格式:类型 PTR 变量常量 类型:BYTE,WORD,DWORD(双字)改正:MOV AX,WORD PTR OPER1 (AX)=0201H MOV AL,BYTE PTR OPER2(AL)=34H这这样样OPER1类类型型属属性性为为字字,两两个个操操作作数数(AX,OPER1)的的类类型型一一致致,汇汇编编时时不不会会出出错错,运
17、运行行时时把把OPER1的的字字内内容容送送入入AX,即即将将OPER1的的内内容容送送 AL,把把 OPER1+1的的 内内 容容 送送 AH,执执 行行 后后(AX)=0201H,而而第第二二条条指指令令应应把把OPER2的的第第一一个个字字节节内内容容送送AL,即,即(AL)=34H第第3 3章章 汇编语言程序格式汇编语言程序格式LABEL:用用来来使使同同一一个个变变量量具具有有不不同同的的属属性性(与(与PTR属性操作符类似)属性操作符类似)格式:变量格式:变量LABEL类型类型其中:类型其中:类型BYTE,WORD,DWORD例例8:B_ARRAYLABELBYTEW_ARRAYD
18、W1122H,1122H数数据据1122H的的第第一一个个字字节节的的地地址址赋赋予予2个个不不同同类类型型的的变变量量名名:字字节节类类型型变变量量B_ARRAY和字类型变量和字类型变量W_ARRAY。MOVAL,B_ARRAY;(AL)=22HMOVBX,W_ARRAY;(BX)=1122H第第3 3章章 汇编语言程序格式汇编语言程序格式2表达式赋值伪操作表达式赋值伪操作有有时时程程序序中中多多次次出出现现同同一一个个表表达达式式,为为方方便便起起见见可可以以用用赋赋值值伪伪操操作作给给表表达达式式赋赋予予一一个个名名字字。格式:格式:表达式名表达式名EQU表达式表达式表表达达式式名名:凡
19、凡用用到到该该表表达达式式之之处处就就可可以以用用表表达达 式名来代替式名来代替表表达达式式:操操作作数数、可可求求出出常常数数值值的的表表达达式式、有有效的助记符效的助记符 例例:CONSTANT EQU 256 数赋以符号名 ALPHA EQU CONSTANT+7第第3 3章章 汇编语言程序格式汇编语言程序格式“”伪操作也可作为赋值伪操作使用,伪操作也可作为赋值伪操作使用,并且并且“”伪操作允许重复定义。伪操作允许重复定义。例:EMP=7 EMP=EMP+1 而EQU伪操作中的表达式名是不允许重复定义的。第第3 3章章 汇编语言程序格式汇编语言程序格式3段定义伪操作段定义伪操作存存储储器
20、器的的物物理理地地址址是是由由段段地地址址和和偏偏移移地地址址组组成成的的,当当汇汇编编程程序序把把源源程程序序转转换换为为目目标标程程序序时时,必必须须确确定定标标号号和和变变量量的的偏偏移移地地址址,并并把把有有关关的的信信息息通通过过目目标标模模块块传传送送给给连连接接程程序序,以以便便连连接接程程序序把把不不同同的的段段和和模模块块连连接接在在一一起起形形成成一一个个可可执行的程序执行的程序。段定义伪操作的格式段定义伪操作的格式段段名名SEGMENT定定位位类类型型组组合合类类型型使使用用类类型型类类别别例如:例如:DATA1 SEGMENT PARA PRIVATE USE16 DA
21、TADATA1ENDS第第3 3章章 汇编语言程序格式汇编语言程序格式段定义格式:段定义格式:SEGMENT;ENDS对对于于数数据据段段,附附加加段段,堆堆栈栈段段来来说说,是是存存储单元的定义分配储单元的定义分配对于代码段则是指令及伪操作。对于代码段则是指令及伪操作。段名段名必须由必须由SEGMENT定义的段中的段名定义的段中的段名各各段段的的作作用用:是是通通过过它它与与段段寄寄存存器器的的关关系语句声明指定的。语句格式:系语句声明指定的。语句格式:ASSUME段寄存器段寄存器:段名段名段寄存器段寄存器CS,DS,ES,SS例如:例如:ASSUMEDS:DATA1第第3 3章章 汇编语言
22、程序格式汇编语言程序格式例如:data_seg1segment;定义数据段定义数据段data_seg1endsdata_seg2segment;定义附加段定义附加段data_seg2endscode_segsegmentassumecs:code_seg,ds:data_seg1,es:data_seg2start:movax,data-seg1;数据段地址放入数据段地址放入dsmovds,axmovax,data-seg2;附加段地址放入附加段地址放入esmoves,axCode_segends;代码段结束代码段结束endstart第第3 3章章 汇编语言程序格式汇编语言程序格式ASSUNE
23、伪伪操操作作只只指指定定某某一一个个段段分分配配给给哪哪一一个个段段寄寄存存器器,它它并并不不把把段段地地址址装装入入段段寄寄存存器器中中,所所以以在在代码段中必须把段地址装入相应的段寄存器中。代码段中必须把段地址装入相应的段寄存器中。SEGMENT伪伪操操作作还还可可以以增增加加类类型型及及属属性性的的说说明明;格式如下:格式如下:Segnamesegment定位类型定位类型组合类型组合类型使用类型使用类型类别类别Segnameends第第3 3章章 汇编语言程序格式汇编语言程序格式段定义伪操作的格式段定义伪操作的格式段段名名SEGMENT定定位位类类型型组组合合类类型型使使用用类类型型类类
24、别别例如:例如:DATA1SEGMENTPARAPRIVATEUSE16DATADATA1ENDS定位类型:段起始位置的边界值的情况定位类型:段起始位置的边界值的情况PARA:指指定定段段的的起起始始地地址址必必须须从从小小段段边边界界开开始始,小小段段边边界界是是指段的地址的最低的指段的地址的最低的16进制数位必须为进制数位必须为0。BYTE:该该段段可可以以从从任任何何地地址址开开始始,这这样样定定义义段段的的时时候候等等于于对段的起始位没有限制。对段的起始位没有限制。WORD:该段必须从字的边界开始,即段地址必须为偶数。:该段必须从字的边界开始,即段地址必须为偶数。PAGE:该段必须从页
25、的边界开始,即段地址的最低两个:该段必须从页的边界开始,即段地址的最低两个16进制数位必须为进制数位必须为0(该地址能被(该地址能被256整除整除)第第3 3章章 汇编语言程序格式汇编语言程序格式段定义伪操作的格式段定义伪操作的格式段段名名SEGMENT定定位位类类型型组组合合类类型型使使用用类类型型类类别别例如:例如:DATA1 SEGMENT PARA PRIVATE USE16 DATA 组合类型:程序连接时的段合并方法。组合类型:程序连接时的段合并方法。PUBLIC:该该段段连连接接时时将将与与有有相相同同名名字字的的其其他他分分段段连连接在一起接在一起,连接次序由连接命令指定。,连接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宏汇编语言书 汇编语言 PPT 课件
限制150内