《汇编语言程序设计》第4章.ppt





《《汇编语言程序设计》第4章.ppt》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》第4章.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 第第4章章 汇编语言与源程序结构汇编语言与源程序结构 汇编语言源程序与汇编程序 汇编语言语句种类及其格式 汇编语言数据与运算符 伪指令 源程序结构模式 汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 4.1 4.1 汇编语言源程序与汇编程序汇编语言源程序与汇编程序 1 1、汇编语言源程序、汇编语言源程序汇汇编编语语言言源源程程序序是是用用汇汇编编语语言言编编写写的的程程序序,简简称称汇汇编编语语言言程程序序。汇汇编编语语言言程程序序通通过过编编辑辑程程序序在在计计算算机机中中建建立立汇汇编编语语言源程序文件(言源程序文件(AS
2、MASM文件)。文件)。2 2、汇编程序、汇编程序将将汇汇编编语语言言源源程程序序编编译译成成目目标标程程序序的的加加工工程程序序称称为为汇汇编编程序。这一加工过程称为汇编。程序。这一加工过程称为汇编。汇汇编编程程序序的的作作用用就就是是把把源源程程序序文文件件(ASMASM文文件件)转转换换成成用用二进制代码表示的目标程序文件(二进制代码表示的目标程序文件(OBJOBJ文件)。文件)。汇编程序的主要功能有:汇编程序的主要功能有:检查源程序。检查源程序。测出源程序语法错误,并给出错误。测出源程序语法错误,并给出错误。产生目标程序,并可给出列表文件产生目标程序,并可给出列表文件 展开宏指令。展开
3、宏指令。返回返回汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 4.2 4.2 汇编语言语句种类及其格式汇编语言语句种类及其格式 语语句句是是汇汇编编语语言言源源程程序序的的基基本本组组成成单单位位。一一个个汇汇编编语语言言源源程程序序中中有有3 3种种基基本本语语句句:指指令令语语句句、伪伪指指令令语语句句和和宏宏指指令令语语句句。前前两两种种是是最最常常见见、最最基基本本的的语语句句。指指令令语语句句和和伪伪指指令令语语句句不不仅仅在在程程序序中中的的功功能能不不同同,而而且且实实现现其其功功能能的的方方法法和和时时间也是不同的。间也是不同的。1 1、指令语句、指令语句 指指令令
4、语语句句就就是是计计算算机机中中指指令令系系统统的的各各条条指指令令,每每条条指指令令语语句句在在汇汇编编时时都都产产生生一一个个供供CPUCPU执执行行的的机机器器目目标标代代码码,所所以以这种语句又称为可执行语句。这种语句又称为可执行语句。计计算算机机中中每每条条指指令令语语句句表表示示一一种种基基本本功功能能,这这些些基基本本功功能能是是在在程程序序运运行行期期间间由由计计算算机机硬硬件件来来实实现现的的。一一条条指指令令语语句句由四个字段组成,其一般格式如下:由四个字段组成,其一般格式如下:标号:标号:指令助记符指令助记符 操作数操作数 ;注释;注释 汇编语言汇编语言淮南师范学院重点课
5、程淮南师范学院重点课程 (1 1)标号)标号标标号号是是指指令令语语句句的的符符号号地地址址,它它代代表表指指令令代代码码存存放放地地址址的第一个字节地址。的第一个字节地址。标标号号是是指指令令语语句句的的可可选选项项,通通常常在在一一个个程程序序段段或或子子程程序序的的入入口口指指令令语语句句选选用用标标号号,当当程程序序需需要要转转入入这这个个程程序序段段或或调调用用子子程程序序时时,就就可可直直接接引引用用这这标标号号。标标号号通通常常在在代代码码段段中中定定义义,后后面面跟跟冒冒号号“:”,它它经经常常在在转转移移指指令令或或CALLCALL指指令中引用,用以表示转向地址,引用时标号后
6、不跟冒号。令中引用,用以表示转向地址,引用时标号后不跟冒号。(2 2)指令助记符)指令助记符指指令令助助记记符符为为指指令令语语句句的的核核心心,是是不不可可省省略略的的主主要要部部分分,如如MOVMOV、ADDADD、XORXOR、RCLRCL等等等等,它它表表示示指指令令语语句句要要求求CPUCPU完完成成的具体操作。的具体操作。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(3 3)操作数操作数 操操作作数数表表示示指指令令助助记记符符的的操操作作对对象象,不不同同的的指指令令所所带带的的操操作作数数不不同同,有有一一个个操操作作数数的的指指令令(如如INCINC、NOTNOT
7、等等),有有二二个个操操作作数数的的指指令令(如如ADDADD、XORXOR等等),无无操操作作数数指指令令(如(如CLCCLC、STDSTD等)。等)。若若需需要要操操作作数数,则则每每一一个个操操作作数数要要依依据据寻寻址址方方式式来来表表示示。操作数可以是常数、寄存器、标号、变量和表达式。操作数可以是常数、寄存器、标号、变量和表达式。(4)(4)注释注释 注注释释是是用用来来说说明明一一段段程程序序或或一一条条或或多多条条指指令令的的功功能能,它它是是可可选选项项,注注释释均均以以分分号号“;”开开始始,它它可可占占一一行行或或多多行行。注注释释还还通通常常用用于于调调试试程程序序。注注
8、释释是是语语句句的的非非执执行行部部分分,因因此此,它它不不出出现现在在机机器器目目标标代代码码中中,也也不不影影响响指指令令语语句句的的功功能。能。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 2 2、伪指令语句、伪指令语句 伪伪指指令令语语句句指指示示汇汇编编程程序序在在汇汇编编源源程程序序时时完完成成某某些些工工作作,比如完成数据定义、分配存储区、指示程序结束等。比如完成数据定义、分配存储区、指示程序结束等。伪伪指指令令属属于于汇汇编编控控制制命命令令,它它所所指指示示的的操操作作是是由由汇汇编编程程序序在在汇汇编编源源程程序序时时完完成成的的,在在汇汇编编时时,它它不不产产
9、生生目目标标代代码码,在将源程序汇编成目标程序后,它就不复存在了。在将源程序汇编成目标程序后,它就不复存在了。综综上上所所述述可可知知,伪伪指指令令语语句句与与指指令令语语句句的的主主要要区区别别是是:伪伪指指令令语语句句经经汇汇编编后后不不产产生生机机器器目目标标代代码码,而而指指令令语语句句经经汇汇编编后后将将产产生生相相应应的的机机器器目目标标代代码码;伪伪指指令令语语句句所所指指示示的的操操作作是是在在程程序序汇汇编编时时完完成成的的,而而指指令令语语句句的的操操作作必必须须在在程程序序运运行行时时才才能能完完成成。一一条条伪伪指指令令语语句句也也由由四四个个字字段段组组成成,其一般格
10、式如下:其一般格式如下:符号名符号名 伪指令符操作数伪指令符操作数;注释;注释 汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(1 1)符号名)符号名 符号名在伪指令语句中是一个可选项,符号名后面没有符号名在伪指令语句中是一个可选项,符号名后面没有冒号,符号名可以是常量名、变量名、过程名等。冒号,符号名可以是常量名、变量名、过程名等。(2 2)伪指令符)伪指令符伪伪指指令令符符指指定定汇汇编编程程序序要要完完成成的的具具体体操操作作,它它是是伪伪指指令令语语句句的的核核心心部部分分,如如数数据据定定义义伪伪指指令令DBDB、DWDW、DDDD,段段定定义义伪伪指指令令SEGMENTS
11、EGMENT,定义过程伪指令定义过程伪指令PROCPROC等等。等等。(3 3)操作数)操作数 伪伪指指令令中中的的操操作作数数可可以以是是常常数数、字字符符串串、变变量量、表表达达式式,其个数由具体的伪指令决定,各个操作数之间用其个数由具体的伪指令决定,各个操作数之间用“,”分隔。分隔。(4 4)注释)注释 伪指令语句的注释也是可选项,需要时必须以伪指令语句的注释也是可选项,需要时必须以“;”开始。开始。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程3 3、标识符、标识符 指指令令语语句句中中的的标标号号和和伪伪指指令令语语句句中中的的符符号号名名统统称称为为标标识识符。它们由若干
12、字符组成,标识符的组成规则如下:符。它们由若干字符组成,标识符的组成规则如下:(1 1)一个标识符由)一个标识符由1-31-3个字符组成。个字符组成。(2 2)组组成成标标识识符符的的字字符符可可以以是是字字母母(A-ZA-Z或或a-za-z)、数数字字(0-90-9)、专专用用字字符符(“?”、“”“”、“”“”、“$”“$”、“下划线下划线_”_”)。)。(3 3)除除数数字字外外,上上述述其其余余字字符符均均可可作作为为标标识识符符的的首首字字符符,“”“”只能作为标识符的首字符。只能作为标识符的首字符。(4 4)不能使用属于系统的专用保留字。)不能使用属于系统的专用保留字。返回返回汇编
13、语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 4.34.3汇编语言数据与运算符汇编语言数据与运算符 汇汇编编语语言言的的指指令令语语句句和和伪伪指指令令语语句句操操作作数数一一般般为为常常量量、变量、标号、表达式。变量、标号、表达式。1 1、常量、常量常常量量是是没没有有任任何何属属性性的的纯纯数数值值,它它的的值值在在汇汇编编期期间间已已能能完完全全确确定定,且且在在程程序序运运行行中中也也不不会会发发生生变变化化。常常量量分分为为数数值值常常量量、字字符符串串常常量量和和符符号号常常量量,它它主主要要用用于于指指令令语语句句中中的的立立即数或伪指令语句中给变量赋初值等。即数或伪指令
14、语句中给变量赋初值等。(1 1)数值常量)数值常量数值常量分为整数和实数。数值常量分为整数和实数。例例如如:1110001111100011B B,45693 45693,0 0FF2AH FF2AH,356703356703Q Q都都是是正正确的整数形式,确的整数形式,又又如如:543.567543.567,45.2345.23,1.21.2E2E2,45.4E945.4E9都都是是正正确的实数形式。确的实数形式。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(2 2)字符串常量)字符串常量字字符符串串常常量量是是用用单单引引号号括括起起来来的的一一个个字字符符或或多多个个字字符符
15、。字字符符串串常常量量以以单单引引号号中中各各字字符符的的ASCIIASCII码码形形式式存存储储在在内内存存中中,如如HH,在在内内存存中中就就是是4141H H,1212就就是是3131H H,32H32H。使使用用时时可可在在单单引引号号内内直直接接写写字字符符序序列列,如如1212ABAB,也也可可写写字字符符的的ASCIIASCII码码,ASCIIASCII码码之之间间用用逗逗号号分分隔隔(此此时时不不需需要要用单引号),如用单引号),如3131H H,32H32H,41H41H,42H42H表示字符串表示字符串1212ABAB。(3 3)符号常量符号常量符符号号常常量量是是指指用用
16、EQUEQU伪伪指指令令或或赋赋值值语语句句“=”“=”定定义义过过的的符符号名,可作操作数项或在表达式中使用。号名,可作操作数项或在表达式中使用。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程2 2、变量、变量在在汇汇编编语语言言中中,变变量量是是一一个个数数据据存存储储单单元元的的名名称称,即即数数据据存存放放地地址址的的符符号号表表示示。它它代代表表存存放放在在某某些些存存储储单单元元的的数数据据,这这些些数数据据在在程程序序运运行行期期间间随随时时可可以以改改变变。为为方方便便访访问问变变量量,在程序中通过变量名来使用变量。在程序中通过变量名来使用变量。(1 1)变量的定义)
17、变量的定义 变变量量通通常常在在数数据据段段或或附附加加段段中中使使用用数数据据定定义义伪伪指指令令来来定定义义,定定义义变变量量就就是是给给数数据据分分配配存存储储单单元元,有有时时为为存存储储单单元元赋赋予予一一个个变变量量名名,并并可可同同时时为为这这些些存存储储单单元元预预置置初初值值。数数据据定定义义伪伪指令的格式为:指令的格式为:变量名变量名 DB(DWDB(DW、DDDD、DQDQ、DT)DT)表达式表达式1 1,表达式,表达式2 2,汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程其中:变量名是可选项,它仅代表所定义数据存储区其中:变量名是可选项,它仅代表所定义数据存储
18、区第一个单元的地址;第一个单元的地址;DBDB、DWDW、DDDD、DQDQ和和DTDT是伪指令符,具是伪指令符,具体一条数据定义伪指令取体一条数据定义伪指令取5 5种之一。种之一。DB DB定义的是字节类型的变量,每个表达式被分配定义的是字节类型的变量,每个表达式被分配1 1个字个字节单元。节单元。DWDW定定义义的的是是字字类类型型的的变变量量,每每一一个个表表达达式式被被分分配配1 1个个字字单单元(元(2 2个字节)。个字节)。DDDD定定义义的的是是双双字字类类型型的的变变量量,每每一一个个表表达达式式被被分分配配2 2个个字字单元(单元(4 4个字节)。个字节)。DQDQ定定义义的
19、的是是四四字字类类型型的的变变量量,每每一一个个表表达达式式被被分分配配4 4个个字字单元(单元(8 8个字节)。个字节)。DTDT定定义义的的是是十十字字节节类类型型的的变变量量,每每一一个个表表达达式式被被分分配配1010个字节单元。个字节单元。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 表达式表达式1 1,表达式,表达式22是给变量或指定的存储单元赋是给变量或指定的存储单元赋予初值,它们有以下几种形式:予初值,它们有以下几种形式:(a a)数值表达式数值表达式 数数据据定定义义伪伪指指令令可可以以为为一一个个或或连连续续的的存存储储单单元元设设置置数数值初值。值初值。(b
20、b)字符串表达式字符串表达式 对对于于DBDB伪伪指指令令,字字符符串串的的长长度度允允许许超超过过2 2个个字字符符,但但不不能能超超过过255255个个字字符符,字字符符串串必必须须用用单单引引号号括括起起来来,它它可可为为字字符符串串中中的的每每个个字字符符分分配配1 1字字节节单单元元,字字符符串串从从左左至至右右以以字符的字符的ASCIIASCII码形式按地址递增的顺序依次存放。码形式按地址递增的顺序依次存放。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(c c)?)?表达式表达式 不不带带引引号号的的?,用用于于为为变变量量预预留留内内存存单单元元,暂暂时时不不存存入入
21、数据,即表示所定义的变量无确定的初值。数据,即表示所定义的变量无确定的初值。例如:例如:A DW A DW?,?,?为变量为变量A A预留预留2 2个字单元。个字单元。(d d)地址表达式地址表达式 操操作作数数为为地地址址表表达达式式时时,只只适适用用于于DWDW和和DDDD这这两两种种数数据据定定义义伪伪指指令令。如如果果地地址址表表达达式式为为一一变变量量(标标号号)名名,用用DWDW伪伪指指令令则则是是取取它它的的偏偏移移地地址址来来初初始始化化变变量量;用用DDDD伪伪指指令令则则是是取它的段首地址和偏移地址来初始化变量。取它的段首地址和偏移地址来初始化变量。(e e)带带DUPDU
22、P的表达式的表达式格格式式为为:n n DUP DUP (表表达达式式),其其中中n n为为重重复复因因子子,只只能能取取正正整数,它表示定义了整数,它表示定义了n n个数据存储单元。个数据存储单元。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(2 2)变量的属性)变量的属性 由由于于存存储储器器是是分分段段使使用用的的,因因而而源源程程序序定定义义的的变变量量具具有有3 3个属性:个属性:(a a)段属性(段属性(SEGSEG)变量的段属性是指定义变量时它所在段的段首地址。变量的段属性是指定义变量时它所在段的段首地址。(b b)偏移属性(偏移属性(OFFSETOFFSET)变变量
23、量的的偏偏移移属属性性是是指指所所在在段段的的段段首首地地址址到到定定义义该该变变量量的的位位置置之之间间的的字字节节数数(即即偏偏移移地地址址)。上上述述的的段段属属性性和和偏偏移移属性值就构成了一个变量的逻辑地址。属性值就构成了一个变量的逻辑地址。(c c)类型属性(类型属性(TYPETYPE)变变量量的的类类型型属属性性表表示示存存储储变变量量时时所所占占存存储储单单元元的的字字节节个个数。数。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(3 3)变量的使用)变量的使用 定义后的变量,在程序中的引用有两种情况:定义后的变量,在程序中的引用有两种情况:(a a)在在指指令令语语
24、句句中中,采采用用存存储储器器操操作作数数的的几几种种寻寻址址方方式式,除除寄寄存存器器间间接接寻寻址址方方式式不不使使用用变变量量名名外外,其其余余各各种种寻寻址址方方式均可使用变量名。式均可使用变量名。例如,某数据段已定义一变量例如,某数据段已定义一变量ARRAYARRAY:ARRAY DW 5000H ARRAY DW 5000H,4000H4000H (b b)在在数数据据定定义义伪伪指指令令DWDW和和DDDD中中,操操作作数数字字段段可可直直接接引引用已定义过的变量名。用已定义过的变量名。如:如:A DB 50HA DB 50H,40H40H B DW A B DW A C DD
25、B C DD B汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程3 3、标号、标号 标号是一条指令语句的符号地址,在汇编源程序中,只标号是一条指令语句的符号地址,在汇编源程序中,只有在需要转向一条指令语句时,才为该指令语句设置标号,有在需要转向一条指令语句时,才为该指令语句设置标号,以便在控制转移指令中直接引用这个标号。标号一般在代码以便在控制转移指令中直接引用这个标号。标号一般在代码段中定义和引用。由于标号代表了指令的符号地址,所以标段中定义和引用。由于标号代表了指令的符号地址,所以标号也有号也有3 3个属性:个属性:(a a)段段属属性性(SEGSEG)。标标号号的的段段属属性性是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言程序设计 汇编语言 程序设计

限制150内