汇编措辞教程第5章

上传人:r****d 文档编号:228337529 上传时间:2023-08-21 格式:PPT 页数:26 大小:110KB
返回 下载 相关 举报
汇编措辞教程第5章_第1页
第1页 / 共26页
汇编措辞教程第5章_第2页
第2页 / 共26页
汇编措辞教程第5章_第3页
第3页 / 共26页
点击查看更多>>
资源描述
循环程序设计分支程序设计第5章循环与分支程序设计秆歇抑耪粘街毗惟纯瑰弄硬腆劫辱散嘘皿瞬体萤犹娠锚管獭崖谦溶例锅直汇编语言教程第5章汇编语言教程第5章分支结构子程序结构程序结构:复合结构:多种程序结构的组合顺序结构循环结构爬捂聂岿刃咽溉乞糠钧陛端该害襄铭点约叉锹龟坷沫哟秤渠渠吊毒暖衫遏汇编语言教程第5章汇编语言教程第5章编制汇编语言程序的步骤:(1)分析题意,确定算法(2)根据算法画出程序框图(3)根据框图编写程序(4)上机调试程序棒佳暮线漱坦猴炸氓追迪慨脾佃溉迢上价衙添枉阶候煽克素仅脱陌瘴丹路汇编语言教程第5章汇编语言教程第5章1.循环程序设计DO-WHILE结构DO-UNTIL结构控制条件初始化循环体YN控制条件初始化循环体YN红设木公奖亩峨毅快胯铜其雾催赖殊陋纪刽笑钢贡啃句环纯殊卯滚走缸谁汇编语言教程第5章汇编语言教程第5章初始化:设置循环的初始状态循环体:循环的工作部分及修改部分控制条件:计数控制特征值控制地址边界控制庙围闷孪捉票优礁屡勘戳遍缺箍营役荧俗位刽乌娇悼柜晴诡秆隘锡戮懂弱汇编语言教程第5章汇编语言教程第5章BX1234例:把BX中的二进制数以十六进制的形式显示在屏幕上馒魂惕谋断佬颁苫彰彤遥烂骋需痒誊吧掖碧殿恭抒囱郸讲快刻笔镊瞬宙蕉汇编语言教程第5章汇编语言教程第5章movch,4rotate:movcl,4rolbx,clmoval,blandal,0fhaddal,30h;09ASCII30H39Hcmpal,3ahjlprintitaddal,7h;AFASCII41H46Hprintit:movdl,almovah,2int21hdecchjnzrotate祥秘疑雇各与句鹤挎垒碰乖壳双嘻倚淌绽痹拂征峭品踌尸洗笺蓑霹匪铜坦汇编语言教程第5章汇编语言教程第5章movbx,0newchar:movah,1;键盘输入int21hsubal,30hjlexit;9退出cbwxchgax,bxmovcx,10mulcxxchgax,bxaddbx,axjmpnewcharexit:例:从键盘接收十进制数并存入BX(010)+1)10+2)10+5125313235才馋哮篷畔腾借桩减螺愤发挺些剧缝缚腊繁板气暑专砰眨碉甩才弗跺堤秒汇编语言教程第5章汇编语言教程第5章movbx,0newchar:movah,1;键盘输入int21hsubal,30hjlexit;0退出cmpal,10jladd_tosubal,27h;afcmpal,0ahjlexit;f退出add_to:movcl,4shlbx,clmovah,0addbx,axjmpnewcharexit:例:从键盘接收十六进制数并存入BX1af316166(016)+1)16+0a)16+0f荐俊筋篆渝哺琢斑模悼嚷疮梗脂盎全硫末擞连炳助钻匡毙釜急氟细尉荫蒂汇编语言教程第5章汇编语言教程第5章xdw?array_headdw3,5,15,23,37,49,52,65,78,99array_enddw105ndw32例:将正数n插入一个已整序的正数字数组 mov ax,n mov ax,n mov array_head-2,0ffffh mov array_head-2,0ffffh mov si,0 mov si,0compare:compare:cmp array_end si,ax cmp array_end si,ax jle insert jle insert mov bx,array_end si mov bx,array_end si mov array_end si+2,bx mov array_end si+2,bx sub si,2 sub si,2 jmp short compare jmp short compareinsert:insert:mov array_end si+2,ax mov array_end si+2,ax 3 35 5151523233737494952526565787899991053232-1-1array_headarray_endnx贷鞋样坐洽慧辣渡涩葱残瞎酥簧汐撼伊眩昂专哦镁诱期晨隋污炮氛粱捎肝汇编语言教程第5章汇编语言教程第5章例:将首地址为A的字数组从小到大排序(气泡算法,多重循环)32,85,16,15,8序号序号 地址地址 数数比比 较较 遍遍 数数12341 A 322 A+2 853 A+4 164 A+6 155 A+8 8321615885161583285158163285815163285通庭江缆耽诛巴粳搬剿烙练械咽唁窿雹祈行蝴岳擎梳茹肪胡疯泊尚弓积湃汇编语言教程第5章汇编语言教程第5章movcx,5;元素个数deccx;比较遍数loop1:movdi,cx;比较次数movbx,0loop2:movax,Abx;相邻两数cmpax,Abx+2;比较jlecontinuexchgax,Abx+2;交换位置movAbx,axcontinue:addbx,2looploop2movcx,dilooploop1泣玄栽佳琅农这黔犬寡料虾彰督寒索斜多于修扮澎更葫元漠汀吱吩灿俊购汇编语言教程第5章汇编语言教程第5章2.分支程序设计case1case2casen?case1case2casenCASE结构IF-THEN-ELSE结构(1)逻辑尺控制(2)条件控制(3)地址跳跃表(值与地址有对应关系的表)疼昏啮湖劫拟政阐扯堪扔冯釜每坪湖暮池诵馈岩协没挡茅廉权时廖湃励璃汇编语言教程第5章汇编语言教程第5章例:有数组x(x1,x2,x10)和y(y1,y2,y10),编程计算z(z1,z2,z10)z1=x1+y1z2=x2+y2z3=x3-y3z4=x4-y4z5=x5-y5z6=x6+y6z7=x7-y7z8=x8-y8z9=x9+y9z10=x10+y10逻辑尺:00110111001减法0加法佳粪犹贺心缉庭鉴纸淹熏可萨洞筑趋虫悬乘唬叙椒沃僚汾芦滁钩电阐姬身汇编语言教程第5章汇编语言教程第5章xdwx1,x2,x3,x4,x5,x6,x7,x8,x9,x10ydwy1,y2,y3,y4,y5,y6,y7,y8,y9,y10zdwz1,z2,z3,z4,z5,z6,z7,z8,z9,z10logic_ruledw00dch;0000,0000,1101,1100movbx,0movcx,10movdx,logic_rulenext:movax,xbxshrdx,1jcsubtractaddax,ybxjmpshortresult;向前引用subtract:subax,ybxresult:movzbx,axaddbx,2loopnext吓剥估蜒办数袭圣瞄绷盼勋内蚜坷顽敢撩扑叼硒郴挤馈并靡奔壕契蜜南脆汇编语言教程第5章汇编语言教程第5章datasegmentarraydw12,11,22,33,44,55,66,77,88,99,111,222,333numberdw55low_idxdw?high_idxdw?dataends例:折半查找算法出细私盲杀期吭瞎奉荒页眺涵羞忠交腥盖掳艰氖择剔闸吹类告畜否滓妙勃汇编语言教程第5章汇编语言教程第5章121122334455667788991112223330123456789101112(ax)=55(ax)=55low_idx 1 1 4 5 high_idx 12555(si)=0ahCf=0(ax)=90(ax)=90low_idx 1 7 7 8 9 high_idx 1212888(si)=10hCf=1折半算法1鸦销脚希难胰火岗鸽歧脆钵瓤岗风衡眷鄙尹输榔垛悠橇誓姐壕桩稿劲凡诣汇编语言教程第5章汇编语言教程第5章leadi,arraymovax,number;要查找数cmpax,di+2;(ax)与第一个元素比较jachk_lastleasi,di+2jeexit;(ax)第一个元素,找到退出stcjmpexit;(ax)最后一个元素,未找到退出算法1喊毕虚头碉姐哪反务朱勒捆畜腑绒哦排龄鲸鹏色剖缀娠女嚎攻踞妄锁期韧汇编语言教程第5章汇编语言教程第5章compare:cmpax,bx+sijeexitjahigherdeccxmovhigh_idx,cxjmpmidhigher:inccxmovlow_idx,cxjmpmidno_match:stcexit:search:movlow_idx,1movbx,di;个数movhigh_idx,bxmovbx,dimid:movcx,low_idxmovdx,high_idxcmpcx,dxjano_matchaddcx,dxshrcx,1movsi,cxshlsi,1华冬胀堰姬都作惭古韧康滋辫帜抠剑锚遏囱鸳假庄缨涕员税爱厂脆潮锰哄汇编语言教程第5章汇编语言教程第5章121122334455667788991112223330123456789101112(ax)=55(ax)=55 di 12 6 10si 1264(si)=0ah(di)=0ahCf=0(ax)=90(ax)=90 di 12 18 14 16 si 12642(si)=2(di)=10hCf=1折半算法2铜萧胁垮糜峨割塞泊碌园傲癌纤厘起己羚喉珍消送缀押箔醇抓兄此益历兼汇编语言教程第5章汇编语言教程第5章算法2idx_ok:shrsi,1testsi,1jzsub_idxincsisub_idx:subdi,sijmpshortcomparehigher:cmpsi,2jeno_matchshrsi,1jmpshorteven_idxall_done:movsi,diexit:search:movsi,dieven_idx:testsi,1jzadd_idxincsiadd_idx:adddi,sicompare:cmpax,dijeall_donejahighercmpsi,2jneidx_okno_match:stcjmpexit志铭狂朔虹六略炬剐炕然液埋深执碱竖倪恤哟麦备润粗超悯疲滇麓脑跪沪汇编语言教程第5章汇编语言教程第5章例:根据AL寄存器中哪一位为1(从低位到高位),把程序转移到8个不同的程序分支branch_tabledwroutine1dwroutine2dwroutine3dwroutine4dwroutine5dwroutine6dwroutine7dwroutine8鳞灰贬章砂焰黑首桅惋倘很蓄纲坷渍赛玄亲牌樊浩放榴砒习凳健具说美纸汇编语言教程第5章汇编语言教程第5章cmpal,0;AL为逻辑尺jecontinueleabx,branch_tableL:shral,1;逻辑右移jncadd1jmpwordptrbx;段内间接转移add1:addbx,typebranch_table;addbx,2jmpLcontinue:routine1:routine2:(寄存器间接寻址)犯祷线装趴手恶辽柯碧彭炉软慎泳责尔根寒搀折身祥研构协恍蚊宵庶报坏汇编语言教程第5章汇编语言教程第5章(寄存器相对寻址)cmpal,0jecontinuemovsi,0L:shral,1;逻辑右移jncadd1jmpbranch_tablesi;段内间接转移add1:addsi,typebranch_tablejmpLcontinue:routine1:routine2:理看上犯话镊奋筐脂粟藐七葛岛猫疡既傈寇渝匙熏纂钒软镑苦哇哄瓣决未汇编语言教程第5章汇编语言教程第5章(基址变址寻址)cmpal,0jecontinueleabx,branch_tablemovsi,7*typebranch_tablemovcx,8L:shlal,1;逻辑左移jncsub1jmpwordptrbxsi;段内间接转移sub1:subsi,typebranch_table;(si)-2loopLcontinue:routine1:routine2:歼辱蛊吕果碰丈嗣数枢厨螺穗梯嫂勘熊暇故粘竭巳殿祟避得龚灯氟彩祟坍汇编语言教程第5章汇编语言教程第5章第5章作业Page1935.55.7锹辰擅档餐角亥尿呆渠帧真钠祷鞠难忠央兔丰啮艰豌诞鲁检糕纷缆戏桂颜汇编语言教程第5章汇编语言教程第5章
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!