汇编语言程序设计概要.pptx
《汇编语言程序设计概要.pptx》由会员分享,可在线阅读,更多相关《汇编语言程序设计概要.pptx(66页珍藏版)》请在咨信网上搜索。
第五章 汇编语言程序设计掌 握:汇编语言程序中符号、数据、段结构和过程等的定义方法。掌 握:汇编语言程序中段寄存器的各种加载方法。掌 握:无条件转移指令、条件转移指令、循环控制指令、子程序 的调用指令和返回指令的格式与使用。掌 握:顺序、分支、循环和子程序结构的程序设计方法与技术。理 解:汇编语言程序中三种语句的格式、特点和作用。理 解:汇编语言程序中使用的各种运算符,对常用的运算符应会 正确使用。理 解:在数值运算、串操作运算和代码转换中程序设计实例。了 解:宏定义的定义和使用。学习目标:学习目标:第五章的内容5.1概述5.2汇编语言语句5.3汇编语言数据5.4伪指令语句5.5宏指令语句5.6顺序程序设计5.7分枝程序设计5.8循环程序设计5.9自程序设计5.10实用程序设计示例5.11汇编语言程序的开发5.1概述例5-1A+BS=CA-B5.2汇编语言语句-(本节内容)伪指令和指令的通用格式均由四个字段组成:名字 操作符 操作数 ;4.注释5.2汇编语言语句-(本节内容)各字段说明:n1.名字字段(Name Field)131名字字段的三个注意事项 开头n2.操作符字段(Operator Field)保留字n3.操作数字段(Operand Field)n4.注释字段(Comment Field)5.3汇编语言数据-(本节内容)5.3.1符号定义语句符号定义语句5.3.2数据定义语句数据定义语句5.3.3数据数据5.3.4运算符运算符5.3 汇编语言数据 5.3.1符号定义语句11.等值伪指令符号 EQU 表达式/符号(1)常数表达式(2)地址表达式(3)变量名、标号、或指令助记符的化名2.等号伪指令符号=表达式/符号(1)将符号重新定义(2)除指令外将变量名或标号起化名5.3.1符号定义语句3.符号定义伪指令符号定义伪指令 基本形式:符号名EQU表达式符号名 =常数表达式功能:给表达式指定一个等价的符号名。说明:(1)=后的表达式只能是常数,对于字符或字符串,汇编时按整数处理。例如:COUNT=20MOV CX,COUNT;等价于MOV CX,20(2)EQU后的表达式可以是数值、字符串、寄存器名、指令助记符等。(3)EQU不能重复定义,而=可重复定义,其作用域从定义点到重新定义之前。5.3 汇编语言数据 5.3.1符号定义语句21.等值伪指令符号 EQU 表达式/符号2.等号伪指令符号=表达式/符号上述两者之间的区别:1.等号伪指令可以重新定义符号2.等号伪指令不可以重新定义汇编指令,EQU可以。5.3 汇编语言数据5.3.2数据定义语句变量定义伪指令变量定义伪指令 变量定义伪指令用来为数据分配内存空间,并设置相应内存单元的初始值。形式:变量名变量定义符 操作数,操作数其中,变量名是一个符号地址,表示其后操作数的首地址,变量名为可选项,给出变量名只是为了按名存取其对应的内存单元。5.3 汇编语言数据5.3.2数据定义语句变量定义符主要包括下列几种:DB(Define Byte):定义字节,后面的每个操作数占1个字节。DW(Define Word):定义字,后面的每个操作数占1个字。DD(Define Dword):定义双字,后面的每个操作数占2个字。5.3 汇编语言数据5.3.2数据定义语句操作数可以是常数、用EQU或=定义的符号常量、表达式、?和DUP子句等。其中,?表示只保留内存空间,未定义初始值。DUP子句的格式为:重复次数 DUP(操作数,操作数)5.3 汇编语言数据-5.3.2数据定义语句段属性变量的三个属性:偏移量属性类型属性1.数值表达式表达式的类型:2.?表达式3.字符串表达式4.带DUP的表达式5.3.2数据定义语句-表达式使用11.数值表达式例:ageDB50age1DB12H,34H,56Hdata1DW1234H,2345Hdata2DD4567H,6789H5.3.2数据定义语句-表达式使用22.?表达式例:ageDB?age1DB?,?,?data1DW?,?data2DD?,?5.3.2数据定义语句-表达式使用33.字符串表达式(DB256,DW/DD12个)例:name1DBabcdefname2DBzhang,wang,liname3DWto,jename4DDma,le5.3.2数据定义语句-表达式使用44.带DUP表达式例:DB变量名DW表达式1DUP(表达式2)DDDUP可以嵌套5.3汇编语言数据-5.3.3数据11.数值常数数值常数 二、八、十、十六进制二、八、十、十六进制2.字符常数字符常数(1)立即数 常数的应用常数的应用(2)位移量(3)伪指令的赋值一、常数一、常数5.3汇编语言数据-5.3.3数据2二、寄存器操作数:通用寄存器和段寄存器的内容三、存贮器操作数:存贮单元中的内容1.变量(1)变量名地址(2)变量的地址 变量名 DW/DD 另个变量名此时存的是地址5.3汇编语言数据-5.3.3数据32.标号(1)段属性标号的三个属性 (2)偏移量属性 near(3)类型属性 far类型属性可以用label 来设置,如果不设置的话,有默认属性5.3汇编语言数据-5.3.3数据4Label的使用a.与指令语句连用例:sub1_FARLabelfar sub1:MOVAX,789AHb.与数据定义语句连用例:DA_W2LabelWORD DA_W1DB10H DUP(12H,34H)5.3汇编语言数据-5.3.4运算符1.算术运算符5.3汇编语言数据-5.3.4运算符2.逻辑运算符5.3汇编语言数据-5.3.4运算符3.关系运算符5.3汇编语言数据-5.3.4运算符4.数值返回运算符(1)SEG和OFFSET运算符(2)TYPE运算符(3)LENGTH运算符和SIZE运算符5.3汇编语言数据-5.3.4运算符5.属性运算符PTR6.运算符优先级5.4.1段定义语句一、段定义伪指令段定义由SEGMENT与ENDS伪指令实现,基本形式如下:段名SEGMENT STACK USE16 段名 ENDS 其中,STACK仅用于堆栈段。USE16指出使用16位段。在实模式下,只能使用16位段,而32位段只能用于保护模式程序。在实模式下,如果要使用32位指令,还必须在段定义时给出USE16。段名作为操作数出现在指令中时,MASM将其视为立即数,表示段地址。5.4.1段定义语句1.段名(必须有)2.定位类型1.PAGE2.PARA3.WORD4.BYTE5.4.1段定义语句 3.组合类型1.NONE(默认)2.PUBLIC3.COMMON4.STACK5.AT表达式6.MEMORY5.4.1段定义语句 4.类别名必须用单引号括起来,在连接处理时,LINK把类别名相同的段放在连续的存储区,他们仍是各自独立的段5.4.1段定义语句二、段寻址伪指令格式:ASSUME 段寄存器名:段名,段寄存器名:段名.ASSUME 段寄存器名:nothingASSUME nothing5.4.1段定义语句三、段寄存器的加载1.DS和ES的加载:借助通用寄存器传送段基值给DS和ES2.SS的加载3.CS的加载(1)END加载起始地址(2)JMP、CALL、RET指令(1)自动加载)自动加载(2)执行程序)执行程序5.4.2过程定义语句使用格式(构造子程序)过程名PROCNEAR/FARRET.过程名ENDP5.4.3定位语句和位置计数器使用格式(记载汇编时的当前偏移量)ORG表达式5.4.4偶地址控制语句使用格式:EVEN把位置计数器调整为偶数5.4.5程序标题语句P193使用格式Title 文本列表文件的每一页的第一行都显示这个标题5.5宏指令语句(内容)1.宏定义2.宏调用3.宏展开5.6顺序程序设计-例5-2(1)10*(X+Y)-3*(Z-1)F=X+Y+Z5.6顺序程序设计-例5-2(2)TITLE EXAMPLE PROGRAMDATASEGMENTVARXDW123HVARYDW456HVARZDW789HF1DW?F2DW?DATAENDS5.6顺序程序设计-例5-2(3)STACK1SEGMENTDW20HDUP(0)STACK1ENDS5.6顺序程序设计-例5-2(4)CODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1BEGIN:MOVAX,DATA MOVDS,AX5.6顺序程序设计-例5-2(5)MOVAX,VARXADDAX,VARYMOVBX,10MULBXMOVBX,VARZDECBXMOVCX,BXSALBX,1ADDBX,CXSUBAX,BX5.6顺序程序设计-例5-2(6)MOVBX,VARXADDBX,VARYADDBX,VARZXORDX,DXDIVBXMOVF1,AXMOVF2,DXMOVAH,4CHINT21HCODEENDSENDBEGIN软中断软中断INT 21H5.6顺序程序设计-两种退出用户程序的办法两种退出用户程序的办法CODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1PROC1PROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXRETCODEENDSENDPROC15.6顺序程序设计-例5-3(1)TITLETABLELOOK_UPDATASEGMENTTABLE DB30H,31H,32H,33H,34H,35H,36H,37H DB38H,39H,41H,42H,43H,44H,45H,46HHEX DB4ASCI DB?DATAENDS5.6顺序程序设计-例5-3(2)STACK1SEGMENTPARASTACKDW20HDUP(0)STACK1ENDS5.6顺序程序设计-例5-3(3)CODESEGMENTASSUMECS:CODE,DS:DATABEGIN:MOVAX,DATAMOVDS,AXMOVBX,OFFSET TABLEADDBL,HEXMOVAL,BXMOVASCI,AL5.6顺序程序设计-例5-3(4)MOVAH,4CHINT21HCODEENDSENDBEGINXLAT指令:指令:XLAT 表首址表首址 或或 XLAT 默认默认bx,al两寄存器两寄存器5.6顺序程序设计-例5-3(5)BEGIN:MOVAX,DATAMOVDS,AXLEABX,TABLEMOVAL,HEXXLATTABLEMOVASCI,ALMOVAH,4CHINT21H5.7 分支程序设计5.7.1转移指令(1)5.7.1转移指令一、无条件转移指令 JMP 目标1.直接寻址方式2.间接寻址方式5.7 分支程序设计5.7.1转移指令(2)1.直接寻址方式(段内转移)5.7 分支程序设计5.7.1转移指令(3)1.直接寻址方式(段间转移)5.7 分支程序设计5.7.1转移指令(4)2.间接寻址方式a.段内转移(间接)例:JMP CXJMP WORDPTRBXb.段间转移(间接)JMP DWORD PTRBX5.7 分支程序设计5.7.1转移指令(4)5.7.1转移指令二、条件转移指令1.简单条件转移指令2.无符号数条件转移指令3.带符号数条件转移指令5.7 分支程序设计5.7.1转移指令(5)1.简单条件转移指令5.7 分支程序设计5.7.1转移指令(6)2.无符号数条件转移指令5.7 分支程序设计5.7.1转移指令(7)3.带符号数条件转移指令5.7 分支程序设计5.7.2分支程序设计(分支程序设计(1)5.7.2分支程序设计分支程序设计一、直接用条件转移指令实现程序分支一、直接用条件转移指令实现程序分支二、用跳转表实现多路分支二、用跳转表实现多路分支5.7 分支程序设计5.7.2分支程序设计(分支程序设计(1)一、直接用条件转移指令实现程序分支一、直接用条件转移指令实现程序分支一、直接用条件转移指令实现程序分支一、直接用条件转移指令实现程序分支5.7 分支程序设计5.7.2分支程序设计(分支程序设计(1)5.7 分支程序设计5.7.2分支程序设计(分支程序设计(1)二、用跳转表实现多路分支二、用跳转表实现多路分支- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 概要
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文