汇编程序设计分支.pptx
《汇编程序设计分支.pptx》由会员分享,可在线阅读,更多相关《汇编程序设计分支.pptx(33页珍藏版)》请在咨信网上搜索。
4.3 DOS系统功能调用4.3.1 系统功能调用方法系统功能调用方法4.3.2 常用的常用的DOS系统功能调用系统功能调用4.3.1 系统功能调用方法DOS系统功能调用的方法一般可分为以下几步:系统功能调用的方法一般可分为以下几步:设置所要调用功能的入口参数。设置所要调用功能的入口参数。在在AH寄存器中存入所要调用功能的功能号。寄存器中存入所要调用功能的功能号。INT 21H指令自动转入中断子程序入口。指令自动转入中断子程序入口。相应中断子程序运行完毕,可按规定取得出口参数。相应中断子程序运行完毕,可按规定取得出口参数。4.3.2 常用的DOS系统功能调用1 1不带回显的键盘单字符输入(不带回显的键盘单字符输入(8 8号功能)号功能)2.2.带回显的键盘单字符输入(带回显的键盘单字符输入(1 1号功能)号功能)3.3.单字符输出(单字符输出(2 2号功能)号功能)4.4.字符串显示(字符串显示(9 9号功能)号功能)5.5.程序正常返回系统程序正常返回系统1号系统功能调用(从键盘读入一个字符)功能:单字符输入。功能:单字符输入。将将键键盘盘输输入入的的字字符符的的ASCIIASCII码码值值送送ALAL寄寄存存器器,同同时时回回显显在在屏屏幕幕上。上。入口参数:无入口参数:无出口参数:出口参数:ALAL寄存器存放输入字符的寄存器存放输入字符的ASCIIASCII码值码值格式:格式:MOV AHMOV AH,1 1INT 21HINT 21H说明:在输入一个字符后,不需要键入回车。若只键入回车,说明:在输入一个字符后,不需要键入回车。若只键入回车,则出口参数则出口参数ALAL得到的是回车符的得到的是回车符的ASCIIASCII码值码值0DH0DH。2号系统功能调用(显示一个字符)功功能能:单单字字符符输输出出。即即将将以以DLDL寄寄存存器器内内容容为为ASCIIASCII码码值值的的ASCIIASCII字符输出到屏幕上。字符输出到屏幕上。入口参数:入口参数:DLDL要显示字符的要显示字符的ASCIIASCII码值码值出口参数:无出口参数:无格式:格式:MOV DLMOV DL,要显示的字符,要显示的字符MOV AH,2INT 21HINT 21H例:例:MOV DLMOV DL,41H 41H ;MOV DLMOV DL,AAMOV AHMOV AH,2 2INT 21HINT 21H屏幕上输出字符屏幕上输出字符“A”A”4.4 分支程序设计4.4.1 无条件、条件转移指令无条件、条件转移指令4.4.2 分支程序设计分支程序设计分支分支控制转移类控制转移类指令通过改变指令通过改变IP(和(和CS)值,实值,实现程序执行顺序的改变,是仅次于传送指令的最常现程序执行顺序的改变,是仅次于传送指令的最常用指令,要求很好掌握用指令,要求很好掌握一、无条件转移指令JMP指令分成指令分成4种类型:种类型:段内段内直接直接转移转移 段内段内间接间接转移转移 段间段间直接转移直接转移 段间间接转移段间间接转移JMP labelJMP labelJMPJMP格式:格式:程序转向程序转向labellabel标号指定的地址处执行标号指定的地址处执行 功能:功能:说明:说明:目标地址的范围:段内段内转移段内转移近转移近转移(near)n在在当当前前代代码码段段64KB范范围围内内转转移移(32KB范围)范围)段内转移段内转移短转移短转移(short)n转转移移范范围围当当前前代代码码段段127B范范围围内转移内转移n不不需需要要更更改改CS段段地地址址,只只要要改改变变IP偏移地址偏移地址代代码码段段代代码码段段JMPJMP目标地址的范围:段间段间转移段间转移远转移(远转移(far)n从从当当前前代代码码段段跳跳转转到到另另一一个个代代码码段,可以在段,可以在1MB范围范围n需要需要更改更改CS段地址和段地址和IP偏移地址偏移地址n目目标标地地址址必必须须用用一一个个32位位数数表表达达,叫做叫做32位远指针位远指针。代代码码段段代代码码段段 实实际际编编程程时时,汇汇编编程程序序会会根根据据目目标标地地址址的的距距离离,自动处理自动处理成短转移、近转移或远转移成短转移、近转移或远转移 程序员可用操作符程序员可用操作符short、near ptr 或或far ptr 强制强制JMPJMP直接直接n转转移移地地址址象象立立即即数数一一样样,直直接接出出现现在指令中在指令中间接间接n转移地址转移地址在在寄存器寄存器或或主存单元主存单元中中用标号表达用标号表达用寄存器或存储器用寄存器或存储器操作数表达操作数表达JMPJMP段内直接转移段内直接转移举例JMP r16/m16 JMP r16/m16 例如:例如:jmp jmp axaxjmp jmp word ptr 2000hword ptr 2000h 段内间接转移段内间接转移JMP label JMP label 例如:例如:jmpjmp output output output:output:mov result,almov result,alJMP far ptr label 例如:例如:;IPlabel的偏移地址的偏移地址 ;CSlabel的段地址的段地址jmp far ptr otherseg段间直接转移段间直接转移;IPlabel的偏移地址的偏移地址JMP far ptr mem 例如:例如:段间间接转移段间间接转移JMP far ptr bx二、条件转移指令功功能能:指指定定的的条条件件cc如如果果成成立立,程程序序转转移移到到由由标标号号label指指定定的的目目标标地地址址去去执执行行指指令令;条条件件不不成成立立,则则程程序序将将顺顺序序执执行下一条指令行下一条指令说明:(说明:(1)Jcc(2)操作数操作数label是采用段内短转移是采用段内短转移(3)Jcc指令不影响标志,但要利用标志指令不影响标志,但要利用标志Jcc labelJcc label格式:格式:Jcc指令的分类指令的分类根据利用的标志位不同,根据利用的标志位不同,16条指令分成条指令分成3种情况:种情况:1.判断判断单个标志位单个标志位状态状态2.比较比较无符号数无符号数高低高低3.比较比较有符号数有符号数大小大小1.判断单个标志位状态这组指令单独判断这组指令单独判断5个状态标志之一个状态标志之一JZ/JE和和JNZ/JNE:利利用用零零标标志志ZF,判判断断结结果果是是否否为为零零(或或相相等等)。JZ/JE表表示示结结果果为为零(或相等),则转移。零(或相等),则转移。JS和和JNS:利利用用符符号号标标志志SF,判判断断结结果果是是正是负,正是负,JS表示结果为负则转移。表示结果为负则转移。JO和和JNO:利利用用溢溢出出标标志志OF,判判断断结结果果是是否产生溢出,否产生溢出,JO表示溢出则转移。表示溢出则转移。JP/JPE和和JNP/JPO:利利用用奇奇偶偶标标志志PF,判判断断结结果果中中“1”的的个个数数是是偶偶是是奇奇。JP表表示示偶偶个个数个数个1JC和和JNC:利利用用进进位位标标志志CF,判判断断结结果果是是否进位或借位。进位或借位为否进位或借位。进位或借位为1则转移。则转移。JccJcc例题例题例题例题例题例题例题例题例题例题比较无符号数高低无符号数高低有无符号数高低有4种关系:种关系:高于高于(不低于等于):(不低于等于):JA(JNBE)高于等于(不低于):高于等于(不低于):JAE(JNB)低于低于(不高于等于):(不高于等于):JB(JNAE)低于等于(不高于):低于等于(不高于):JBE(JNA)JccJcc例:比较无符号数例:比较无符号数比比较较无无符符号号数数大大小小,将将较较大大的的数数存存放放AX寄寄存存器器。cmp ax,bxcmp ax,bx;比较;比较axax和和bx,(AX)-(BX)bx,(AX)-(BX)jae nextjae next;若;若axaxbxbx,转移,转移xchg ax,bxxchg ax,bx;若;若axaxbxbx,交换,交换next:next:.结果:结果:AX保存较大的保存较大的无符号数无符号数比较有符号数大小两数的大小分成两数的大小分成4种关系:种关系:大于大于(不小于等于):(不小于等于):JG(JNLE)大于等于(不小于):大于等于(不小于):JGE(JNL)小于小于(不大于等于):(不大于等于):JL(JNGE)小于等于(不大于):小于等于(不大于):JLE(JNG)JccJcc例:比较有符号数例:比较有符号数比较有符号数大小,将较大的数存放在比较有符号数大小,将较大的数存放在AX寄存器。寄存器。cmp ax,bxcmp ax,bx;比较;比较axax和和bxbxjge nextjge next;若;若axaxbxbx,转移,转移xchg ax,bxxchg ax,bx;若;若axaxbxbx,交换,交换next:next:.结果:结果:AX保存较大的保存较大的有符号数有符号数注意:根据数的不同选取不同的指令注意:根据数的不同选取不同的指令条件转移指令中的条件ccJccJcc 实际虽然指令只有实际虽然指令只有16条,但却有条,但却有30个助记符个助记符 采用多个助记符,只是为了方便记忆和使用采用多个助记符,只是为了方便记忆和使用SF三、分支程序设计分分支支程程序序根根据据条条件件是是真真或或假假决决定定执执行行与与否否,判判断断的的条件是各种指令,条件是各种指令,单分支双分支多分支如如CMP、TEST等执行后形成的状态等执行后形成的状态标志与条件转移指令标志与条件转移指令Jcc联合可以实现分支控制。联合可以实现分支控制。用无条件转移指令用无条件转移指令JMP也可以实现分支控制。也可以实现分支控制。条条件件成成立立跳跳转转到到标标号号所所在在的的指指令令执执行行,否否则则顺顺序序执执行行分分支支语语句句体体;注注意意:选选择择正正确确的的条条件件转转移移指指令令和和转移目标地址转移目标地址1、单重分支1、单分支【例例4.9】编程求编程求XY,结果存于结果存于RESULT单元中,单元中,设设X和和Y都为都为16位数。位数。DATA SEGMENTX DW -10Y DW 20RESULT DW?DATA ENDSSTACK SEGMENT STACKDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AX,X SUB AX,Y JNS NONNEG NEG AXNONNEG:MOV RESULT,AX MOV AH,4CH INT 21HCODE ENDS END START2、双分支程序设计条条件件成成立立跳跳转转执执行行第第2个个分分支支语语句句体体,否否则则顺顺序序执执行行第第1个个分分支支语语句句体体。注注意意第第1个个分分支支体体后后一一定定要要有有一一个个JMP指指令令跳跳到到第第2个分支体后个分支体后2、双分支程序设计【例4.10】显示BX的最高位 shl bx,1jnc onemov dl,1jmp twoone:mov dl,0 two:mov ah,2int 21h提示:条件转移指令的使用很关键,要根据不同的情况正确的选用提示:条件转移指令的使用很关键,要根据不同的情况正确的选用多个条件对应各自的分支语句体,多个条件对应各自的分支语句体,哪个条件成立就转入相应哪个条件成立就转入相应分支体执行分支体执行。多分支可以化解为双分支或单分支结构的组合。多分支可以化解为双分支或单分支结构的组合3、多分支结构AH=0fuction0YNAH=1fuction1YNAH=2fuction2YN【例例4.11】编写计算下面函数值的程序:编写计算下面函数值的程序:1X0Y=0X=0 -1X0设设输输入入数数据据为为X、输输出出数数据据Y,且且皆皆为为字字节节变变量量。程序流程图如图所示。程序流程图如图所示。3、多分支图图 分支运算分支运算程序流程图程序流程图DATA SEGMENTX DB -10Y DB?DATA ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATA MOV DS,AX CMP X,0 ;与;与0进行比较进行比较 JGE A1 ;X0转转A1 MOV Y,-1 ;X 0时,时,-1Y JMP EXITA1:JGA2 ;X0转转A2 MOV Y,0 ;X=0时,时,0Y JMP EXITA2:MOV Y,1 ;X0,1Y EXIT:MOV AH,4CH INT 21H CODE ENDS END START- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 程序设计 分支
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文