您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 《汇编语言程序设计》第4章
汇编语言淮南师范学院重点课程第4章汇编语言与源程序结构◆汇编语言源程序与汇编程序◆汇编语言语句种类及其格式◆汇编语言数据与运算符◆伪指令◆源程序结构模式帛轧亏呕梯棵徘域守巫纵饵敛祟崎铜疾巳筏秧盛外辛臂茅骚舌雅佐拼搞贴《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程4.1汇编语言源程序与汇编程序1、汇编语言源程序汇编语言源程序是用汇编语言编写的程序,简称汇编语言程序。汇编语言程序通过编辑程序在计算机中建立汇编语言源程序文件(ASM文件)。2、汇编程序将汇编语言源程序编译成目标程序的加工程序称为汇编程序。这一加工过程称为汇编。汇编程序的作用就是把源程序文件(ASM文件)转换成用二进制代码表示的目标程序文件(OBJ文件)。汇编程序的主要功能有:①检查源程序。②测出源程序语法错误,并给出错误。③产生目标程序,并可给出列表文件④展开宏指令。返回庸猜屯塑矽喳胀胆胆教掂蜜郊粮萝躯浑现烩樱俐坚误卵衔伯靖卸问吧笔东《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程4.2汇编语言语句种类及其格式语句是汇编语言源程序的基本组成单位。一个汇编语言源程序中有3种基本语句:指令语句、伪指令语句和宏指令语句。前两种是最常见、最基本的语句。指令语句和伪指令语句不仅在程序中的功能不同,而且实现其功能的方法和时间也是不同的。1、指令语句指令语句就是计算机中指令系统的各条指令,每条指令语句在汇编时都产生一个供CPU执行的机器目标代码,所以这种语句又称为可执行语句。计算机中每条指令语句表示一种基本功能,这些基本功能是在程序运行期间由计算机硬件来实现的。一条指令语句由四个字段组成,其一般格式如下:[标号:]指令助记符[操作数][;注释]僻尾襟腊位主扒凋泰芥桅西抬充碴翼通重扣厢棍祷曝氟逛奥砂盅拣潞锈袋《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程(1)标号标号是指令语句的符号地址,它代表指令代码存放地址的第一个字节地址。标号是指令语句的可选项,通常在一个程序段或子程序的入口指令语句选用标号,当程序需要转入这个程序段或调用子程序时,就可直接引用这标号。标号通常在代码段中定义,后面跟冒号“:”,它经常在转移指令或CALL指令中引用,用以表示转向地址,引用时标号后不跟冒号。(2)指令助记符指令助记符为指令语句的核心,是不可省略的主要部分,如MOV、ADD、XOR、RCL等等,它表示指令语句要求CPU完成的具体操作。晋十俗纤方伯眷姨仰慢扑扦子叙颂做汛筋妇汛粟支忿寅钦乾装鹏拒但销武《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程(3)操作数操作数表示指令助记符的操作对象,不同的指令所带的操作数不同,有一个操作数的指令(如INC、NOT等),有二个操作数的指令(如ADD、XOR等),无操作数指令(如CLC、STD等)。若需要操作数,则每一个操作数要依据寻址方式来表示。操作数可以是常数、寄存器、标号、变量和表达式。(4)注释注释是用来说明一段程序或一条或多条指令的功能,它是可选项,注释均以分号“;”开始,它可占一行或多行。注释还通常用于调试程序。注释是语句的非执行部分,因此,它不出现在机器目标代码中,也不影响指令语句的功能。吉集陇挂补畸醚牙损含域综仕伦跺梨迅为戒迷鸡蹭幼匡享励溯阉崔芒七纠《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程2、伪指令语句伪指令语句指示汇编程序在汇编源程序时完成某些工作,比如完成数据定义、分配存储区、指示程序结束等。伪指令属于汇编控制命令,它所指示的操作是由汇编程序在汇编源程序时完成的,在汇编时,它不产生目标代码,在将源程序汇编成目标程序后,它就不复存在了。综上所述可知,伪指令语句与指令语句的主要区别是:伪指令语句经汇编后不产生机器目标代码,而指令语句经汇编后将产生相应的机器目标代码;伪指令语句所指示的操作是在程序汇编时完成的,而指令语句的操作必须在程序运行时才能完成。一条伪指令语句也由四个字段组成,其一般格式如下:[符号名]伪指令符操作数[;注释]颜蹈午作俱蓄泄烯臂下枷辈兰邹雇踪虽泳怜菠惺讫选蜀移助尧袄涅淹渭腕《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程(1)符号名符号名在伪指令语句中是一个可选项,符号名后面没有冒号,符号名可以是常量名、变量名、过程名等。(2)伪指令符伪指令符指定汇编程序要完成的具体操作,它是伪指令语句的核心部分,如数据定义伪指令DB、DW、DD,段定义伪指令SEGMENT,定义过程伪指令PROC等等。(3)操作数伪指令中的操作数可以是常数、字符串、变量、表达式,其个数由具体的伪指令决定,各个操作数之间用“,”分隔。(4)注释伪指令语句的注释也是可选项,需要时必须以“;”开始。摸范箱浓缮采赊纷悼阵污查颊骨忿疼檬晌詹蓑隅驻淫茶红寺糕夫丈远矛誉《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程3、标识符指令语句中的标号和伪指令语句中的符号名统称为标识符。它们由若干字符组成,标识符的组成规则如下:(1)一个标识符由1--3个字符组成。(2)组成标识符的字符可以是字母(A--Z或a--z)、数字(0--9)、专用字符(“?”、“·”、“@”、“$”、“下划线_”)。(3)除数字外,上述其余字符均可作为标识符的首字符,“·”只能作为标识符的首字符。(4)不能使用属于系统的专用保留字。返回淌粘般声骚注桑阅猛蹬帜狸硅菩核块隐饺醉椭剁坍贪辊挠汀滋崩鞍展淡食《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程4.3汇编语言数据与运算符汇编语言的指令语句和伪指令语句操作数一般为常量、变量、标号、表达式。1、常量常量是没有任何属性的纯数值,它的值在汇编期间已能完全确定,且在程序运行中也不会发生变化。常量分为数值常量、字符串常量和符号常量,它主要用于指令语句中的立即数或伪指令语句中给变量赋初值等。(1)数值常量数值常量分为整数和实数。例如:11100011B,45693,0FF2AH,356703Q都是正确的整数形式,又如:543.567,﹣45.23,1.2E﹣2,﹣45.4E﹢9都是正确的实数形式。蜡辐猎漏嫁民晕经蝇昧窝氛凳辉缎佑邪胰栏泥棍秉湿穷美苦搁铬舟小瑚侦《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程(2)字符串常量字符串常量是用单引号括起来的一个字符或多个字符。字符串常量以单引号中各字符的ASCII码形式存储在内存中,如‘H’,在内存中就是41H,‘12’就是31H,32H。使用时可在单引号内直接写字符序列,如‘12AB’,也可写字符的ASCII码,ASCII码之间用逗号分隔(此时不需要用单引号),如31H,32H,41H,42H表示字符串‘12AB’。(3)符号常量符号常量是指用EQU伪指令或赋值语句“=”定义过的符号名,可作操作数项或在表达式中使用。舜盾讼寇椭勾驶波呸租堂夏帧匡酝坤承滦柏涪丢蝗猴舒瞅拖爹镁灵梳丛坦《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程2、变量在汇编语言中,变量是一个数据存储单元的名称,即数据存放地址的符号表示。它代表存放在某些存储单元的数据,这些数据在程序运行期间随时可以改变。为方便访问变量,在程序中通过变量名来使用变量。(1)变量的定义变量通常在数据段或附加段中使用数据定义伪指令来定义,定义变量就是给数据分配存储单元,有时为存储单元赋予一个变量名,并可同时为这些存储单元预置初值。数据定义伪指令的格式为:[变量名]DB(DW、DD、DQ、DT)表达式1,表达式2,…捅胆就甚畦鹏豫酒涩杨模梧淘闲假阂酸狠抑闷围揩铆劳巧演瞒库捞款谁曲《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程其中:变量名是可选项,它仅代表所定义数据存储区第一个单元的地址;DB、DW、DD、DQ和DT是伪指令符,具体一条数据定义伪指令取5种之一。DB定义的是字节类型的变量,每个表达式被分配1个字节单元。DW定义的是字类型的变量,每一个表达式被分配1个字单元(2个字节)。DD定义的是双字类型的变量,每一个表达式被分配2个字单元(4个字节)。DQ定义的是四字类型的变量,每一个表达式被分配4个字单元(8个字节)。DT定义的是十字节类型的变量,每一个表达式被分配10个字节单元。冻疮姓铲咙期趁喘睫庭枉赢碑撤砸在竣害绦杂须帛掘抚试剿朽亩键滇庙镑《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程表达式1,表达式2……是给变量或指定的存储单元赋予初值,它们有以下几种形式:(a)数值表达式数据定义伪指令可以为一个或连续的存储单元设置数值初值。(b)字符串表达式对于DB伪指令,字符串的长度允许超过2个字符,但不能超过255个字符,字符串必须用单引号括起来,它可为字符串中的每个字符分配1字节单元,字符串从左至右以字符的ASCII码形式按地址递增的顺序依次存放。阐龚肠里痛国益席浴悄短香膜捂糠猖檄称森众笛唾琳菊伏瓮管唾堆铅秽挛《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程(c)?表达式不带引号的?,用于为变量预留内存单元,暂时不存入数据,即表示所定义的变量无确定的初值。例如:ADW?,?为变量A预留2个字单元。(d)地址表达式操作数为地址表达式时,只适用于DW和DD这两种数据定义伪指令。如果地址表达式为一变量(标号)名,用DW伪指令则是取它的偏移地址来初始化变量;用DD伪指令则是取它的段首地址和偏移地址来初始化变量。(e)带DUP的表达式格式为:nDUP(表达式),其中n为重复因子,只能取正整数,它表示定义了n个数据存储单元。哲憎瞻蹄欧箕炳七涌绅帚预庭罢老羹讶西现瞳骆唤头圭诌张菠慷腆遏懂沪《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程(2)变量的属性由于存储器是分段使用的,因而源程序定义的变量具有3个属性:(a)段属性(SEG)变量的段属性是指定义变量时它所在段的段首地址。(b)偏移属性(OFFSET)变量的偏移属性是指所在段的段首地址到定义该变量的位置之间的字节数(即偏移地址)。上述的段属性和偏移属性值就构成了一个变量的逻辑地址。(c)类型属性(TYPE)变量的类型属性表示存储变量时所占存储单元的字节个数。奔囤馆咏且慷磊夹泄晴蓬针毖扶礼志露荷耻木宪幸拾蝎七初朴拇久卿咙藻《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程(3)变量的使用定义后的变量,在程序中的引用有两种情况:(a)在指令语句中,采用存储器操作数的几种寻址方式,除寄存器间接寻址方式不使用变量名外,其余各种寻址方式均可使用变量名。例如,某数据段已定义一变量ARRAY:ARRAYDW5000H,4000H(b)在数据定义伪指令DW和DD中,操作数字段可直接引用已定义过的变量名。如:ADB50H,40HBDWACDDB斗跺逝年秉罐统基蚀破米萎肯宫砌妓卜脸寇造曼凉咯尹管咯处白盲蒋杜脯《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重点课程3、标号标号是一条指令语句的符号地址,在汇编源程序中,只有在需要转向一条指令语句时,才为该指令语句设置标号,以便在控制转移指令中直接引用这个标号。标号一般在代码段中定义和引用。由于标号代表了指令的符号地址,所以标号也有3个属性:(a)段属性(SEG)。标号的段属性是指标号定义所在段的段首地址。(b)偏移属性(OFFSET)。标号的偏移属性是指标号所在段的段首地址到该标号的字节距离。(c)类型属性(TYPE)。标号的类型属性表示了它的转移特性,即该标号是作为段内还是段间转移(或调用)指令的目标地址。标号的类型属性有2种:NEAR类型和FAR类型。大物盈泄卞询聋渔龄补稿扑贪掉蠢象啥憾唾超构雨滤滋桃罗滴脚冀靛傍夺《汇编语言程序设计》第4章《汇编语言程序设计》第4章汇编语言淮南师范学院重
本文标题:《汇编语言程序设计》第4章
链接地址:https://www.777doc.com/doc-3910649 .html