欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:72520902       资源大小:344.61KB        全文页数:35页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 第第4章章 汇编语言与源程序结构汇编语言与源程序结构 汇编语言源程序与汇编程序 汇编语言语句种类及其格式 汇编语言数据与运算符 伪指令 源程序结构模式 汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 4.1 4.1 汇编语言源程序与汇编程序汇编语言源程序与汇编程序 1 1、汇编语言源程序、汇编语言源程序汇汇编编语语言言源源程程序序是是用用汇汇编编语语言言编编写写的的程程序序,简简称称汇汇编编语语言言程程序序。汇汇编编语语言言程程序序通通过过编编辑辑程程序序在在计计算算机机中中建建立立汇汇编编语语言源程序文件(言源程序文件(ASMASM文件)。文件)。2 2、汇编程序、汇编程序将将汇汇编编语语言言源源程程序序编编译译成成目目标标程程序序的的加加工工程程序序称称为为汇汇编编程序。这一加工过程称为汇编。程序。这一加工过程称为汇编。汇汇编编程程序序的的作作用用就就是是把把源源程程序序文文件件(ASMASM文文件件)转转换换成成用用二进制代码表示的目标程序文件(二进制代码表示的目标程序文件(OBJOBJ文件)。文件)。汇编程序的主要功能有:汇编程序的主要功能有:检查源程序。检查源程序。测出源程序语法错误,并给出错误。测出源程序语法错误,并给出错误。产生目标程序,并可给出列表文件产生目标程序,并可给出列表文件 展开宏指令。展开宏指令。返回返回汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 4.2 4.2 汇编语言语句种类及其格式汇编语言语句种类及其格式 语语句句是是汇汇编编语语言言源源程程序序的的基基本本组组成成单单位位。一一个个汇汇编编语语言言源源程程序序中中有有3 3种种基基本本语语句句:指指令令语语句句、伪伪指指令令语语句句和和宏宏指指令令语语句句。前前两两种种是是最最常常见见、最最基基本本的的语语句句。指指令令语语句句和和伪伪指指令令语语句句不不仅仅在在程程序序中中的的功功能能不不同同,而而且且实实现现其其功功能能的的方方法法和和时时间也是不同的。间也是不同的。1 1、指令语句、指令语句 指指令令语语句句就就是是计计算算机机中中指指令令系系统统的的各各条条指指令令,每每条条指指令令语语句句在在汇汇编编时时都都产产生生一一个个供供CPUCPU执执行行的的机机器器目目标标代代码码,所所以以这种语句又称为可执行语句。这种语句又称为可执行语句。计计算算机机中中每每条条指指令令语语句句表表示示一一种种基基本本功功能能,这这些些基基本本功功能能是是在在程程序序运运行行期期间间由由计计算算机机硬硬件件来来实实现现的的。一一条条指指令令语语句句由四个字段组成,其一般格式如下:由四个字段组成,其一般格式如下:标号:标号:指令助记符指令助记符 操作数操作数 ;注释;注释 汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 (1 1)标号)标号标标号号是是指指令令语语句句的的符符号号地地址址,它它代代表表指指令令代代码码存存放放地地址址的第一个字节地址。的第一个字节地址。标标号号是是指指令令语语句句的的可可选选项项,通通常常在在一一个个程程序序段段或或子子程程序序的的入入口口指指令令语语句句选选用用标标号号,当当程程序序需需要要转转入入这这个个程程序序段段或或调调用用子子程程序序时时,就就可可直直接接引引用用这这标标号号。标标号号通通常常在在代代码码段段中中定定义义,后后面面跟跟冒冒号号“:”,它它经经常常在在转转移移指指令令或或CALLCALL指指令中引用,用以表示转向地址,引用时标号后不跟冒号。令中引用,用以表示转向地址,引用时标号后不跟冒号。(2 2)指令助记符)指令助记符指指令令助助记记符符为为指指令令语语句句的的核核心心,是是不不可可省省略略的的主主要要部部分分,如如MOVMOV、ADDADD、XORXOR、RCLRCL等等等等,它它表表示示指指令令语语句句要要求求CPUCPU完完成成的具体操作。的具体操作。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(3 3)操作数操作数 操操作作数数表表示示指指令令助助记记符符的的操操作作对对象象,不不同同的的指指令令所所带带的的操操作作数数不不同同,有有一一个个操操作作数数的的指指令令(如如INCINC、NOTNOT等等),有有二二个个操操作作数数的的指指令令(如如ADDADD、XORXOR等等),无无操操作作数数指指令令(如(如CLCCLC、STDSTD等)。等)。若若需需要要操操作作数数,则则每每一一个个操操作作数数要要依依据据寻寻址址方方式式来来表表示示。操作数可以是常数、寄存器、标号、变量和表达式。操作数可以是常数、寄存器、标号、变量和表达式。(4)(4)注释注释 注注释释是是用用来来说说明明一一段段程程序序或或一一条条或或多多条条指指令令的的功功能能,它它是是可可选选项项,注注释释均均以以分分号号“;”开开始始,它它可可占占一一行行或或多多行行。注注释释还还通通常常用用于于调调试试程程序序。注注释释是是语语句句的的非非执执行行部部分分,因因此此,它它不不出出现现在在机机器器目目标标代代码码中中,也也不不影影响响指指令令语语句句的的功功能。能。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 2 2、伪指令语句、伪指令语句 伪伪指指令令语语句句指指示示汇汇编编程程序序在在汇汇编编源源程程序序时时完完成成某某些些工工作作,比如完成数据定义、分配存储区、指示程序结束等。比如完成数据定义、分配存储区、指示程序结束等。伪伪指指令令属属于于汇汇编编控控制制命命令令,它它所所指指示示的的操操作作是是由由汇汇编编程程序序在在汇汇编编源源程程序序时时完完成成的的,在在汇汇编编时时,它它不不产产生生目目标标代代码码,在将源程序汇编成目标程序后,它就不复存在了。在将源程序汇编成目标程序后,它就不复存在了。综综上上所所述述可可知知,伪伪指指令令语语句句与与指指令令语语句句的的主主要要区区别别是是:伪伪指指令令语语句句经经汇汇编编后后不不产产生生机机器器目目标标代代码码,而而指指令令语语句句经经汇汇编编后后将将产产生生相相应应的的机机器器目目标标代代码码;伪伪指指令令语语句句所所指指示示的的操操作作是是在在程程序序汇汇编编时时完完成成的的,而而指指令令语语句句的的操操作作必必须须在在程程序序运运行行时时才才能能完完成成。一一条条伪伪指指令令语语句句也也由由四四个个字字段段组组成成,其一般格式如下:其一般格式如下:符号名符号名 伪指令符操作数伪指令符操作数;注释;注释 汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(1 1)符号名)符号名 符号名在伪指令语句中是一个可选项,符号名后面没有符号名在伪指令语句中是一个可选项,符号名后面没有冒号,符号名可以是常量名、变量名、过程名等。冒号,符号名可以是常量名、变量名、过程名等。(2 2)伪指令符)伪指令符伪伪指指令令符符指指定定汇汇编编程程序序要要完完成成的的具具体体操操作作,它它是是伪伪指指令令语语句句的的核核心心部部分分,如如数数据据定定义义伪伪指指令令DBDB、DWDW、DDDD,段段定定义义伪伪指指令令SEGMENTSEGMENT,定义过程伪指令定义过程伪指令PROCPROC等等。等等。(3 3)操作数)操作数 伪伪指指令令中中的的操操作作数数可可以以是是常常数数、字字符符串串、变变量量、表表达达式式,其个数由具体的伪指令决定,各个操作数之间用其个数由具体的伪指令决定,各个操作数之间用“,”分隔。分隔。(4 4)注释)注释 伪指令语句的注释也是可选项,需要时必须以伪指令语句的注释也是可选项,需要时必须以“;”开始。开始。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程3 3、标识符、标识符 指指令令语语句句中中的的标标号号和和伪伪指指令令语语句句中中的的符符号号名名统统称称为为标标识识符。它们由若干字符组成,标识符的组成规则如下:符。它们由若干字符组成,标识符的组成规则如下:(1 1)一个标识符由)一个标识符由1-31-3个字符组成。个字符组成。(2 2)组组成成标标识识符符的的字字符符可可以以是是字字母母(A-ZA-Z或或a-za-z)、数数字字(0-90-9)、专专用用字字符符(“?”、“”“”、“”“”、“$”“$”、“下划线下划线_”_”)。)。(3 3)除除数数字字外外,上上述述其其余余字字符符均均可可作作为为标标识识符符的的首首字字符符,“”“”只能作为标识符的首字符。只能作为标识符的首字符。(4 4)不能使用属于系统的专用保留字。)不能使用属于系统的专用保留字。返回返回汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 4.34.3汇编语言数据与运算符汇编语言数据与运算符 汇汇编编语语言言的的指指令令语语句句和和伪伪指指令令语语句句操操作作数数一一般般为为常常量量、变量、标号、表达式。变量、标号、表达式。1 1、常量、常量常常量量是是没没有有任任何何属属性性的的纯纯数数值值,它它的的值值在在汇汇编编期期间间已已能能完完全全确确定定,且且在在程程序序运运行行中中也也不不会会发发生生变变化化。常常量量分分为为数数值值常常量量、字字符符串串常常量量和和符符号号常常量量,它它主主要要用用于于指指令令语语句句中中的的立立即数或伪指令语句中给变量赋初值等。即数或伪指令语句中给变量赋初值等。(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)字符串常量)字符串常量字字符符串串常常量量是是用用单单引引号号括括起起来来的的一一个个字字符符或或多多个个字字符符。字字符符串串常常量量以以单单引引号号中中各各字字符符的的ASCIIASCII码码形形式式存存储储在在内内存存中中,如如HH,在在内内存存中中就就是是4141H H,1212就就是是3131H H,32H32H。使使用用时时可可在在单单引引号号内内直直接接写写字字符符序序列列,如如1212ABAB,也也可可写写字字符符的的ASCIIASCII码码,ASCIIASCII码码之之间间用用逗逗号号分分隔隔(此此时时不不需需要要用单引号),如用单引号),如3131H H,32H32H,41H41H,42H42H表示字符串表示字符串1212ABAB。(3 3)符号常量符号常量符符号号常常量量是是指指用用EQUEQU伪伪指指令令或或赋赋值值语语句句“=”“=”定定义义过过的的符符号名,可作操作数项或在表达式中使用。号名,可作操作数项或在表达式中使用。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程2 2、变量、变量在在汇汇编编语语言言中中,变变量量是是一一个个数数据据存存储储单单元元的的名名称称,即即数数据据存存放放地地址址的的符符号号表表示示。它它代代表表存存放放在在某某些些存存储储单单元元的的数数据据,这这些些数数据据在在程程序序运运行行期期间间随随时时可可以以改改变变。为为方方便便访访问问变变量量,在程序中通过变量名来使用变量。在程序中通过变量名来使用变量。(1 1)变量的定义)变量的定义 变变量量通通常常在在数数据据段段或或附附加加段段中中使使用用数数据据定定义义伪伪指指令令来来定定义义,定定义义变变量量就就是是给给数数据据分分配配存存储储单单元元,有有时时为为存存储储单单元元赋赋予予一一个个变变量量名名,并并可可同同时时为为这这些些存存储储单单元元预预置置初初值值。数数据据定定义义伪伪指令的格式为:指令的格式为:变量名变量名 DB(DWDB(DW、DDDD、DQDQ、DT)DT)表达式表达式1 1,表达式,表达式2 2,汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程其中:变量名是可选项,它仅代表所定义数据存储区其中:变量名是可选项,它仅代表所定义数据存储区第一个单元的地址;第一个单元的地址;DBDB、DWDW、DDDD、DQDQ和和DTDT是伪指令符,具是伪指令符,具体一条数据定义伪指令取体一条数据定义伪指令取5 5种之一。种之一。DB DB定义的是字节类型的变量,每个表达式被分配定义的是字节类型的变量,每个表达式被分配1 1个字个字节单元。节单元。DWDW定定义义的的是是字字类类型型的的变变量量,每每一一个个表表达达式式被被分分配配1 1个个字字单单元(元(2 2个字节)。个字节)。DDDD定定义义的的是是双双字字类类型型的的变变量量,每每一一个个表表达达式式被被分分配配2 2个个字字单元(单元(4 4个字节)。个字节)。DQDQ定定义义的的是是四四字字类类型型的的变变量量,每每一一个个表表达达式式被被分分配配4 4个个字字单元(单元(8 8个字节)。个字节)。DTDT定定义义的的是是十十字字节节类类型型的的变变量量,每每一一个个表表达达式式被被分分配配1010个字节单元。个字节单元。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 表达式表达式1 1,表达式,表达式22是给变量或指定的存储单元赋是给变量或指定的存储单元赋予初值,它们有以下几种形式:予初值,它们有以下几种形式:(a a)数值表达式数值表达式 数数据据定定义义伪伪指指令令可可以以为为一一个个或或连连续续的的存存储储单单元元设设置置数数值初值。值初值。(b b)字符串表达式字符串表达式 对对于于DBDB伪伪指指令令,字字符符串串的的长长度度允允许许超超过过2 2个个字字符符,但但不不能能超超过过255255个个字字符符,字字符符串串必必须须用用单单引引号号括括起起来来,它它可可为为字字符符串串中中的的每每个个字字符符分分配配1 1字字节节单单元元,字字符符串串从从左左至至右右以以字符的字符的ASCIIASCII码形式按地址递增的顺序依次存放。码形式按地址递增的顺序依次存放。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(c c)?)?表达式表达式 不不带带引引号号的的?,用用于于为为变变量量预预留留内内存存单单元元,暂暂时时不不存存入入数据,即表示所定义的变量无确定的初值。数据,即表示所定义的变量无确定的初值。例如:例如:A DW A DW?,?,?为变量为变量A A预留预留2 2个字单元。个字单元。(d d)地址表达式地址表达式 操操作作数数为为地地址址表表达达式式时时,只只适适用用于于DWDW和和DDDD这这两两种种数数据据定定义义伪伪指指令令。如如果果地地址址表表达达式式为为一一变变量量(标标号号)名名,用用DWDW伪伪指指令令则则是是取取它它的的偏偏移移地地址址来来初初始始化化变变量量;用用DDDD伪伪指指令令则则是是取它的段首地址和偏移地址来初始化变量。取它的段首地址和偏移地址来初始化变量。(e e)带带DUPDUP的表达式的表达式格格式式为为:n n DUP DUP (表表达达式式),其其中中n n为为重重复复因因子子,只只能能取取正正整数,它表示定义了整数,它表示定义了n n个数据存储单元。个数据存储单元。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(2 2)变量的属性)变量的属性 由由于于存存储储器器是是分分段段使使用用的的,因因而而源源程程序序定定义义的的变变量量具具有有3 3个属性:个属性:(a a)段属性(段属性(SEGSEG)变量的段属性是指定义变量时它所在段的段首地址。变量的段属性是指定义变量时它所在段的段首地址。(b b)偏移属性(偏移属性(OFFSETOFFSET)变变量量的的偏偏移移属属性性是是指指所所在在段段的的段段首首地地址址到到定定义义该该变变量量的的位位置置之之间间的的字字节节数数(即即偏偏移移地地址址)。上上述述的的段段属属性性和和偏偏移移属性值就构成了一个变量的逻辑地址。属性值就构成了一个变量的逻辑地址。(c c)类型属性(类型属性(TYPETYPE)变变量量的的类类型型属属性性表表示示存存储储变变量量时时所所占占存存储储单单元元的的字字节节个个数。数。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(3 3)变量的使用)变量的使用 定义后的变量,在程序中的引用有两种情况:定义后的变量,在程序中的引用有两种情况:(a a)在在指指令令语语句句中中,采采用用存存储储器器操操作作数数的的几几种种寻寻址址方方式式,除除寄寄存存器器间间接接寻寻址址方方式式不不使使用用变变量量名名外外,其其余余各各种种寻寻址址方方式均可使用变量名。式均可使用变量名。例如,某数据段已定义一变量例如,某数据段已定义一变量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 B汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程3 3、标号、标号 标号是一条指令语句的符号地址,在汇编源程序中,只标号是一条指令语句的符号地址,在汇编源程序中,只有在需要转向一条指令语句时,才为该指令语句设置标号,有在需要转向一条指令语句时,才为该指令语句设置标号,以便在控制转移指令中直接引用这个标号。标号一般在代码以便在控制转移指令中直接引用这个标号。标号一般在代码段中定义和引用。由于标号代表了指令的符号地址,所以标段中定义和引用。由于标号代表了指令的符号地址,所以标号也有号也有3 3个属性:个属性:(a a)段段属属性性(SEGSEG)。标标号号的的段段属属性性是是指指标标号号定定义义所所在在段段的的段首地址。段首地址。(b b)偏偏移移属属性性(OFFSETOFFSET)。标标号号的的偏偏移移属属性性是是指指标标号号所所在在段的段首地址到该标号的字节距离。段的段首地址到该标号的字节距离。(c c)类类型型属属性性(TYPETYPE)。标标号号的的类类型型属属性性表表示示了了它它的的转转移移特特性性,即即该该标标号号是是作作为为段段内内还还是是段段间间转转移移(或或调调用用)指指令令的的目标地址。标号的类型属性有目标地址。标号的类型属性有2 2种:种:NEARNEAR类型和类型和FARFAR类型。类型。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 4 4、表达式和运算符、表达式和运算符汇汇编编语语言言的的指指令令语语句句和和伪伪指指令令语语句句中中,表表达达式式是是操操作作数数项项的的常常见见形形式式,表表达达式式是是由由常常量量、变变量量、标标号号用用运运算算符符连连接接而而成成有有意意义义的的式式子子。表表达达式式分分为为数数值值表表达达式式和和地地址址表表达达式式,任任一一表表达达式式的的值值只只计计算算一一次次,表表达达式式的的计计算算是是在在源源程程序序汇汇编编过过程程中中进进行行的的,而而不不是是在在程程序序运运行行中中进进行行的的,汇汇编编程程序序将将表表达达式式计计算算后后得得到到一一个个数数值值或或一一个个地地址。址。在在80868086汇汇编编语语言言中中,运运算算符符分分为为:算算术术运运算算符符、逻逻辑辑运运算算符符、关关系系运运算算符符、数数值值返返回回运运算算符符、属属性性运运算算符符和和字节分离运算符。字节分离运算符。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程(1 1)数值表达式)数值表达式 数数值值表表达达式式是是由由常常量量与与算算术术运运算算符符、逻逻辑辑运运算算符符或或关关系系运运算算符符构构成成的的有有意意义义的的式式子子。数数值值表表达达式式在在汇汇编编期期间间进进行行运算,运算结果为一数值常量,它只有大小而没有属性。运算,运算结果为一数值常量,它只有大小而没有属性。(2 2)地址表达式)地址表达式 地地址址表表达达式式是是由由常常量量、变变量量、标标号号、寄寄存存器器(BXBX、BPBP、SISI、DIDI)内内容容(用用寄寄存存器器名名加加方方括括号号表表示示)和和运运算算符符组组成成的的有有意意义义的的式式子子。单单个个的的变变量量、标标号号、寄寄存存器器的的内内容容是是地地址表达式的特例。址表达式的特例。地地址址表表达达式式中中可可以以使使用用算算术术运运算算符符中中的的“+”“+”、“-”“-”运运算符和关系运算符。算符和关系运算符。在地址表达式中,常用的形式是:变量在地址表达式中,常用的形式是:变量常量。常量。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 地地址址表表达达式式除除使使用用数数值值表表达达式式的的运运算算符符外外,还还可可以以使使用特殊算符。用特殊算符。(a a)属性运算符属性运算符 属属性性运运算算符符主主要要用用于于临临时时修修改改变变量量、标标号号或或某某个个内内存存单单元中的操作数的类型属性。元中的操作数的类型属性。段超越前缀段超越前缀“:”。其格式为:段寄存器名:地址表达式其格式为:段寄存器名:地址表达式 或段名:地址表达式或段名:地址表达式 类型运算符类型运算符PTRPTR。其使用格式为:类型其使用格式为:类型 PTR PTR 地址表达式地址表达式 根根据据地地址址表表达达式式的的不不同同值值,类类型型可可以以是是BYTEBYTE、WORDWORD、DWORDDWORD、NEARNEAR、FARFAR等。等。定义类型运算符定义类型运算符THISTHIS。其格式为:标识符其格式为:标识符 EQU THIS EQU THIS 类型类型汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 (b b)数值返回运算符数值返回运算符 数数值值返返回回运运算算符符有有5 5种种,这这些些运运算算符符的的运运算算对对象象必必须须是是变变量量或或标标号号,其其功功能能是是分分离离出出变变量量或或标标号号的的段段、偏偏移移地地址址及及类型的属性值,运算结果为一数值常量。类型的属性值,运算结果为一数值常量。SEGSEG运算符运算符 格式:格式:SEG SEG 变量或标号变量或标号 功能:分离出其后变量或标号所在段的段首地址。功能:分离出其后变量或标号所在段的段首地址。OFFSET OFFSET运算符运算符 格式:格式:OFFSET OFFSET 变量或标号变量或标号 功能:分离出其后变量或标号的偏移地址。功能:分离出其后变量或标号的偏移地址。TYPE TYPE运算符运算符 格式:格式:TYPE TYPE 变量或标号变量或标号 功能:分离出其后变量或标号的类型值。功能:分离出其后变量或标号的类型值。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 LENGTH LENGTH运算符运算符 格式:格式:LENGTH LENGTH 变量变量 功功能能:取取出出变变量量所所含含的的数数据据存存储储单单元元个个数数。该该运运算算符符只只对对变变量量起起作作用用,它它的的取取值值根根据据定定义义该该变变量量时时数数据据定定义义伪伪指指令令后后面面第第一一个个表表达达式式的的形形式式而而定定。如如果果第第一一个个表表达达式式为为重重复复子子句句“n nDUP DUP(表表达达式式)”的的形形式式,则则取取值值为为前前面面的的重重复复因因子子n n。如果为其它形式的表达式,则取值均为如果为其它形式的表达式,则取值均为1 1。SIZE SIZE运算符运算符 格式:格式:SIZE SIZE 变量变量 功功能能:取取出出变变量量所所含含的的数数据据存存储储区区的的总总字字节节数数。其其返返回回值值为为该该变变量量的的LENGTHLENGTH值值和和TYPETYPE值值的的乘乘积积,即即:LENGTH LENGTH 变变量量 *YTPE YTPE 变量。变量。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 (c c)分离运算符分离运算符 分离高字节运算符分离高字节运算符HIGHHIGH。格式:格式:HIGH HIGH 常量或地址表达式常量或地址表达式 功功能能:用用来来分分离离出出其其后后1616位位常常量量或或地地址址表表达达式式的的偏偏移移地地址址的高字节。的高字节。分离低字节运算符分离低字节运算符LOWLOW。格式:格式:LOW LOW 常量或地址表达式常量或地址表达式 功功能能:用用来来分分离离出出其其后后1616位位常常量量或或地地址址表表达达式式的的偏偏移移地地址址的低字节。的低字节。(d d)其他运算符其他运算符 SHORT SHORT运算符:用于说明其后的标号在短距离运算符:用于说明其后的标号在短距离 (-128-27-128-27之间)内。之间)内。()运算符用于改变运算的优先级别。()运算符用于改变运算的优先级别。运算符用于表示间接寻址。运算符用于表示间接寻址。返回返回汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 4.4 4.4 伪指令伪指令 伪伪指指令令又又称称为为伪伪操操作作,伪伪指指令令是是汇汇编编语语言言程程序序设设计计的的一一个个重重要要部部分分,由由于于汇汇编编程程序序在在汇汇编编过过程程中中无无法法区区分分源源程程序序中中的的分分段段情情况况,哪哪些些是是数数据据,哪哪些些是是指指令令,也也无无法法识识别别数数据据的的类类型型,以以及及源源程程序序在在哪哪结结束束,因因此此,8080X86X86宏宏汇汇编编语语言言提提供供了了多多种种伪伪指指令令,它它主主要要告告诉诉汇汇编编程程序序如如何何正正确确地地将将汇汇编编源源程程序汇编成目标程序。序汇编成目标程序。1、数据定义伪指令数据定义伪指令常用的数据定义伪指令有常用的数据定义伪指令有DBDB、DWDW、DDDD、DQDQ、DTDT。格式:格式:变量变量 数据定义伪指令数据定义伪指令 表达式表达式 ,表达式,表达式,功功能能:定定义义数数据据存存储储区区,类类型型由由数数据据定定义义伪伪指指令令确确定定,初初值由表达式给定。值由表达式给定。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 2 2、符号定义伪指令、符号定义伪指令符符号号定定义义伪伪指指令令用用于于为为程程序序中中多多次次出出现现的的同同一一个个常常量量或或表表达达式式定定义义为为一一个个标标识识符符,以以便便在在源源程程序序中中以以标标识识符符来来代代替替对对应的常量或表达式。符号定义伪指令有以下两种。应的常量或表达式。符号定义伪指令有以下两种。(1 1)等价伪指令)等价伪指令EQUEQU 格式:符号名格式:符号名 EQU EQU 表达式表达式 功能:为常量或表达式及其它各种符号定义一个等价的功能:为常量或表达式及其它各种符号定义一个等价的 符号名,但它不申请分配存储单元。符号名,但它不申请分配存储单元。说明:说明:表表达达式式可可以以是是常常量量或或数数值值表表达达式式;地地址址表表达达式式;变变量量、标号或指令助记符。标号或指令助记符。符号名不占存储单元,没有段、偏移和类型符号名不占存储单元,没有段、偏移和类型3 3种属性种属性 在在同同一一源源程程序序中中,使使用用EQUEQU定定义义的的符符号号不不能能与与本本程程序序中中的的其其它它符符号号名名同同名名;另另外外,同同一一符符号号不不能能用用EQUEQU伪伪指指令令重重新定义。新定义。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 EQUEQU伪指令主要有以下伪指令主要有以下3 3方面应用:方面应用:定义符号常量。用符号名表示常量、数值表达式。定义符号常量。用符号名表示常量、数值表达式。EQUEQU与与属属性性运运算算符符PTRPTR或或THISTHIS连连用用,可可以以给给变变量量或或标标号号定定义义新新的的类类型型属属性性并并重重新新命命名名。但但其其段段属属性性和和偏偏移移属属性性不不变。变。利利用用EQUEQU可可以以用用一一个个符符号号名名替替代代一一个个复复杂杂的的地地址址表表达达式式和和其其它它一一些些符符号号 ,如如指指令令助助记记符符、变变量量名名、标标号号、段段名、寄存器名、宏定义名等。名、寄存器名、宏定义名等。(2 2)等号伪指令)等号伪指令 格式:符号名格式:符号名=表达式表达式 功功能能:该该语语句句的的功功能能与与EQUEQU语语句句类类似似,不不同同的的是是等等号号伪伪指指令令能能对对所所定定义义的的符符号号名名多多次次重重新新定定义义,且且以以最最后后一一次次定定义的值为准。义的值为准。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 3 3、段结构伪指令段结构伪指令编编制制一一个个8080X86X86汇汇编编语语言言源源程程序序,段段是是基基础础,这这有有两两方方面面含含义义:一一是是必必须须按按段段来来构构造造程程序序,二二是是在在程程序序执执行行时时,要要凭凭借借四四个个段段寄寄存存器器对对各各个个段段的的存存储储单单元元进进行行访访问问。段段结结构构伪伪指指令令主要有两条语句,即段定义伪指令和假定伪指令。主要有两条语句,即段定义伪指令和假定伪指令。(1 1)段定义伪指令)段定义伪指令SEGMENT/ENDSSEGMENT/ENDS格式:段名格式:段名 SEGMENT SEGMENT 定位类型定位类型 组合类型组合类型 类别类别 段体段体 段名段名 ENDSENDS功能:定义一个逻辑段,指定段的名字和范围,段在内存功能:定义一个逻辑段,指定段的名字和范围,段在内存中的起始位置、段与段之间的连接关系。中的起始位置、段与段之间的连接关系。说明:说明:段名由用户指定,开始与结束的段名须一致。段名由用户指定,开始与结束的段名须一致。SEGMENT/ENDSSEGMENT/ENDS伪指令把程序分成若干逻辑段。伪指令把程序分成若干逻辑段。删节号为段体,段体内为指令和伪指令序列。删节号为段体,段体内为指令和伪指令序列。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 (2 2)假定伪指令)假定伪指令ASSUMEASSUME假假定定伪伪指指令令主主要要用用于于指指示示汇汇编编程程序序哪哪些些段段是是当当前前段段以以及及这这些段与段寄存器之间的对应关系。些段与段寄存器之间的对应关系。格式格式:ASSUME ASSUME 段寄存器名段寄存器名:段名段名,段寄存器名段寄存器名:段名段名,其其中中,段段名名是是指指用用SEGMENT/SEGMENT/ENDSENDS语语句句已已定定义义的的段段名名,也也可可以以是是表表达达式式“SEG SEG 变变量量或或标标号号”,或或者者是是关关键键字字NOTHINGNOTHING;段段寄存器名可为寄存器名可为CSCS、DSDS、SSSS、ESES四者之一。四者之一。功功能能:该该语语句句一一般般出出现现在在代代码码段段中中,用用来来设设定定段段寄寄存存器器与与段段之之间间的的对对应应关关系系,以以便便汇汇编编程程序序知知道道段段的的结结构构和和在在执执行行各各种种指指令令时时知知道道应应访访问问哪哪个个段段;也也可可用用来来取取消消段段寄寄存存器器与与段段之之间间的对应关系(使用的对应关系(使用NOTHINGNOTHING时)。时)。说明:说明:ASSUMEASSUME伪伪指指令令设设置置在在代代码码段段内内,第第一一个个ASSUMEASSUME语语句句一一般般放放在段定义语句之后,是说明性语句。在段定义语句之后,是说明性语句。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 在在一一个个代代码码段段中中,如如果果没没有有另另外外的的ASSUMEASSUME伪伪指指令令重重新设置,原有新设置,原有ASSUMEASSUME语句的设置一直有效。语句的设置一直有效。不不在在当当前前段段中中的的变变量量和和数数据据存存储储单单元元均均是是不不可可访访问问的的,否否则则,会会在在汇汇编编时时产产生生错错误误或或运运行行时时造造成成混混乱乱,产产生生逻逻辑辑上上的错误,得出错误结果。的错误,得出错误结果。ASSUMEASSUME伪伪指指令令不不产产生生任任何何目目标标代代码码,它它仅仅仅仅是是告告诉诉汇汇编编程序,哪些段是当前段,而且它们分别由哪个段寄存器指向。程序,哪些段是当前段,而且它们分别由哪个段寄存器指向。汇汇编编程程序序不不能能检检查查在在程程序序运运行行期期间间段段寄寄存存器器内内容容是是否否与与上上述述ASSUMEASSUME语语句句的的设设置置一一致致。如如果果在在程程序序中中间间用用ASSUMEASSUME语语句句重重建建了了DSDS或或ESES与与某某段段的的关关系系时时,就就一一定定要要紧紧跟跟着着将将这这个个新新段段首首地地址址送送入入DSDS或或ESES中中,否否则则,会会因因段段寄寄存存器器的的内内容容未未更更改改而而使使得得后后面面数数据据的的读读写写仍仍在在原原来来的的数数据据段段中中进进行行,这这样样的的错错误误,系统是检查不出来的,即出现逻辑错误。系统是检查不出来的,即出现逻辑错误。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 4 4、源程序开始和结束伪指令源程序开始和结束伪指令 (1 1)源程序开始伪指令)源程序开始伪指令 在源程序开始处可以用在源程序开始处可以用NAMENAME或或TITLETITLE为模块取名字。为模块取名字。NAMENAME伪指令伪指令 格式:格式:NAME NAME 模块名模块名 汇编程序将以给出的汇编程序将以给出的“模块名模块名”作为模块的名字。作为模块的名字。TITLETITLE伪指令伪指令 如果程序中没有如果程序中没有NAMENAME伪指令,则也可使用伪指令,则也可使用TITLETITLE伪指令。伪指令。格式:格式:TITLE textTITLE text TITLETITLE伪伪指指令令可可指指定定每每一一页页上上打打印印的的标标题题。同同时时,若若程程序序中中没没有有NAMENAME伪伪指指令令,则则汇汇编编程程序序将将用用text text 中中的的前前6 6个个字字符符作作为为模块名。模块名。texttext最多可有最多可有6060个字符。个字符。若若程程序序中中既既无无NAMENAME又又无无TITLETITLE伪伪指指令令,则则将将用用源源程程序序名名作作为为模模块块名名。所所以以NAMENAME及及TITLETITLE伪伪指指令令并并不不是是必必要要的的,但但一一般般常常使使用用TITLETITLE,以便在列表文件中能打印出标题来。以便在列表文件中能打印出标题来。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程 (2 2)源程序结束伪指令源程序结束伪指令格式:格式:END END 地址表达式地址表达式 功能:该语句为源程序的最后一个语句,用以标志整功能:该语句为源程序的最后一个语句,用以标志整个程序的结束,即告诉汇编程序汇编工作到此个程序的结束,即告诉汇编程序汇编工作到此结束。结束。其其中中,地地址址表表达达式式为为可可选选项项,若若选选用用地地址址表表达达式式,则则表表示示此此程程序序是是主主程程序序,它它可可以以单单独独执执行行,其其地地址址表表达达式式为为该该程程序序的的启启动动地地址址,即即程程序序开开始始运运行行的的第第一一条条指指令令的的地地址址,例例如如,“ENDENDSTART”START”,此此STARTSTART是是第第一一条条指指令令的的标标号号;若若不不选选用用表表达达式式,则则说说明明此此程程序序为为一一子子程程序序,不不能能单单独独运运行,只能被其它程序调用。行,只能被其它程序调用。汇编语言汇编语言淮南师范学院重点课程淮南师范学院重点课程5 5、定位伪指令、定位伪指令ORGORG与汇编地址计数器(与汇编地址计数器($)汇汇编编程程序序在在汇汇编编源源程程

    注意事项

    本文(《汇编语言程序设计》第4章.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开