汇编语言程序设计的基本方法.pptx
《汇编语言程序设计的基本方法.pptx》由会员分享,可在线阅读,更多相关《汇编语言程序设计的基本方法.pptx(22页珍藏版)》请在咨信网上搜索。
第5章 汇编语言程序设计 5.6.1 顺序程序设计顺序程序设计顺序结构也称线性结构,其特顺序结构也称线性结构,其特点是其中的语句或结构被连续执行。点是其中的语句或结构被连续执行。顺序程序是最简单的,也是最顺序程序是最简单的,也是最基本的一种程序结构。基本的一种程序结构。这种结构的这种结构的程序从开始到结尾一直是顺序执行程序从开始到结尾一直是顺序执行的,中途没有任何分支的,中途没有任何分支。从这种结。从这种结构的流程图来看,除了有一个起始构的流程图来看,除了有一个起始框,一个终止框外,就是若干执行框,一个终止框外,就是若干执行框,没有判断框。指令指针框,没有判断框。指令指针IP值线值线形增加,形增加,IP=IP+1S1S2S3开始结束第5章 汇编语言程序设计 例例1求两个数的平均值。这两个数分别存放在求两个数的平均值。这两个数分别存放在X单元和单元和Y单元中,而平均值放在单元中,而平均值放在Z单元中。源程序编制单元中。源程序编制如下如下:DATA SEGMENTX DB 8CHY DB 64H ;赋予初值赋予初值ZDB?;分配存储空间分配存储空间DATA ENDSSTACKSEGMENTDW 20H DUP(0);给堆栈段分配一个给堆栈段分配一个TOP LABLE WORD ;据区共据区共32个字,每个个字,每个STACKENDS ;字的内容均为字的内容均为0第5章 汇编语言程序设计 CODESEGMENTMAIN PROC FAR;定义子程序名为MAIN,类型FAR ASSUME CS:CODE ;把段寄存器和 ASSUME DS:DATA ;段名对应起来 ASSUME SS:STACKSTART:PUSH DSMOV AX,0PUSH AXMOV AX,DATA;给数据段赋初值MOV DS,AXMOV AX,STACKMOV SS,AXMOV SP,OFFSET TOP第5章 汇编语言程序设计 MOV AL,XADD AL,Y;两数低字节相加结果送ALMOV AH,0ADC AH,0;两数高字节带进位相加SHR AX,1MOV Z,ALRETMAINENDPCODEENDSEND START第5章 汇编语言程序设计 例2 编写程序,计算(W-(X*Y+Z-100)/W,其中W、X、Y、Z均为16位带符号数,计算结果的商存入AX,余数存入DX。例3 把非压缩十进制数DAT1转换为压缩十进制数第5章 汇编语言程序设计 例2编写程序,计算(W-(X*Y+Z-100)/W,其中W、X、Y、Z均为16位带符号数,计算结果的商存入AX,余数存入DX。DATA SEGMENTW DW 268X DW 73Y DW 48Z DW 85DATA ENDSSTACK SEGMENT DW 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AX,X ;计算X*Y IMUL Y MOV CX,AX ;用CX存储结果低位MOV BX,DX ;用BX存储结果高位 MOV AX,Z ;计算X*Y+Zl CWDl ADD CX,AXl ADC BX,DXl SUB CX,100l SBB BX,0l MOV AX,Wl CWD l SUB AX,CXl SBB DX,BXl IDIV Wl MOV AH,4CHl INT 21Hl CODE ENDSl END START第5章 汇编语言程序设计 例3 把非压缩十进制数DAT1转换为压缩十进制数。STACK 64H DATA DAT1 DW 0908H ;非压缩十进制数0908H CODE BEGIN:MOV AX,DATA MOV DS,AX MOV AX,DAT1 ;AX0908H MOV CL,4 ;CL 4 SAL AH,CL ;09字节左移4位,AH=90H ROL AX,CL ;9008H字循环左移4位,AX=0089H ROL AL,CL ;89字节循环左移4位,AL=98H MOV BYTE PTR DAT1,AL ;DAT198H,压缩十进制数98H MOV AH,4CH ;返回DOS INT 21H END BEGIN 返返 回回第5章 汇编语言程序设计 5.6.2 分支程序设计分支程序设计分支程序结构也称条件结构,通常是在两种或两分支程序结构也称条件结构,通常是在两种或两个以上的不同的操作中选择其中的一个,如下图所示:个以上的不同的操作中选择其中的一个,如下图所示:分支是通过条件转移指令来实现的。分支结构有分支是通过条件转移指令来实现的。分支结构有一个共同点:运行方向总是向前的一个共同点:运行方向总是向前的。IP受标志位的影受标志位的影响而跳变,影响标志的指令响而跳变,影响标志的指令CMP、TEST、JXX条件S1S2条件SS1S2Sn条件N NN NY YY Y第5章 汇编语言程序设计 两路分支程序设计例4用比较指令和条件转移指令实现两路分支的程序段。MOV AX,M ;假定M和N为有符号数 MOV BX,N CMP AX,BX ;比较 M和N的大小,影响标志位,准备条件 JG NEXT ;MN时转移,注意若M、N为无符号数时用JA指令 ;分支程序2 JMP DONE NEXT:;分支程序1 DONE:RET第5章 汇编语言程序设计 例5 现有一符号函数:1 当X0时Y=0 当X=0时 -1 当X0时假定X为-25,且存放在VARX单元中,函数值Y存放在VARY单元,试编写程序根据X的值确定函数Y的值。根据题意画出流程图如下:第5章 汇编语言程序设计 实现符号函数程序的流程图开始ALXAL0?Y-1结束AL0Y1Y0YYYYNNNN第5章 汇编语言程序设计 编写程序如下:DSEG SEGMENTVARX DB -25VARY DB?DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART:MOV AX,DSEGMOV DS,AXMOV AL,VARXCMP AL,0JGE NEXTMOV AL,-1JMP HALT第5章 汇编语言程序设计 NEXT:JE HALTMOV AL,1HALT:MOV VARY,AL MOV AH,4CHINT 21HCODEENDSEND START第5章 汇编语言程序设计 例 6 已知X是单字节带符号数,请设计计算下列表达式的程序。Y=X+20 (X0)|X|(X0)第5章 汇编语言程序设计 例 6 已知X是单字节带符号数,请设计计算下列表达式的程序。Y=程序如下:DATA SEGMENT X DB?Y DB?DATA ENDSCODE SEGMENT ;代码段START:PROC FARASSUME CS:CODE,DS:DATA MOV AX,0 X+20 (X0)|X|(X0)l MOV AX,DATA ;初始化DSl MOV DS,AXl MOV AL,X ;取数Xl CMP AL,0 ;准备条件l JNS PLUS ;X0则转移l NEG AL ;X0则求补l JMP DONElPLUS:ADD AL,20 ;X0时,X+20lDONE:MOV Y,AL ;计算结果送Yl RET ;返回lSTART ENDPlCODE ENDSl END START ;汇编结束第5章 汇编语言程序设计 分支结构程序设计的关键在于准确地知道操作结果影响分支结构程序设计的关键在于准确地知道操作结果影响的标志位状态和正确地使用条件转移指令。根据对条件的标志位状态和正确地使用条件转移指令。根据对条件的判断而选择不同的处理方法是人的基本智能体现。的判断而选择不同的处理方法是人的基本智能体现。例例:设内存中有三个互不相等的无符号字数据,分别:设内存中有三个互不相等的无符号字数据,分别是放在是放在ARG开始的字单元,编制程序将其中最大值存入开始的字单元,编制程序将其中最大值存入MAX单元。单元。分析:求三个无符号数中的最大值,只要把三个数据两分析:求三个无符号数中的最大值,只要把三个数据两两比较,用两比较,用JA/JNB/JNA/JC等指令就可判断两数的大小,等指令就可判断两数的大小,从而选出其中最大值。从而选出其中最大值。源程序如下:源程序如下:SSEG SEGMENT STACK STK DB 20 DUP(0)SSEG ENDS 第5章 汇编语言程序设计 DSEG SEGMENTARG DW 7138H,84A6H,29EHMAX DW?DESG ENDSCSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,SS:SSEGFMAX:MOV AX,DSEG MOV DS,AX MOV SS,AX MOV SP,SIZE STK LEA SI,ARG MOV AX,SI MOV BX,SI+2 CMP AX,BX第5章 汇编语言程序设计 JAE FMAX1MOV AX,BXFMAX1:CMP AX,SI+4JAE FMAX2 MOV AX,SI+4FMAX2:MOV MAX,AXMOV AH,4CHINT 21HCSEG ENDS END FMAX第5章 汇编语言程序设计 循环结构程序设计循环体图图2先判断后执行循环结构先判断后执行循环结构循环初始化NY循环控制部分循环初始化循环体N循环控制部分Y图图1 先执行后判断循环结构先执行后判断循环结构第5章 汇编语言程序设计 循环程序一般由四个部分组成:循环程序一般由四个部分组成:(1)循环初值部分:这是为了保证循环程序能正常进行)循环初值部分:这是为了保证循环程序能正常进行循环操作而必须做的准备工作。循环初值分两类:一类循环操作而必须做的准备工作。循环初值分两类:一类是循环工作部分的初值,别一类是控制循环结束条件的是循环工作部分的初值,别一类是控制循环结束条件的初值。初值。(2)工作部分:即需要重复执行的程序段。这是循环的)工作部分:即需要重复执行的程序段。这是循环的中心,称之为循环体。中心,称之为循环体。(3)修改部分:按一定规律修改操作数地址及控制变量)修改部分:按一定规律修改操作数地址及控制变量,以便每次执行循环体时得到新的数据。,以便每次执行循环体时得到新的数据。(4)控制部分:用来保证循环程序按规定的次数或特写)控制部分:用来保证循环程序按规定的次数或特写条件正常循环。条件正常循环。第5章 汇编语言程序设计 例题例7 把从BUF单元开始的80个16位无符号数按从大到小的顺序排列。第5章 汇编语言程序设计 例题例4-26 把从BUF单元开始的80个16位无符号数按从大到小的顺序排列。l DSEG SEGMENTl BUF DW 80 DUP(?)l DSEG ENDSl CSEG SEGMENTl ASSUME CS:CSEG,DS:DSEGl START:MOV AX,DSEGl MOV DS,AXl LEA DI,MEMl MOV BL,79l LOOP1:MOV SI,DIl MOV CL,BLlLOOP2:MOV AX,SIl ADD SI,2l CMP AX,SIl JNC NEXTl MOV DX,SIl MOV SI-2,DXl MOV SI,AXl NEXT:DEC CLl JNZ LOOP2 lDEC BL l JNZ LOOP1lMOV AH,4CHl INT 21Hl CSEG ENDSl END START- 配套讲稿:
如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。
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。
关于本文