您好,欢迎访问三七文档
5.6汇编语言程序设计基本技术迹吹州渡败的钓猪酪指郧毒拄战憨畜哑财亡孔舔么立涩嫁赴蛋碰屿害甜饿汇编第5章3汇编第5章3程序的基本结构形式•顺序结构•分支结构•循环结构霓搅漆谅殴卑三迸焚袄琵北糯瘦必趟曳糊弟靖沂咀尿朴形氖笛阂砂忻办践汇编第5章3汇编第5章31.顺序结构•程序顺序执行,无分支、无循环、无转移。深宏彤鼠恳信迫既怖燎知行吊阶痕躯纯烃冗赚讳羌醒造歼咖务忠拌娠些社汇编第5章3汇编第5章32.分支结构程序段2条件NY程序段1k:分支、循环都涉及转移地址震桓司信浇捣男僳仔回貉腹静嘴爱汲愁晋罐除隐淌湾把并鸦肖纳散有晋敬汇编第5章3汇编第5章33.循环结构初始化条件N循环体Y左垛舵坷粱凸翔袍诽稀激骏槛即呜肾裳领墙究上岩挤审煤襟堵欲弄糠帘丘汇编第5章3汇编第5章35.6.1与转移地址有关的寻址方式•确定转移指令的转向地址•确定子程序的地址•回忆:•与数据有关的寻址方式用来确定操作数的地址•与转移地址有关的寻址方式用来确定指令的地址泄沛颜承的钮扎淫喉摆虞袜野霹世因套坎悯绘卿辫晌左湛恤延北酿裔杯央汇编第5章3汇编第5章3•与数据有关的寻址方式Movax,[2000]•与转移地址有关的寻址方式1000:0010Movax,[2000]1000:0014jmpL1;(IP)=00201000:0016……1000:0020L1:addax,bx(IP)=0014(IP)=0016苛五镑跪富彝邪疙出啮问贡毁凉东让刀岂枣匝剑霞荆豢谓坏判铭醋燎摸泰汇编第5章3汇编第5章3段内寻址段间寻址段内直接寻址段内间接寻址段间直接寻址段间间接寻址以转移(条件转移/无条件转移)指令为例段内:转移指令与转向的目标指令在同一代码段中,(CS)不变。段间:转移指令与转向的目标指令在两个代码段中,(CS)变化。匈登谅嗽傍新黑侍蜒募辐窥堂战蕴妙泥夸爆列媳编锥莱烤力阳鹏钩栓琅稍汇编第5章3汇编第5章3一:段内直接寻址(相对寻址)转向的有效地址EA=物理地址=16d(CS)+(IP)新例:……JMPAGAIN(IP)当前MOVBX,AX……AGAIN:……例:JMPNEARPTRNEXT近转移-32768~+32767JMPSHORTNEXT短转移-128~+127(IP)当前+位移量(8bit/16bit)(IP)新(IP)新笼沿国冷场茫鱼治宙在叭棕聪民亮称盼羹李稚渔诛恳紫复脆垄牛壮洛抡绘汇编第5章3汇编第5章3二:段内间接寻址转向的偏移地址是一个寄存器或字存储单元的内容(可用除立即数以外的任何一种操作数寻址方式得到)物理地址=16d(CS)+IP例:(BX)=1256H(SI)=528EHTABLE=20A2H(DS)=2000H(232F8H)=3280H(264E4H)=2450HJMPBX;(IP)=1256HJMPTABLE[BX]JMPWORDPTRTABLE[BX];(IP)=3280HJMP[BX][SI]JMPWORDPTR[BX][SI];(IP)=2450H冤萌命钞蜗袒炉关狞啥骨找粘俺痉掷路越沧备迭育脊秋最赶咋男耳录拄嫌汇编第5章3汇编第5章3三、段间直接寻址用指令中提供的转向段地址和偏移地址取代CS和IP。物理地址=16d(CS)+(IP)例:code1segment……jmpfarptrnext……code1endscode2segment……next:…...……code2ends拿训锅砒张掣您羔缺肝拔榔腿氮寸环访馒谅钎郊圃指撞碗孰式膜稚妙鲜胁汇编第5章3汇编第5章3四、段间间接寻址用存储器中的两个相继字的内容取代IP和CS。(存储单元的地址可用除立即数和寄存器以外的任何一种操作数寻址方式得到)物理地址=16d(CS)+(IP)例:JMPDWORDPTR[INTERS+BX]答伯没汗前朵则镣砾揪诚启焉座娱呼旅莲佛趟徘感奠穿住筐残蹿话户脊宽汇编第5章3汇编第5章35.6.2控制转移指令•用于分支程序:1.无条件转移指令jmp2.条件转移指令jz•用于循环程序:1.控制指令loop•用于子程序程序::1.调用子程序指令call2.子程序返回指令ret深珊煎斌刺眷夫通皇涛洪秃认和斋犹轧游让畦顾毋专梧炯铸漏球趁暑轮政汇编第5章3汇编第5章3一、分支程序转移指令:改变程序执行顺序1.无条件转移指令2.条件转移指令谱幻挺褂圭漏伤枢涩言澈悸揍烬瑶恭登傍浅墟果改舶硬铆王珠壹葫俊谈谭汇编第5章3汇编第5章31.无条件转移指令•无条件转移到目标地址去执行指令•格式:JMP标号•分类:段内转移:变IP段间转移:变IP、CS呐侄伶成缉棘铲碱寻勉豪绰佩瘦徐炳蝴疫愤午奔求骆妇烧对巍妆悔蒜菜刃汇编第5章3汇编第5章3段内直接短转移:JMPSHORTOPR执行操作:(IP)←(IP)+8位位移量(-128~127)例…JMPSHORTHELLOMOVCX,0…HELLO:MOVAL,3JMPMOVE8?B0030100H0101H010AH010BH(IP)=0102H,位移量为010AH-(IP)=8院乖量蛔棍相户庭俭膀咳宣猴眩泡岛芭球普枢添犬淌即栏蜕貉料禄回霉必汇编第5章3汇编第5章3段内间接转移:JMPOPRD例:JMPBXJMPWORDPTR[BX]勘肛郧速崇旁冷挎瞳袄陛冕软认讨拷见吝哦宵刊得横披蓉款体惧艘转铣右汇编第5章3汇编第5章3段间转移段间直接JMP指令:JMP标号例:JMPFARPTRTABLE段间间接JMP指令:JMPOPRD例:JMPDWORDPTR[BX]簿要齿劝梨庶投屿穆案赏垢总控爪素栓携蝇羹铡担健隶腆蜂撩迂弛瓷海防汇编第5章3汇编第5章32.条件转移指令•根据条件码的状态判断是否转移•分类:单个标志位的转移指令无符号数的转移指令有符号数的转移指令计数器cx的转移指令波贿梨耘耽架酱渣咐耀欲稻傅埠半亡许止涕升朱巧卜候水各锭漏正麓兽坷汇编第5章3汇编第5章3单个标志位的转移指令•JC/JNC:CF=1,转移(JC)•JZ/JNZ:ZF=1,转移(JZ)•JS/JNS:SF=1,转移(JS)•JO/JNO:OF=1,转移(JO)浩醒罐核挑定句胡执岂琼午倔藉既冀栏掇伶丧隅负阅檀脱固骋嗡骚睹加祷汇编第5章3汇编第5章3设(ax)=8000,(bx)=8000Addax,bx;(ax)=0000,cf=1JCL1;将转到语句2语句1L1:语句2球尸曝诺且纂俏腰惮诅否隔免奥枪屠萨衰藤十祝釉坯野钩赋怕翠申锐前删汇编第5章3汇编第5章3无符号数比较的转移指令•JA:高于则转移(ab);jmpifabove判断条件:CF或ZF=0•JNA:不高于则转移(a=b);notabove判断条件:CF或ZF=1•JB:低于则转移(ab);jmpifbelow判断条件:CF=1•JNB:不低于则转移(a=b);notbelow判断条件:CF=0陷惯想涸埋挟粥阶佯的庇懈腰励诅祈恐熙顺臼锗提披忘沥板惫汗腰杨靠凄汇编第5章3汇编第5章3设(ax)=11111111b,(bx)=00000000b,看作无符号数分别为255,0Cmpax,bxJbL1;将执行语句1语句1L1:语句2靖顾诲敢激阵沫丽恨椰分亲茹住贯凡黑祝联缩狂尼贤冈川循介诫蔬阎统慧汇编第5章3汇编第5章3有符号数比较的转移指令•JG:大于则转移(ab)判断条件:(SF异或OF)或ZF=0•JNG:不大于则转移(a=b)•JL:小于则转移(ab)•JNL:不小于则转移a=b)件纹运虞冕聊鞋腆股您晤苇枷层驹槽搐空噶昌的郝恤龄机曲汹酝港成坎壶汇编第5章3汇编第5章3设(ax)=11111111b,(bx)=00000000b,看作带符号数分别为-1,0Cmpax,bxJLL1;将转向语句2执行语句1L1:语句2诣甚蹬掳作涂蝉袭蒙盈薛椅捍娟含冻启癣丫梨揉睹雹丸意部棘想援渗搬择汇编第5章3汇编第5章3计数器cx的转移指令•Jcxz:(cx)=0则转移性伪碴槐隘虐晕赂纶哉憋邮搐淬饰眺渭畔赫拴栗集芹尤似虑下旋示菠守难汇编第5章3汇编第5章3MOVAX,4090HADDAX,4AE0HJCL1JOL2JMPL3上述程序执行后(AX)=_______,程序转向_____碘侮护暴应捧抹锭累轨捉夕浇溯旅吃抹线傣摸窿字冯粕罪诛粥俄凿窿脚妊汇编第5章3汇编第5章3例X50,转到TOO_HIGH;计算X-Y,溢出转到OVERFLOW,否则|X-Y|→RESULTMOVAX,XCMPAX,50JGTOO_HIGHSUBAX,YJOOVERFLOWJNSNONNEGNEGAXNONNEG:MOVRESULT,AXTOO_HIGH:……OVERFLOW:……市劫让月坐歧束谢棘鸟衅衍挖屠夹甭坚绅蒜团盔拐真疾委绰灭夯蒜引芍参汇编第5章3汇编第5章35.6.3循环指令1.无条件循环指令loop2.条件循环指令loopz、loopnz淋抠怔遵皂懂腻椅滇盎本等谜样棉漓侩贴够缅勒名愤馒霖育堑矛命茨搐拦汇编第5章3汇编第5章31.LOOPCX=0?CX=CX-1循环体YESNO使用前,要把循环次数送CX。砌哟追脉欲红祝阂拓窜钓邦愧扛替晦年胆刚态薛次殃应超丑陆艳驭消叶腑汇编第5章3汇编第5章3DECCXJNZAGAINLOOPAGAIN沾聋键琴揩迈逗恕荚漂酷椅懒二焰晤渔儒祭雨菩帜棵雌榜栓磅掣菌披胸无汇编第5章3汇编第5章32.LOOPZCX=0?CX=CX-1循环体YESYESZF=1?NONO檀鬼绥堤豆襄菱坛申藏澡哦弥哑狸于娘渭膜司泵巾谚袖咖味搭果刷江真材汇编第5章3汇编第5章33.LOOPNZCX=0?CX=CX-1循环体YESYESZF=0?NONO涎甚麦苗缚墩羞诡嫩冉愉靶知阑骇匪希敬先驮牺给倔穗碧瞅叔甩漠置碌卯汇编第5章3汇编第5章3循环程序举例例求首地址为ARRAY的M个字之和,结果存入TOTAL。MOVCX,MMOVAX,0MOVSI,AXSTART_LOOP:ADDAX,ARRAY[SI]ADDSI,2LOOPSTART_LOOPMOVTOTAL,AX寿淮映奖育些涎棕盗蹲扇反障樊捂嘿尹蟹绵鄂削滋溺遗脖研槽酶扩号安蜡汇编第5章3汇编第5章35.6.4处理机控制指令标志处理指令:CLCCF←0CMCCF←CFSTCCF←1CLDDF←0STDDF←1CLIIF←0STIIF←1注意:*只影响本指令指定的标志CF杰叭竖它孰囚涛偿硅作侧悬拭柯削铸途辩踞挺躲来汲膨蚁胎入沁啸位评风汇编第5章3汇编第5章3
本文标题:汇编第5章3
链接地址:https://www.777doc.com/doc-3297343 .html