汇编语言与汇编程序设计.pptx
《汇编语言与汇编程序设计.pptx》由会员分享,可在线阅读,更多相关《汇编语言与汇编程序设计.pptx(58页珍藏版)》请在咨信网上搜索。
1、本章知识结构图 汇编语言与汇编程序伪指令汇编语言程序设计方法宏定义与宏调用语句宏调用中的参数替换宏定义的标号、注释及删除宏的退出分支结构程序循环结构程序子程序设计DOS功能调用BIOS功能调用汇编语言概述符号定义伪指令数据定义伪指令段定义伪指令伪指令的类型及其格式宏指令条件汇编第5章 汇编语言与汇编程序设计5.1 汇编语言概述5.2 伪指令5.3 宏指令5.4 条件汇编5.5 程序设计基本方法5.1 汇编语言概述汇编语言概述u汇编语言:一种面向机器的用符号表示的程序设计语言,这些符号称为助记符。u和机器语言不同的是,汇编语言用直观、便于记忆和理解的英文单词或缩写符号来表示指令和数据变量。u汇编
2、指令集和伪指令集及其使用规则的统称就是汇编语言。5.1 汇编语言概述汇编语言概述5.1.2 汇编程序功能及上机过程汇编程序功能及上机过程汇编程序有各种类型,不同机型其汇编程序也不相同。汇编程序一般都具有宏汇编的功能,支持地址和数据的符号表示,支持对内存的管理,支持程序的模块化组织,支持多种类型的数据表示等。汇编程序的主要功能:汇编程序的主要功能:(1)检查源程序;(2)测出源程序中的语法错误,并给出出错信息;(3)产生源程序的目标程序,并可给出列表文件;(4)展开宏指令。汇汇编编语语言言程程序序设设计计上上机机过过程程5.1 汇编语言概述汇编语言概述5.1.3 汇编语言源程序的结构与格式1结构
3、与书写格式汇编语言源程序通常由四部分组成:数据段、附加段、堆栈段和代码段。有时当不需要附加段时,也可采用三段结构。数据段用来存放执行程序时需用的数据,一般至少需要一个数据段。堆栈段用来保存子程序调用或中断服务程序返回地址及现场寄存器的值,此外,还可以临时保存一些工作寄存器和变量的值。代码段存放程序指令代码,实施程序预定的运算与操作。5.1 汇编语言概述汇编语言概述2汇编语言语句格式汇编语言语句一般格式:标识符/语句标号 操作数序列;注释 表示可选项。(1)标识符:标识符是程序设计人员自己定义的标识符号,简称标号。它可以是变量名,段名及过程名等,用来表示数据、数据在内存中的偏移地址及指令代码在内
4、存中的偏移地址。5.1 汇编语言概述汇编语言概述 合法的标识符(标号)的组成规则 组成标号的字符:AZ,az,09,?,$,_ 标识符长度不限,但只有前31个字符有效。标号的第一个字符不能是09的数字。不能以数字开头。机器指令语句中标号必须以冒号(:)结束。伪指令语句中标号后不允许有冒号。点号.只能用作标识符的第一个字符。源程序中大、小写字母等效。汇编语言本身对机器指令的助记符号、伪指令助记符号和寄存器名字都已作了定义,称为保留字,在编程时所定义的标识符号通常称为自定义名字。注意:不要用保留字作为自定义名字,以免引起混淆。标识符(标号)的属性标识符(标号)具有3种属性:段、偏移量和类型。5.1
5、 汇编语言概述汇编语言概述(2)操作符操作符可以是指令助记符、伪指令助记符和宏指令(宏名字)符号。无标号时操作符可以从一行的开始书写,有标号时则从标号后开始书写,标号与操作符之间以冒号、空格或水平制表符分隔,操作符与操作数之间以空格或水平制表符分隔。如果操作符后无操作数或注释时,以行终止符(回车符)结束。5.1 汇编语言概述汇编语言概述(3)操作数序列操作数是操作符的操作对象,操作数可以是数据本身、标号、寄存器名字或算术表达式。随指令类型的不同而变化。语句中有多个操作数时,彼此间用逗号分隔。操作数后有注释时,以分号“;”结束,无注释时以行终止符结束。5.1 汇编语言概述汇编语言概述(4)“;”
6、注释符注释是对程序段功能或语句在程序中的作用的说明,目的是在阅读、分析程序时,便于对程序各部分的逻辑关系有一个大致的了解。提高程序的可读性和可理解性,便于程序的修改和维护。注释可由任意多个字符组成。5.1 汇编语言概述汇编语言概述5.1.4 常量、变量、运算符和表达式1常量常量是一个确定的数值,在程序运行期间不能改变。常量可以用作立即数、偏移量以及用于初始化存储器单元。2变量变量是在程序运行期间可以改变的量,变量名按标识符的规则取名。所有的变量都有三种属性:(1)段值:变量所在段的段首址。(2)偏移量:从段首址到变量存储单元的字节数。(3)类型:变量占用的存储器单元的字节数。5.1 汇编语言概
7、述汇编语言概述3运算符和表达式表达式由操作数和运算符按语法规则组合而成。表达式的计算结果是一个确定的值,在汇编期间由汇编程序计算。表达式中的操作数可以是寄存器名、常量、标号或变量。5.1 汇编语言概述汇编语言概述(1)算术运算符算术运算符完成、*、/和取模运算等。常用于数字操作数,得到数字运算结果,也可以用于地址操作数,但只能进行两种有意义的加、减运算,其他的运算则是无意义的。具体如下:加法运算符()减法运算符()乘法运算符(*)除法运算符(/)取模运算符(MOD)5.1 汇编语言概述汇编语言概述(2)移位运算符移位运算符有两个:SHR和SHL,分别对常数进行逻辑右移和逻辑左移。(3)逻辑运算
8、符逻辑运算符AND、OR、XOR和NOT分别对常数进行按位逻辑与、逻辑或、异或和逻辑非运算。5.1 汇编语言概述汇编语言概述(4)关系运算符关系运算符用于比较两个表达式,表达式中的项必须是常数或同一段内的变量。如果是常数则按无符号数比较,如果是变量则比较它们的偏移量。如果比较结果为真,关系表达式的值为0FFFFH,如果为假,关系表达式的值为0。等于运算符(EQ)不等于运算符(NE)小于运算符(LT)小于或等于运算符(LE)大于运算符(GT)大于或等于运算符(GE)5.1 汇编语言概述汇编语言概述(5)分析运算符分析运算符有SEG、OFFSET、TYPE、LENGTH和SIZE。这些运算符用于分
9、解存储器操作数(标号、变量)的各部分(段地址、偏移地址、类型等),并返回相应的值。(6)属性修改运算符这类运算符有PTR和THIS,用来改变存储器操作数的类型属性。(7)记录专用算符记录专用算符有MASK、WIDTH。5.1 汇编语言概述汇编语言概述(8)运算符的优先级表达式中有多个运算符时,按优先级从高到低顺序运算,优先级相同的运算符则从左至右运算。任何情况都可以用圆括号改变运算顺序。5.2 伪指令5.2.1 伪指令的类型及其格式1类型(1)符号定义伪指令(2)数据定义伪指令(3)段定义伪指令(4)过程定义伪指令(5)其他伪指令2伪指令的格式格式:标识符 操作数1,操作数2;注释 5.2 伪
10、指令5.2.2 符号定义伪指令符号定义伪指令用于给程序中多次出现的同一个常量或表达式赋予一符号名,该符号名可在程序中替代相应的常量和表达式。1EQU(EQUATE)伪指令2“=”伪指令5.2 伪指令5.2.3 数据定义伪指令数据定义伪指令用于为数据项分配存储单元,并给所分配的存储单元定义符号名(即定义符号地址),同时初始化该存储单元或由该单元开始的若干连续单元。初始化单元就是将一个值(确定的数值或不确定的值)放入指定的内存单元。常用的数据定义伪指令有DB、DW、DD、DQ和DT。1DB伪指令功能:DB伪指令初始化一个单字节存储单元。2DW伪指令功能:DW伪指令初始化一个单存储单元。5.2 伪指
11、令3DD伪指令4DQ伪指令5DT伪指令6复制操作符在数据定义伪指令的操作数字段中,还可以使用复制操作符DUP,以便定义大量相同数据。复制操作符格式:DUP(初值1,初值n)。表达式的值为一个正整数,用作重复计数,它指定括号中的初值重复定义次数。5.2 伪指令5.2.4 段定义伪指令1SEGMENTENDS伪指令格式:SEGMENT【定位类型】【组合类型】【类别名】ENDS(1)定位类型指定了装入某段时,该段对起始地址边界的要求;(2)组合类型组合类型指定段之间的连接关系为可选项;(3)类别名是一个标识符,必须用单引号括起来连接程序LINK将根据组合类型把类别名相同的段连接在一起。5.2 伪指令
12、2ASSUME伪指令当CPU要访问存储器中某段的存储单元时,必须先将指向该段的段寄存器提供的段地址和该存储单元的偏移地址转换为物理地址。ASSUME的作用是告诉汇编程序,把源程序转换为机器代码时,各段寄存器的符号地址,以确定和检查机器指令中操作数所在的段,产生正确的机器指令代码或打印出错误信息。格式:ASSUME 段寄存器名:段名,例如:ASSUME CS:CODE,DS:DATA,SS:STACK5.2 伪指令3ORG伪指令代码定位伪指令。汇编程序使用了一个地址计数器,用来记录汇编过程中正被汇编指令的偏移地址。ORG伪指令可通过地址计数器提供程序定位功能。用来确定其后的数据和代码存放在相应段
13、中的起始位置。ORG伪指令格式:ORG 的值为一个无符号的十六位二进制数,是相对于段基址的偏移量。ORG伪指令把表达式的值赋给地址计数器,使得ORG之后的指令或数据以表达式的值为起始地址开始存放,除非遇到新的ORG伪指令。5.2 伪指令4过程定义伪指令汇编语言程序的代码段由一个主过程和若干个子过程构成,子过程也称为子程序。利用过程定义伪指令可将程序按功能划分成模块,这样有利于理解、调试和修改程序。格式:过程名PROCNEAR/FAR RET 过程名 ENDP伪指令PROC和ENDP必须成对出现,并且过程名要相同。5其他伪指令5.3 宏指令5.3.1 宏定义与宏调用语句1宏定义宏定义的形式如下:
14、MACRO,语句串 ENDM2宏调用语句3宏展开5.3 宏指令5.3.2 宏调用中的参数替换参数替换时规定如下:(1)宏定义的形式参数在语句中一定是一个语法单位,即形式参数的两端应有间隔符,间隔符可以是空格、逗号、括号以及运算符等符号。(2)&可作为宏定义中虚设的间隔符,表示其后面的是形参,仅在宏定义中使用。在宏展开时,用相应实参替换。(3)如果参数中包含间隔符,可用尖括号括起来,尖括号中的空格不被忽略。(4)宏定义使用中,如果形参个数大于实参个数,则用空代替,反之忽略多余的实参。5.3 宏指令5.3.3 宏定义的标号、注释及删除宏定义的标号、注释及删除1宏定义中的标号2宏定义中的注释(1)宏
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 汇编程序 设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。