汇编语言与源程序结构.ppt
《汇编语言与源程序结构.ppt》由会员分享,可在线阅读,更多相关《汇编语言与源程序结构.ppt(36页珍藏版)》请在咨信网上搜索。
1、汇编语言汇编语言程序设计程序设计 第第4章章 汇编语言与源程序言与源程序结构构 汇编语言源程序与汇编程序 汇编语言语句种类及其格式 汇编语言数据与运算符 伪指令 源程序结构模式 1.汇编语言汇编语言程序设计程序设计 4.1 4.1 汇编语言源程序与言源程序与汇编程序程序 1 1、汇编语言源程序言源程序汇编语言言源源程程序序是是用用汇编语言言编写写的的程程序序,简称称汇编语言言程程序序。汇编语言言程程序序通通过编辑程程序序在在计算算机机中中建建立立汇编语言源程序文件(言源程序文件(ASMASM文件)。文件)。2 2、汇编程序程序将将汇编语言言源源程程序序编译成成目目标程程序序的的加加工工程程序序
2、称称为汇编程序。程序。这一加工一加工过程称程称为汇编。汇编程程序序的的作作用用就就是是把把源源程程序序文文件件(ASMASM文文件件)转换成成用二用二进制代制代码表示的目表示的目标程序文件(程序文件(OBJOBJ文件)。文件)。汇编程序的主要功能有:程序的主要功能有:检查源程序。源程序。测出源程序出源程序语法法错误,并,并给出出错误。产生目生目标程序,并可程序,并可给出列表文件出列表文件 展开宏指令。展开宏指令。返回返回2.汇编语言汇编语言程序设计程序设计 4.2 4.2 汇编语言言语句种句种类及其格式及其格式 语句句是是汇编语言言源源程程序序的的基基本本组成成单位位。一一个个汇编语言言源源程
3、程序序中中有有3 3种种基基本本语句句:指指令令语句句、伪指指令令语句句和和宏宏指指令令语句句。前前两两种种是是最最常常见、最最基基本本的的语句句。指指令令语句句和和伪指指令令语句句不不仅在在程程序序中中的的功功能能不不同同,而而且且实现其其功功能能的的方方法法和和时间也是不同的。也是不同的。1 1、指令、指令语句句 指指令令语句句就就是是计算算机机中中指指令令系系统的的各各条条指指令令,每每条条指指令令语句句在在汇编时都都产生生一一个个供供CPUCPU执行行的的机机器器目目标代代码,所所以以这种种语句又称句又称为可可执行行语句。句。计算算机机中中每每条条指指令令语句句表表示示一一种种基基本本
4、功功能能,这些些基基本本功功能能是是在在程程序序运运行行期期间由由计算算机机硬硬件件来来实现的的。一一条条指指令令语句句由四个字段由四个字段组成,其一般格式如下:成,其一般格式如下:标号:号:指令助指令助记符符 操作数操作数 ;注;注释 3.汇编语言汇编语言程序设计程序设计 (1 1)标号号标号号是是指指令令语句句的的符符号号地地址址,它它代代表表指指令令代代码存存放放地地址址的第一个字的第一个字节地址。地址。标号号是是指指令令语句句的的可可选项,通通常常在在一一个个程程序序段段或或子子程程序序的的入入口口指指令令语句句选用用标号号,当当程程序序需需要要转入入这个个程程序序段段或或调用用子子程
5、程序序时,就就可可直直接接引引用用这标号号。标号号通通常常在在代代码段段中中定定义,后后面面跟跟冒冒号号“:”,它它经常常在在转移移指指令令或或CALLCALL指指令中引用,用以表示令中引用,用以表示转向地址,引用向地址,引用时标号后不跟冒号。号后不跟冒号。(2 2)指令助)指令助记符符指指令令助助记符符为指指令令语句句的的核核心心,是是不不可可省省略略的的主主要要部部分分,如如MOVMOV、ADDADD、XORXOR、RCLRCL等等等等,它它表表示示指指令令语句句要要求求CPUCPU完完成成的具体操作。的具体操作。4.汇编语言汇编语言程序设计程序设计(3 3)操作数操作数 操操作作数数表表
6、示示指指令令助助记符符的的操操作作对象象,不不同同的的指指令令所所带的的操操作作数数不不同同,有有一一个个操操作作数数的的指指令令(如如INCINC、NOTNOT等等),有有二二个个操操作作数数的的指指令令(如如ADDADD、XORXOR等等),无无操操作作数数指指令令(如如CLCCLC、STDSTD等)。等)。若若需需要要操操作作数数,则每每一一个个操操作作数数要要依依据据寻址址方方式式来来表表示示。操作数可以是常数、寄存器、操作数可以是常数、寄存器、标号、号、变量和表达式。量和表达式。(4)(4)注注释 注注释是是用用来来说明明一一段段程程序序或或一一条条或或多多条条指指令令的的功功能能,
7、它它是是可可选项,注注释均均以以分分号号“;”开开始始,它它可可占占一一行行或或多多行行。注注释还通通常常用用于于调试程程序序。注注释是是语句句的的非非执行行部部分分,因因此此,它它不不出出现在在机机器器目目标代代码中中,也也不不影影响响指指令令语句句的的功功能。能。5.汇编语言汇编语言程序设计程序设计 2 2、伪指令指令语句句 伪指指令令语句句指指示示汇编程程序序在在汇编源源程程序序时完完成成某某些些工工作作,比如完成数据定比如完成数据定义、分配存、分配存储区、指示程序区、指示程序结束等。束等。伪指指令令属属于于汇编控控制制命命令令,它它所所指指示示的的操操作作是是由由汇编程程序序在在汇编源
8、源程程序序时完完成成的的,在在汇编时,它它不不产生生目目标代代码,在将源程序在将源程序汇编成目成目标程序后,它就不复存在了。程序后,它就不复存在了。综上上所所述述可可知知,伪指指令令语句句与与指指令令语句句的的主主要要区区别是是:伪指指令令语句句经汇编后后不不产生生机机器器目目标代代码,而而指指令令语句句经汇编后后将将产生生相相应的的机机器器目目标代代码;伪指指令令语句句所所指指示示的的操操作作是是在在程程序序汇编时完完成成的的,而而指指令令语句句的的操操作作必必须在在程程序序运运行行时才才能能完完成成。一一条条伪指指令令语句句也也由由四四个个字字段段组成成,其一般格式如下:其一般格式如下:符
9、号名符号名 伪指令符操作数指令符操作数;注;注释 6.汇编语言汇编语言程序设计程序设计(1 1)符号名)符号名 符号名在符号名在伪指令指令语句中是一个可句中是一个可选项,符号名后面没有,符号名后面没有冒号,符号名可以是常量名、冒号,符号名可以是常量名、变量名、量名、过程名等。程名等。(2 2)伪指令符指令符伪指指令令符符指指定定汇编程程序序要要完完成成的的具具体体操操作作,它它是是伪指指令令语句句的的核核心心部部分分,如如数数据据定定义伪指指令令DBDB、DWDW、DDDD,段段定定义伪指指令令SEGMENTSEGMENT,定定义过程程伪指令指令PROCPROC等等。等等。(3 3)操作数)操
10、作数 伪指指令令中中的的操操作作数数可可以以是是常常数数、字字符符串串、变量量、表表达达式式,其个数由具体的其个数由具体的伪指令决定,各个操作数之指令决定,各个操作数之间用用“,”分隔。分隔。(4 4)注)注释 伪指令指令语句的注句的注释也是可也是可选项,需要,需要时必必须以以“;”开始。开始。7.汇编语言汇编语言程序设计程序设计3 3、标识符符 指指令令语句句中中的的标号号和和伪指指令令语句句中中的的符符号号名名统称称为标识符。它符。它们由若干字符由若干字符组成,成,标识符的符的组成成规则如下:如下:(1 1)一个)一个标识符由符由1-31-3个字符个字符组成。成。(2 2)组成成标识符符的
11、的字字符符可可以以是是字字母母(A-ZA-Z或或a-za-z)、数数字字(0-90-9)、专用用字字符符(“?”、“”“”、“”“”、“$”“$”、“下划下划线_”_”)。)。(3 3)除除数数字字外外,上上述述其其余余字字符符均均可可作作为标识符符的的首首字字符符,“”“”只能作只能作为标识符的首字符。符的首字符。(4 4)不能使用属于系)不能使用属于系统的的专用保留字。用保留字。返回返回8.汇编语言汇编语言程序设计程序设计 4.34.3汇编语言数据与运算符言数据与运算符 汇编语言言的的指指令令语句句和和伪指指令令语句句操操作作数数一一般般为常常量量、变量、量、标号、表达式。号、表达式。1
12、1、常量、常量常常量量是是没没有有任任何何属属性性的的纯数数值,它它的的值在在汇编期期间已已能能完完全全确确定定,且且在在程程序序运运行行中中也也不不会会发生生变化化。常常量量分分为数数值常常量量、字字符符串串常常量量和和符符号号常常量量,它它主主要要用用于于指指令令语句句中中的的立立即数或即数或伪指令指令语句中句中给变量量赋初初值等。等。(1 1)数)数值常量常量数数值常量分常量分为整数和整数和实数。数。例例如如:1110001111100011B B,45693 45693,0 0FF2AH FF2AH,356703356703Q Q都都是是正正确的整数形式,确的整数形式,又又如如:543
13、.567543.567,45.2345.23,1.21.2E2E2,45.4E945.4E9都都是是正正确的确的实数形式。数形式。9.汇编语言汇编语言程序设计程序设计(2 2)字符串常量)字符串常量字字符符串串常常量量是是用用单引引号号括括起起来来的的一一个个字字符符或或多多个个字字符符。字字符符串串常常量量以以单引引号号中中各各字字符符的的ASCIIASCII码形形式式存存储在在内内存存中中,如如HH,在在内内存存中中就就是是4141H H,1212就就是是3131H H,32H32H。使使用用时可可在在单引引号号内内直直接接写写字字符符序序列列,如如1212ABAB,也也可可写写字字符符的
14、的ASCIIASCII码,ASCIIASCII码之之间用用逗逗号号分分隔隔(此此时不不需需要要用用单引号),如引号),如3131H H,32H32H,41H41H,42H42H表示字符串表示字符串1212ABAB。(3 3)符号常量符号常量符符号号常常量量是是指指用用EQUEQU伪指指令令或或赋值语句句“=”“=”定定义过的的符符号名,可作操作数号名,可作操作数项或在表达式中使用。或在表达式中使用。10.汇编语言汇编语言程序设计程序设计2 2、变量量在在汇编语言言中中,变量量是是一一个个数数据据存存储单元元的的名名称称,即即数数据据存存放放地地址址的的符符号号表表示示。它它代代表表存存放放在在
15、某某些些存存储单元元的的数数据据,这些些数数据据在在程程序序运运行行期期间随随时可可以以改改变。为方方便便访问变量量,在程序中通在程序中通过变量名来使用量名来使用变量。量。(1 1)变量的定量的定义 变量量通通常常在在数数据据段段或或附附加加段段中中使使用用数数据据定定义伪指指令令来来定定义,定定义变量量就就是是给数数据据分分配配存存储单元元,有有时为存存储单元元赋予予一一个个变量量名名,并并可可同同时为这些些存存储单元元预置置初初值。数数据据定定义伪指令的格式指令的格式为:变量名量名 DB(DWDB(DW、DDDD、DQDQ、DT)DT)表达式表达式1 1,表达式,表达式2 2,11.汇编语
16、言汇编语言程序设计程序设计其中:其中:变量名是可量名是可选项,它,它仅代表所定代表所定义数据存数据存储区区第一个第一个单元的地址;元的地址;DBDB、DWDW、DDDD、DQDQ和和DTDT是是伪指令符,具指令符,具体一条数据定体一条数据定义伪指令取指令取5 5种之一。种之一。DB DB定定义的是字的是字节类型的型的变量,每个表达式被分配量,每个表达式被分配1 1个字个字节单元。元。DWDW定定义的的是是字字类型型的的变量量,每每一一个个表表达达式式被被分分配配1 1个个字字单元(元(2 2个字个字节)。)。DDDD定定义的的是是双双字字类型型的的变量量,每每一一个个表表达达式式被被分分配配2
17、 2个个字字单元(元(4 4个字个字节)。)。DQDQ定定义的的是是四四字字类型型的的变量量,每每一一个个表表达达式式被被分分配配4 4个个字字单元(元(8 8个字个字节)。)。DTDT定定义的的是是十十字字节类型型的的变量量,每每一一个个表表达达式式被被分分配配1010个字个字节单元。元。12.汇编语言汇编语言程序设计程序设计 表达式表达式1 1,表达式,表达式22是是给变量或指定的存量或指定的存储单元元赋予初予初值,它,它们有以下几种形式:有以下几种形式:(a a)数数值表达式表达式 数数据据定定义伪指指令令可可以以为一一个个或或连续的的存存储单元元设置置数数值初初值。(b b)字符串表达
18、式字符串表达式 对于于DBDB伪指指令令,字字符符串串的的长度度允允许超超过2 2个个字字符符,但但不不能能超超过255255个个字字符符,字字符符串串必必须用用单引引号号括括起起来来,它它可可为字字符符串串中中的的每每个个字字符符分分配配1 1字字节单元元,字字符符串串从从左左至至右右以以字符的字符的ASCIIASCII码形式按地址形式按地址递增的增的顺序依次存放。序依次存放。13.汇编语言汇编语言程序设计程序设计(c c)?)?表达式表达式 不不带引引号号的的?,用用于于为变量量预留留内内存存单元元,暂时不不存存入入数据,即表示所定数据,即表示所定义的的变量无确定的初量无确定的初值。例如:
19、例如:A DW A DW?,?,?为变量量A A预留留2 2个字个字单元。元。(d d)地址表达式地址表达式 操操作作数数为地地址址表表达达式式时,只只适适用用于于DWDW和和DDDD这两两种种数数据据定定义伪指指令令。如如果果地地址址表表达达式式为一一变量量(标号号)名名,用用DWDW伪指指令令则是是取取它它的的偏偏移移地地址址来来初初始始化化变量量;用用DDDD伪指指令令则是是取它的段首地址和偏移地址来初始化取它的段首地址和偏移地址来初始化变量。量。(e e)带DUPDUP的表达式的表达式格格式式为:n n DUP DUP (表表达达式式),其其中中n n为重重复复因因子子,只只能能取取正
20、正整数,它表示定整数,它表示定义了了n n个数据存个数据存储单元。元。14.汇编语言汇编语言程序设计程序设计(2 2)变量的属性量的属性 由由于于存存储器器是是分分段段使使用用的的,因因而而源源程程序序定定义的的变量量具具有有3 3个属性:个属性:(a a)段属性(段属性(SEGSEG)变量的段属性是指定量的段属性是指定义变量量时它所在段的段首地址。它所在段的段首地址。(b b)偏移属性(偏移属性(OFFSETOFFSET)变量量的的偏偏移移属属性性是是指指所所在在段段的的段段首首地地址址到到定定义该变量量的的位位置置之之间的的字字节数数(即即偏偏移移地地址址)。上上述述的的段段属属性性和和偏
21、偏移移属性属性值就构成了一个就构成了一个变量的量的逻辑地址。地址。(c c)类型属性(型属性(TYPETYPE)变量量的的类型型属属性性表表示示存存储变量量时所所占占存存储单元元的的字字节个个数。数。15.汇编语言汇编语言程序设计程序设计(3 3)变量的使用量的使用 定定义后的后的变量,在程序中的引用有两种情况:量,在程序中的引用有两种情况:(a a)在在指指令令语句句中中,采采用用存存储器器操操作作数数的的几几种种寻址址方方式式,除除寄寄存存器器间接接寻址址方方式式不不使使用用变量量名名外外,其其余余各各种种寻址址方方式均可使用式均可使用变量名。量名。例如,某数据段已定例如,某数据段已定义一
22、一变量量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 B C DD B16.汇编语言汇编语言程序设计程序设计3 3、标号号 标号是一条指令号是一条指令语句的符号地址,在句的符号地址,在汇编源程序中,只源程序中,只有在需要有在需要转向一条指令向一条指令语句句时,才,才为该指令指令语句句设置置标号,号,以便在控制以便
23、在控制转移指令中直接引用移指令中直接引用这个个标号。号。标号一般在代号一般在代码段中定段中定义和引用。由于和引用。由于标号代表了指令的符号地址,所以号代表了指令的符号地址,所以标号也有号也有3 3个属性:个属性:(a a)段段属属性性(SEGSEG)。标号号的的段段属属性性是是指指标号号定定义所所在在段段的段首地址。的段首地址。(b b)偏偏移移属属性性(OFFSETOFFSET)。标号号的的偏偏移移属属性性是是指指标号号所所在段的段首地址到在段的段首地址到该标号的字号的字节距离。距离。(c c)类型型属属性性(TYPETYPE)。标号号的的类型型属属性性表表示示了了它它的的转移移特特性性,即
24、即该标号号是是作作为段段内内还是是段段间转移移(或或调用用)指指令令的的目目标地址。地址。标号的号的类型属性有型属性有2 2种:种:NEARNEAR类型和型和FARFAR类型。型。17.汇编语言汇编语言程序设计程序设计 4 4、表达式和运算符、表达式和运算符汇编语言言的的指指令令语句句和和伪指指令令语句句中中,表表达达式式是是操操作作数数项的的常常见形形式式,表表达达式式是是由由常常量量、变量量、标号号用用运运算算符符连接接而而成成有有意意义的的式式子子。表表达达式式分分为数数值表表达达式式和和地地址址表表达达式式,任任一一表表达达式式的的值只只计算算一一次次,表表达达式式的的计算算是是在在源
25、源程程序序汇编过程程中中进行行的的,而而不不是是在在程程序序运运行行中中进行行的的,汇编程程序序将将表表达达式式计算算后后得得到到一一个个数数值或或一一个个地地址。址。在在80868086汇编语言言中中,运运算算符符分分为:算算术运运算算符符、逻辑运运算算符符、关关系系运运算算符符、数数值返返回回运运算算符符、属属性性运运算算符符和和字字节分离运算符。分离运算符。18.汇编语言汇编语言程序设计程序设计(1 1)数)数值表达式表达式 数数值表表达达式式是是由由常常量量与与算算术运运算算符符、逻辑运运算算符符或或关关系系运运算算符符构构成成的的有有意意义的的式式子子。数数值表表达达式式在在汇编期期
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 源程序 结构
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【1587****927】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【1587****927】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。