微机原理与接口技术第章_第1页
微机原理与接口技术第章_第2页
微机原理与接口技术第章_第3页
微机原理与接口技术第章_第4页
微机原理与接口技术第章_第5页
已阅读5页,还剩155页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物理与电气工程学院第3章指令系统8086指令系统(2)3.3.3

逻辑运算和位移指令三、逻辑运算和移位类逻辑运算移位操作非循环移位循环移位位操作类指令以二进制位为基本单位进行数据的操作当需要对字节或字数据中的各个二进制位操作时,可以考虑采用位操作类指令注意这些指令对标志位的影响1.逻辑运算指令ANDORXORNOTTEST2.移位指令SHLSHRSAR3.循环移位指令ROLRORRCLRCR位操作类指令逻辑指令逻辑指令在底层软件中提供了对二进制位的控制。可以对位进行置位、清0或取反。常用于控制系统的I/O设备。1、逻辑运算逻辑运算指令对操作数的要求大多与MOV指令相同。

“非”运算指令要求操作数不能是立即数;NOT指令对标志位无影响,其余指令执行后,总是使CF=OF=0,SF、ZF、PF根据运算结果设置,AF状态不确定。AND指令ANDdst,src功能:

dst←dst&src对两个操作数执行逻辑与运算,结果送目的操作数

只有相与的两位都是1,结果才是1;否则与的结果为0。测试指令TESTdst,src功能:

dst&src对两个操作数执行逻辑与运算,但结果不回送给目的操作数。仅影响标志位,两个操作数都不变。

AND与TEST指令的关系,同SUB与CMP指令的关系一样。★它常用在要检测某些条件是否满足,但又不希望改变原有操作数的情况下。紧跟在这条指令后面的往往是一条条件转移指令,根据测试结果产生分支,转向不同的处理程序。

设AL寄存器中存有报警标志。若D7=1,表示温度报警,程序要转到温度报警处理程序T_ALARM;若D6=1,则转压力报警程序P_ALARM。为此,可按下面方法使用TEST指令来实现这种功能:TESTAL,80H;查AL的D7=1?JNZT_ALARM;是1(非零),则转温度报警程序TESTAL,40H;D7=0,再查D6=1?JNZP_ALARM;是1,转压力报警程序

其中JNZ为条件转移指令,表示结果非0则转移。(即ZF=0,则转移)【例】OR指令ORdst,src功能:

dst←dst∨src对两个操作数执行逻辑或运算,结果送目的操作数只要相或的两位有一位是1,结果就是1;否则,结果为0。XOR指令XORdst,src功能:

dst←dst⊕src对两个操作数执行逻辑异或运算,结果送目的操作数只有相异或的两位不相同,结果才是1;否则,结果为0

。NOT指令NOTdst功能:

dst←~dst对目的操作数执行按位取反的运算,结果送目的操作数按位取反,原来是0的位变为1;原来是1的位变为0。

NOT指令不影响标志位!逻辑运算的例子MOVAL,75H

;AL=75HAND

AL,32H

;AL=30H;CF=OF=0,SF=0,ZF=0,PF=1OR

AL,71H

;AL=71H;CF=OF=0,SF=0,ZF=0,PF=1XOR

AL,0F1H

;AL=80H;CF=OF=0,SF=1,ZF=0,PF=0NOT

AL

;AL=7FH,标志不变【例】逻辑指令的应用AND

BL,11110110B ;BL中D0和D3清0,其余位不变OR

BL,00001001B ;BL中D0和D3置1,其余位不变XOR

BL,00001001B ;BL中D0和D3求反,其余位不变AND可用于复位(同0相与)某些位而不影响其他位。OR可用于置位(同1相或)某些位而不影响其他位。XOR可用于求反(同1相异或)某些位而不影响其他位。例题(1)清签除DH中的挠最低谱三位姥,而雾不改玻变其诸他位暂,结灵果存浮入DL中;AN桂D甲D添H,耗0F毛8HMO再V足D容L,均DH(2)把BX中的0~钟3位清瓦零,5~撤8位置1,10总~1嚼2位取军反;AN拉D浴BX雀,0像FF奇FF扔0HOR进BX救,0坡1E往0HXO鼠R肥BX汉,1轻C0偏0H①清进助位标樱志位:AN贱D旺AX圈,A舟X或OR很A盖L,异AL等。②清零蹲操作餐数:XO甲R委AX仔,A旗X不仅扣把AX清零密,而且析也影被响了猜状态梁标志体。③把某这几位袍取反:用XO译R指令愧,把护要取沈反的委位和1异或装,不越变的养位和0异或屡。④清零剩或置富位某京几位:用AN忌D指令轧清零放,用OR指令滥置位弱。常见切的用拘法举奶例:将操帐作数驴移动首一位索或多蹄位,陆分别截具有左移或右移操作绩。移位仓操作近分成逻辑耗移位和算术亡移位。移位渡指令邮的操炮作数汉可以愿是8/撞16位的通用固寄存帖器或饶存储翻器。移位榨次数陆要么盼是1,要吉么是CL。都会席影响后标志遥位,绞主要炸是学剪习CF。二、翅移位查指令非循复环移羡位指遣令循环移移位脑指令注:移动精一位励时由税指令眼直接慎给出乏;移动两位坝及以顾上,则烤移位寸次数由CL指定。二、搂移位图指令1.非循放环移腐位指硬令逻辑汤左移算术衰左移逻辑虑右移算术卡右移算术阵左移谈和逻移辑左遵移算术庙左移膜指令股:SA膊L谷O扁PR宾D,袋1SA避L窃O钓PR埋D,近CL逻辑遍左移进指令宗:SH序L溜O嫁PR纺D,枪1SH钱L城O讨PR眉D,特CL有符旦号数无符谱号数移动庄一位恒后,驻若CF与最倒高不嘱相等朱,则OF丹=1碗;否则OF景=0逻辑同左移SH高L与SA螺L等价格式腰:SA病LOP害RD宪,赔1或CL牢;功能维:OP卡RD算术左移M位格式酬:SH足LOP呆RD涝,霜1或CL;功能感:OP夸RD逻辑左移M位0CF功能趋:左移1或CL位,叙最低大位补0,最恢高位勺→CF相当密于乘武2算术答左移胞和逻深辑左晕移0CF功能听:左移1或CL位,容最低局位补0,最谢高位芦→CF影响CF、OF同,根据种结果指影响SF、PF、ZF。OF变化赶如下糕:当移拐位次较数为1时,凶若移刻位前绣后数附的最高吐位不导同时,OF=1,否则OF捕=0。当移节位次献数大骂于1,OF不定蛮。算术歌左移创和逻森辑左姑移MO颂V泊AL葬,诱02节HSA近L号AL妇,嗽1;AL静:边00虎00缠00腊10;AL宇:怖00乌00领01斥00MO顿V思AL泛,润02锅HSA璃L冒AL烛,均4MO滔V逮AL里,擦02敞HMO撕V佣C搏L,市4SH俱L辰A幼L,竹CL;AL核:泊0暴00韵0消0暴01理0;AL更:匀0京01煮0霸0笋00涛0;错算术帅左移王和逻旨辑左周移【例】①逻辑咸移位适用臣于无符发号数;算术覆移位适用墨于有符依号数。②撤逻辑徒左移下和算办术左脱移的机器圆码完呈全相完同,是助安记符伴的两养种写欺法。说明劫:SH喊L/吸SA长L的演梳示逻辑堂右移格式塌:SH授R裁O陪PR继D,港1SH脆R篇O滥PR神D,吉CL无符尾号数皆的右移移动苍一位姻后,若次项高位描与最挖高位名不相颂同,则OF恭=1南;否则OF嫂=0功能闪:右漆移1或CL位,楼最高拖位补0,最淋低位→CF影响CF、OF(变化阴同SH兔L),根据壶结果司影响SF、PF、ZF。CF0逻辑炼右移键例:MO茂V弄AL,68订HMO腾V可CL,2SH终R桑AL,CL0CF0翠1沃1颈0欣1集0AL0000缩慧0演1伯1反0解1自0哭0ALCF000创0咳0赢1缘瑞1言0消1惨0ALCF00移动1次移动2次SH糠R的演标示算术薯右移格式幅:SA调R床O径PR丹D,赖1SA介R祸O框PR汁D,洲CL有符捞号数得的右移CF功能刷:右愤移1或CL位,最高济位不斗变,最假低位幕→CF影响CF、OF(变化由同SH借L),根据仪结果僚影响SF、PF、ZF。目的陷操作烧数右滨移一今位,趁最低盆位进努入CF,但画最高速位(稿符号污位)保持让不变界,而卸不是语补0。若目废的操糠作数臭为有柔符号妥数,每右戴移一沫次使目追的操依作数除以2。(然余数阶将丢对失)SA计R的演希示移位柳指令乏的操幻玉作CFOPRSHR逻辑右移0CFOPRSAR算术右移CFOPR0SHL逻辑左移SAL算术左移高位低位已知(A株L)患=0股B4膀H,出(挽CF铲)=兄1,分析宇下列忠指令每执行桂后的拆结果CF尿AL(1夏)厨SA艺L刚A伴L,锤1(2锐)鸡SA披R决A颜L,涂1(3溪)勉SH遣L撒A扎L,定1(4肺)福SH孙R箱A屠L,凯1110普11吊01腰00101叛10哈10状00011亦01巾10诱10101哪10拜10哪00001隆01冤10窄10执行尚前算术射左移恐与逻任辑左显移的抬结果朴相同算术昨右移检与逻暮辑右鉴移的融结果这不同【例】逻辑贫右移算术右移数据渴移位药的例米子MO俭V侮DX伞,6粉07圈5H;晕DX=01率10膜00宾00涂0个11狼10揪10尝1BSH必LDX回,1;迁DX=11溪00掉00艰00疲1厅11毯01顶01唱0B;究CF=0,晓S组F=1,元Z催F=0,饭P旋F=0,OF=1SA升RDX耀,1;笋DX=11间10月00象00基0氧11共10监10末1B;躲CF=0,现S特F=1,滑Z怒F=0,航P村F=0,OF=0SH纪RDX尤,1;祝DX=00效11亚00尼00劫0万01话11线01众0B;朝CF=1,奏S平F=0,美Z视F=0,郑P符F=1,OF=1MO棵V宁CL店,4;苏CL=4,标志粘不变SA惯RDX闻,C壳L;霸DX=00黄00编01称11携0秃00漫00唉01节1B;港CF=1,败S蔑F=0,舌Z统F=0,慎P既F=1说明执:1)左移n位与纸乘以企等效降,可屯用SA姓L和SH徐L指令。2)右移n位与略除以学等效建,可紫用SA诊R和SH产R指令。3)利痕用移避位指请令编励制乘著除运屡算程降序,执行扑时间窝比直圣接用浆乘除会指令拘快,雷速度岔可提谣高5—午6倍。移位摘指令奥的应挨用SH柔L舍AX秒,1;到AX乱←2团×A抢LMO退V铺BX苦,A羞X;加BX填←A准X=2×塑ALSH灭L卡AX甜,1;肌AX阀←4乔×A谷LSH厘L内AX伏,1;丸AX那←8粗×A版LAD晌D砌AX刚,B燥X;固AX孝←8拼×A局L+2×炒AL=10凳×A足L将AX寄存通器中字的无撑符号钢数乘携以10。逻辑燥左移走一位惕相当荷于无漆符号劫数乘问以2逻辑迈右移逆一位拥相当沉于无峡符号乐数除消以2移位物指令分比乘歇法指斥令执腹行的时间捡短【例】;si也←2允×a旺x;si它←3价×a伞x;dx梯←8唤×b临x;dx将←7桃×b复x;dx散←7惨×b佛x+3×割ax移位强指令珍的应渴用--移位冠实现震乘法MO企V悦SI效,A抢XSH插L致SI炎,1AD示D披SI快,A阴XMO滥V酱DX暮,B劈燕XMO蠢V串CL咱,0盲3HSH超L秧DX难,C决LSU犬B每DX丢,B碰XAD那D驳DX杀,S间I【例】移位刑指令洲对标最志的炎影响按照面移入惰的位腿设置加进位朋标志CF根据亲移位赢后的侮结果雷影响SF、ZF、PF对AF没有端定义如果施进行顽一位副移动斩,则勉按照喷操作枝数的最高咸符号具位是挺否改绝变,相箩应设肾置溢场出标坟志OF:如果没移位咏前的司操作坟数最高岂位与送移位衡后操作喷数的最高位暖不同(有春变化申),边则OF刷=弦1;否胡则OF蜓=战0。当移芝位次载数大评于1时,OF不确洁定综合及应用土例将AS简CI鼻I码转槽换成BC爹D码如:AS血C熟‘摄9’佩B限CD‘6匹’96轰HMO申V坊A刻L,剪A冬SCMO柄V耻C旨L,签4SH海LAL您,耀CLMO痰V芝B袄L,福A挖LMO厉V杆A乖L,粉A巧SC合+1AN市DAL喜,道0F册HORBL补,咱A纲LMO潮V嚷B奖CD芬,响BL【例】;AL相<-胖-3祝9H坛(辩‘9汇’);左念移4位39熊H-耻>9化0H;BL掘<-棉-9它0H;AL站<-腥-3恒6H浑(‘厨6’斜);AL匀<-挪-0泪6H;BL影<-轨-9吵6H2.循环赶移位遇指令类似晒移位韵指令截,但她要将略从一西端移鼓出的虑位返跟回到豆另一类端形成茎循环。按指统令功值能设饱置进位掉标志CF、OF(变化络同SH炼L),但不肚影响SF、ZF、PF、AF标志。循环雄移位深指令不带蚀进位雪位的书循环忽移位带进值位位屈的循淋环移韵位左移RO袋L右移RO宵R左移RC间L右移RC吴R指令坝格式倾、对短操作掏数的使要求纱与非在循环翠移位屡指令粥相同格式擦:RO材L辛OP怕RD劲,巴1或CL功能灾:不带翠进位序循环醉左移CF若移砍位后最高散位与CF不同叉,则OF滔=1,表示萌移位坝前后拍数据蠢变号常。不带闸进位置循环左移格式帆:RO听R梢O俩PR忽D,叔1或CL功能彼:不带饮进位犹循环危右移CF不带奔进位奏循环右移格式猎:RC寇L袋OP毁RD动,够1或CL功能爽:带进槐位循皇环左暗移CF可实司现多贴字节品的移写位,台将DX尘,育AX左移猎1位SA休L袭AX渔,揪1RC稼L巷D终X,揪1CFAX0CFDXCF带进怕位的赵循环左移SH就L格式思:RC甚R炉OP否RD驱,滥1或CL功能超:带进撇位循寄环右震移CF同样斯可实阵现多史字节有的移企位。带进猜位的顷循环光右移循环剧移位坛指令耗的操堡作CFOPRCFOPRRO赔L循环仓左移RO踩R循环聚右移CFOPRRC叶L带进滴位循巾环左祥移CFOPRRC黑R带进产位循祸环右丝式移以下掀程序美段执纱行后液,(BL)=么?MO赴V闯AX框,1遵23表4HSU英B燃AX糠,5逮67咱8HMO绞V没BL妖,0棒01亩10冈11而0BRC白L拿BL璃,1执行SU疗B侦AX概,5箭67廊8H后,CF弦=1001101101CFRC惨L0怠1眠1差0证1痒1率00CF执行RC嫁L策BL洽,1后(B城L)宰=故01释10冲11舟01蓬B1CFOPR【例】SH著L顽AX榴,1;AX左移1位,(茂CF踏)AX的最裳高位RC画L坛DX愚,1;DX带进彼位左柔移1位,D逃X的最激低位(C巩F)DXAXCF0循环宿移位握指令隆举例--英3穴2位数尝移位;将DX方.A脑X中32位数道值逻姓辑左加移一飘位如何毒解决AX的最杀高位于移入DX的最订低位带?循环晨移位书指令富对标样志的料影响按照访指令争功能谁设置晃进位沙标志CF不影懂响SF、ZF、PF、AF如果龙进行视一位弃移动朽,则氏按照沾操作轮数的幅最高移符号康位是糊否改腥变,乞相应范设置中溢出怕标志OF:如果唉移位院前的钳操作酿数最坑高位哥与移却位后幻玉操作挂数的熊最高烤位不离同(纤有变恨化)映,则OF慢=摩1;否箩则OF海=挽0。当移揉位次铲数大柄于1时,OF不确紫定循环映移位克指令棍的应忧用用于抄对某烈些位娱状态间的测猪试;高位巷部分雅和低匹位部让分的锄交换两;与非循坏环移抱位指亚令一起钟组成32位或挠更长鼻字长冰数的危移位思。利用涂循环朗移位热指令飘可以左对寄似存器脊或存腿储器搜中的销任一怒位进培行测而试。如要匪测试AL寄存孝器中掀的第5位的烦状态搂是“0”还是祖“1”,则可搁利用坝以下赖指令钉实现该:MO滋V法CL,5府;芒(C废L)移位仰次数RO抱R山AL,CL尿;警(C青F)AL的第5位JN缴C逗ZE防RO镰;若(C启F)肺=0晨,转ZA碰RO;否则ZE鸟RO前:使用逮举例码制购转换AH椒.A徒L分别遍存放束着非客组合BC亩D码的划两位旷,请将甲它们吨合并呆成为蛾一个协组合BC明D码存AL。00容00船XX畏XX浊00蒜00厅YY崇YYXX精XX僵YY阵YY00化00护11嗓11舱0粮00挂01铃11罢100裙00凤XX剃XX轿00控00行YY揉YYXX色XX渐00像00妈00雪00非YY俘YYAN档D掠AX腥,0坛F0坛FH;保剪证高4位为0MO修V蜘CL绳,4RO适L带AH彻,C食LAD客D拢AL克,A次HAHAL逻辑页运算内与移拨位指畅令小滥结逻辑纷运算位指令(5)AN最D、OR、NO咏T、XO饼R、TE果ST移位组指令胖(4)SH眉L、SH资R、SA腊L、SA糕R循环灵移位探指令败(4)RO肌L、RO议R、RC幼L、RC悦R13条,认累计47条!RO族L的演纽奉示RO扁R的演搬示RC声L的演辜示RC传R的演古示3.御3.记4串操作作指令串操连作指倡令串,术就是节连续末存放选的数煮据,奥如字讯节串盒、字慰串。串操鸟作指柄令采用羽了特何殊的秒寻址错方式。可实状现存储跨器到岂存储悄器的在数据洪传送;利用循环仅程序也可固以实晨现串逗操作锻指令赴的功晕能。串操鼻作指庸令的养共同洞特点源操椅作数皂为DS消:[软SI症],可命段超尝越;目的并操作筑数为ES洁:[另DI军],不可内段超躁越。每次演操作闻后自身动修瞒正指敬针SI或DI。方向闭取决权于DF:DF毛=0,增轧量;DF冤=1,减泰量。大小膜取决疤于串盟类型券:字仿节为1,字躬为2。可加RE军P/伶RE厌PZ饼/R恳EP战NZ重复冲前缀涨,以竟重复予执行政指定激的串港操作搞,重阅复次辱数放提在CX中。格式涌上可太以写路操作蛙数,扑也可烘不写浊操作平数,舰此时泳需要示加上‘B’(字叫节)霸或‘W’(字协)。除CM蠢PS和SC膊AS外,其余怒指令访不影孝响标权志。串操鼻作指充令串传移送MO顷VS串比拨较CM评PS串扫置描SC柱AS串装佳入LO卡DS串送食存ST迎OS说明锈:每条河指令有三阵种形躁式,具分别寇对应挽于字节新操作、字操江作和双顿字操解作重复诊前缀无条泳件重学复RE缓P条件白重复RE树PE相等甩重复RE岭PZ为零拥重复RE侍PN迅E不相兔等重钓复RE演PN插Z不为抱零重烛复CX瞎≠0在ZF蒜=1CX除≠0列Z盛F=基0CX置≠0重复重复不前缀RE摘PRE苗P功能京:若CX葬=0,则积退出哥串处瞎理循值环,稠执行布下一践条指劫令若CX勤≠吃0,则降:执行她基本豆串操庄作,然后CX献←C控X-1(但任不影忌响标脑志)常与MO巴VS、ST超OS联合侮使用注意款:所屈有重乳复前爹缀不阴能单盼独使汽用!重复仗前缀RE棚PZ和RE厅PERE菜PZ雁/R偏EP麦E功能鸣:重复暴执行夕操作症的条润件:CX灾≠乏0且ZF担=1,其熔余同RE锯P。(找掠第一停个不非相等链的元搁素)常与CM萝PS、SC配AS联合局使用贡。(该重上复前圣缀只钢能使申用在弄影响ZF标志稳位的过串指吩令前)重复散前缀RE扮PN管Z和RE助PN恼ERE殖PN贸Z/赏RE副PN但E功能漫:重复摆执行爱操作迫的条欢件:CX寺≠蛋0且ZF召=0,其泰余同RE遣P。(找绘第一陕个相座等的搁元素甜)常与CM挎PS、SC箩AS联合剑使用引。(该重贝复前杯缀只狠能使等用在虑影响ZF标志裙位的扁串指舍令前)MO盟VS目的哲串,贯源串功能墓:①窜ES港:[善DI拥]持←号DS芒:[晃SI震]②界SI折←绍S期I慨±致1/仅2,DI搁←范D逢I地±1静/2MO味VS缴BMO效VS稍W1.串传跑送指肚令串传胳送指咐令常惩与无渠条件累重复错前缀谋连用以完助成多视个字名或字嚷节的危传送跃。MO售VS课B:每次塘传送皮一个亦字节幅;MO割VS星W:每次惜传送量一个缘瑞字;将位奖于DS段,触由SI所指赤出的武存储价单元门的字恨节或冒字传裕送到书位于ES段,自由DI所指瓣的存句储单集元中迁,再帜根据DF修改SI和DI池,从而静指向木下一弓个元如素,肯继续黄传送麻,直到CX为0菌为止。DS:SIES:DIDS:SIES:DIDS:SIES:DI1.串传鸦送指缴令LE卡A智SI择,汉S寇TA访RLE却A万DI加,处N屡EX爽TMO喷V市C改X,辛10泄0CL排D;D姨F=喉0RE搁P共M掩OV伶SB通常型,在毛串传负送指聪令前使加重像复前抢缀RE梯P,程序准可自丹动计尿数并码判别坛是否分传送叫完毕费。RE壳P宽M豆OV投SB相当洪于[DS永:S繁I][兆ES缴:D词I]SI土=S姑I+叉1DI你=D刚I+色1CX拿=C缎X-叼1CX≠0时转掀移RE干P烛M吩OV厉SB传送湖过程竟如下:(1)(C权X)坊=0规?若等书于0,中亡止传淘送,否则饰执行铸下一址步(2)CX(营CX宏)-斯1(3)串充传送(4)修皇改指辽针按增裂量方帅向修掌改(5)转理到(1)【例】MO偏VS指令借示例MO接V江S深I,慌0颜05杂0H;太(秃DS核)=准20塞00醒HMO膏V艳D些I,封0歉10脉0H;葵(扯ES变)=秃30掏00贫HMO糊V耐C框X,施5CL串D;D滔F=嘉0RE若P庭M矮OV池SB执行碑前匙执行侮后‘A’蕉2短00辣50世0钢0踢3圾01饭00贷‘A碎’皮20艘05睛0‘A很’30砖10牢0‘B攻’耽1糊00缸1昌‘招B’绒1‘B凶’1‘C锹’蓄2欲00苍2猛‘抚C’其2‘C螺’2‘D系’馒3鸣00陷3湾‘拿D’斯3‘D渴’3‘E扎’邮4厚00走4呢‘朗E’芬4‘E们’4‘F绩’笛5邻00饿5朵‘垂F’桂5秀00谣5源区生目的亏区舟源超区文目败的区SI折=0涉05摊0宝DI棵=0鸽10俯0SI汪=0誉05谎5顶DI往=0宏10择5【例】CM巷PS目的串,界源串功能负:①腾ES棚:[痕DI吓]-DS叠:[名SI超]②撇SI慎←院S突I啦±酒1/递2,亏D晒I深←准DI隐±躬1/粗2CM舍PS种BCM氧PS析W2.串比质较指门令依次部比较殖两个钳字符料串是访一个乞循环扮过程战,这蛮个循妨环过凉程有两种蒙退出臂条件,一是满足彼比较语条件,比析如找祖到第一朋个相贱等字桑符或找挂到第一右个不吐相等哗的字符文;二是初没有志满足屿比较乖条件炸但已比片较完抛所有晋的字辨符。串比怎较指掏令比较稠串操扬作的席重复警前缀洪:RE扛PN窜Z/夹RE精PN丛E:不相讽等时钢继续贪寻找弯,直削到寻暖找到第一职个相倚等的字班符或勉寻找厅完所蓄有的常字符趟(CX搅=0访)。RE折PZ饰/R剧EP涨E:比较贷结果景相等郑时继艳续寻鼓找,听直到轰寻找狗到第一拉个不蒜相等的字柜符或气寻找截完所怜有的偿字符殊(CX律=0奖)。CX的值垃不影狐响ZFCM乒PS指令海示例串St味ri妻ng感1和St趁ri毅ng可2分别套定义是在数殿据段巨和附恰加段责中。筑比熊较两满串,克如相揭等则歼转移难到标诊号NE幅XT处。St蜡ri安ng忽1羽D死B乞‘H傲EL呀P’;定煮义St绕ri谨ng鱼1St蛋ri先ng伍2洗D湾B甘‘H秆EP嚷P’;定化义St影ri孩ng帐2……CL爪D;DF携=0LE陡A刚SI蛋,追St凶ri放ng毅1;源倦串地帜址--尺>S碎ILE貌A亏DI穷,降St香ri趟ng继2;目搜的串池地址--胜>D宜IMO桃V锹CX火,姐4;重尼复次验数--扒>C糕XRE顽PZ达CM逆PS订B;重舱复比锤较JZ席NE另XT;串长相等疾转移..份..NE卫XT但:【例】SC量AS目的怕串功能残:①桶ES秘:[马DI鹿]-AX陵/A门L②港D稼I柏←晃DI讲±籍1/土2注意携:对穿标志罗位有圾影响题!SC终AS雪BSC元AS俊W3.串扫造描指霸令执行汇与CM剧PS指令代相似浅的操紧作,框只是祥这里由的源历操作坡数是AX或AL将AL或AX中的瞧数据与位奔于ES段DI指针偷所指脆的内匹存单挤元的数据兴相比研较,通邻过重歇复前孙缀的誓控制伸,可才以寻找铲到内存睛单元宣中的顶第一颗个与AL凭(或AX恋)不同泪或相胸同的数形据。RE腿PN陪Z抗S顺CA税SB杜:(A潜L)样-[壤ES文:D愁I],不为肺0(越不相钞等)削时俘继续疯比较引,DI自动弓加1技或减确1,CX自动惹减1怠,直判到相旅等或CX为0枯时退忧出循猪环。寻找仙第一盈个相变同的娇数据RE贝PZ迷SC援AS共B:(A贱L)觉-[心ES诉:D婆I],为0阔(相昼等)骨时世继续晓比较商,DI自动李加1己或减倾1,CX自动购减1饥,直汇到不笔相等档或CX为0草时退练出循躺环。寻找名第一典个不串同的量数据骄。串扫突描操仇作的惰重复输前缀葬:串扫侄描指动令的派应用常用姿于在胳指定柜存储钢区域省中寻找世某个无关键蛋字。SC真AS指令抄示例在串听“Th峡at劝i肢s泪CA帮I”中查滔找字盆符‘a’,找科到,葛则转步到标刮号FO舞UN药D处。St宜ri棕ng执DB踢‘T脑ha塔t丧is讨C药AI乳’;定垫义串……CL覆D;DF锻=0LE丽A爽DI夕,详St员ri谁ng;串晨地址--己>D哪IMO蔽V漆AL投,弯‘a候’;查识找字窝符--暗>A闲LMO殿V螺CX伞,币11;重筹复次问数--枕>C陷XRE领PN故Z储SC蚀AS收B;重快复扫槽描JZ灶FO共UN师D;找斥到目压的串续元素课转移……FO宽UN孟D:【例】LO刃DS源串功能算:①刑AX齿/A光L逮←淘DS痕:[驶SI票]②飞S驰I罩←糠SI己±面1底/2LO壶DS依BLO费DS跃W4.串装圣入指甲令用LO摇DS僵B时,站每次闸取一疼个字日节,啦取完己后,发地址椅自动烘加1稿或减邮1;用LO卵DS聪W时,糠每次兄取一叮个字师,取逗完后退,地弊址自失动加乌2或哀减2陪。该指惨令一垦般不饶用重讲复前咱缀,否兴则,AL或AX中的案内容害会被养后一尺次操绘作覆宫盖,犹最后爹只能壮得到宵内存幕中字镰符串伤的最涨后一鲁个字册节或辫字。ALLO班DS包BDS:SIDS:SIDS:SIDS:SI……LE贸A属S啊I,腥S醒OU小RC耀E;源唐串偏最移量--摘>S棍ILE铲A沾D蔽I,腾D丝式ES颗TI苏N;目述的串歪偏移细量--程>D旋ICL技D;DF闲=0MO食V察C舱X,渗10胁0;重揭复比叼较次转数--干>C还XRE躺PZ俱C河MP貌SB;重值复串狱比较JC向XZ充M盼AT捎CH;没施有不粱匹配觉元素陕跳转DE烧C畜S闸I;指菌向不殃匹配远元素LO盐DS逃B;装班入不搬匹配殃元素房诚到AL..匆.MA榴TC略H:LO多DS指令舟示例比较SO劳UR暴CE和DE诊ST鸦IN覆(串长艺度为10饲0个字惩节)肌,并敏将串盛中的蜜第一鹅个不饭匹配凝元素碎装入AL寄存骑器中崭。【例】ST据OS目的土串功能份:①道ES李:[色DI元]贴←票A络X/蛮AL②旨D芹I垦←瘦DI迈±仪1/培2ST袭OS昌BST亡OS触W5.串存谦储指稼令把AL或AX中的机数据存放到位怒于ES段DI所指瘦的存邮储单给元中,肿并自远动修者改地现址指攀针。该指宝令可业加重晕复前梅缀,眉使内挖存中蚁连续康的空命间填师满相扯同的网数据丧。将从DB奖B开始遭的2墙56唉个单观元清仙零CL核DLE挎A吓DI讯,浮DB酬BMO寻V症C露X,纤8银0HXO最R怠A因X,得A卡XRE夜P嫂S废TO疑SW串存分储指蔽令将从托07饶00H单元蚂开始苦的5为个字乐节的款内容睛逐一址取来蜜,放绸在累将加器共中进赠行处抬理,遇处理歇完后形再送检到0亡70捐0H的内悼存区胞域。CL察DMO患V雕S础I,薄0朽70环0HMO守V庸D拼I,匪07赶00甩HMO户V拼C居X,惑5L1勇:LO阔DS逮BPU助SH哭CX……PO定P对C狐XST枣OS道BDE全C搅CXJN朽ZL1处理字符指令不用俱考虑晌指针DI俱,S约I的变滑化【例】注意球:使用怕串指镰令前攀,必掘须先连进行随以下描设置腔(初询始化望)(1)必莫须事极先设萍置隐校含的厦寄存挎器;(2)设贴置方遍向标镰志位DF;(3)如金果使瓜用重口复前疑缀,召还必须仓把重折复次源数放入CX中。串操填作指梁令小掠结串操眉作指盏令小娘结串操滤作移旺指令(5)MO唇VS、CM逢PS、SC显AS、LO功DS(不趟能使叮用重懒复前瓣缀)、ST忌OS重复突前缀五(3)RE多P、RE址PZ、RE缴PN傅Z8条,若累计55条!转移作指令循环娃控制过程坚调用中断夏控制3.证3.侍5程序茂控制指令控制东转移储指令改变鸡指令爸的顺赴序执苏行,得用于凶实现豆分支丝式、循摩环等俘程序选结构套。除中誉断指遭令外彼,其驴他指辜令均术不影腾响标醒志位澡。分类无条材件转总移条件凉转移循环螺控制过程累调用殊与返抗回中断指令裤执行穷顺序80脉86净/8捕08得8中,追指令仿的执行版顺序病是由CS船:I初P决定辈的。一般支情况膀下,惰指令释是顺宅序执龄行的。如群要改踩变指唯令的裂顺序助执行辛,就良需要勒改变CS或IP。控制蔑转移女类指抚令通岗过改制变IP或CS值,实车现程椒序执唱行顺嫁序的狗改变炒。当程仓序发偿生转湖移时岔,存么放在意指令阻队列中寄存误器中谢的指树令被柔清除煤,BI叠U将根径据新食的CS隶:I蓄P值从求存储述器中龙取出守新的锹指令姿,并取直接拳送EU执行嗽。目标许地址获的寻离址方时式相对昆寻址嫌方式指令找代码贿中提形供目张的地催址相对于当作前IP的位移仇量,转污移到疤的目恢的地打址(外转移樱后的IP值)泡就是狱当前IP值加胞上位毕移量直接环寻址省方式指令染代码旋中提哥供目耀的逻定辑地催址,舞转移匠后的CS和IP值直接来自转指令针操作郊码后沉的目炮的地酸址操酬作数间接捎寻址猾方式指令铲代码弦中指樱示寄赵存器读或存使储单敞元,扫目的池地址阅从寄趴存器哄或存婶储单赚元中间接获得用标宋号表渠达用标贡号表蹈达用寄帅存器额或存苍储器政操作冶数表从达目标此地址附的寻先址范流围:虏段内握寻址段内软转移——短转伟移(sh最or源t)转移弄范围惰可以魄用一个脂字节恳表达,在狗段内村-12肃8~+12洽7范围缺的转院移段内破转移——近转沸移(ne贷ar)在当桃前代饱码段64像KB范围米内转派移(±3明2K常B范围角)不需雾要更旁改CS段地机址,只要觉改变IP偏移联地址代码段代码段目标汇地址悲的寻末址范锐围:鹅段间罩寻址段间激转移——远转聪移(fa陕r)从当静前代拴码段救跳转底到另瞧一个筛代码迁段,滔可以波在1M静B范围需要更改CS段地傲址和IP偏移装地址目标铜地址价必须把用一笋个32位数红表达对,叫尿做32位远秧指针爹,它剪就是匪逻辑典地址代码段代码段实际泽编程包时,粮汇编露程序谣会根愁据目显标地兵址的惭属性乖,自动味处理成短谈转移赶、近跟转移赞或远笛转移程序苏员可座用操维作符sh鞠or摩t、ne敲ar粱p最tr或fa狂r沾pt聋r强制蒙成为滔需要杂的转挥移类延型转移迷地址谦寻址控制货转移胁指令闻需要澡确定但转移卷的目讯标地丈址。目标伶地址丙可以金在段耗内,邪也可料以跨务段(阔段间悠)。段内粮转移只修籍改IP,而段间摩转移要修越改CS和IP。分类段内笼直接壁寻址段内柳间接介寻址段间赖直接桐寻址段间考间接正寻址一、袍转移茅指令无条问件转档移指确令无条挑件转在移到我目标竭地址西,执才行新民的指杜令有条止件转干移指处令在具器备一模定条怪件的谁情况畅下转疲移到竿目标懂地址通过洞修改这指令毯的偏移倘地址或段地把址及给偏移迈地址实现禽程序鸣的转掀移1.无条错件转凝移指牧令JM冻P件l马ab税el功能被:无条冰件地咸转移阿到指懂令规那定的防目标援地址la许be立l。分类段内银直接新短转诸移段内肺直接跌近转极移段内郊间接旁转移段间橡直接羊转移段间屯间接石转移无条敬件转宴移指践令指令名称指令格式指令功能转移范围段内直接短转移JMPdisp8(IP)(IP)+disp8-128~+127段内直接近转移JMPdisp16(IP)(IP)+disp16-32K~+32K段内间接转移JMPmem/reg(IP)(mem)(IP)(reg)-32K~+32K段间直接转移JMPaddr(IP)偏移地址(CS)段地址-32K~+32K段间间接转移JMPmem(IP)(mem)(CS)(mem)+2-32K~+32K原则赤上可洽实现林在整亦个内肚存空爹间的杜转移无条拿件转而移指浓令JM殃P(ju肤mp)JM辫Pla嘉be软l;段内仁转移乱、相重对寻举址;I哥P←守IP+位夹移量JM浸Pr1锻6/汽m1云6;段内跨转移不、间朗接寻箭址;I呆P←骨r1细6/烂m1嘱6JM任Pfa达r喇pt研r瞎la皱be宣l;段间打转移狂、直脚接寻遣址;I玻P←偏移罗地址,C箭S←段地研址JM幸Pfa静r暂pt堵r枝me洁m;段间旋转移疏,间篮接寻金址;I耳P←涂[m挺em吃],乱CS使←[序me溉m+2]无条那件段洽内转求移转移俘的目标猎地址在当需前代积码段更内,才段地懒址不缸改变培。即:目标渣地址是16位偏肠移地燥址。指令游中直谢接给匹出目锣标地霞址由指瓶令中遗的寄存戒器或跪存储烫器操仆作数指出崇目标暮地址段内冤直接慢转移段内贿间接转移段内土直接顾转移段内袖直接挎转移转移晋的目黎标地劲址由贿指令没直接斥给出格式居:JM拐P裙L河ab样el近地翼址标幸号JM历P类SH胖OR冲T标号JM初P邮NE行AR燃P滋TR标号或JM健P标号段内赖直接毁转移雪示图JM愁PLa挽be窃l┇┇┇代码揪段位移起量下一盛条要樱执行债指令停的偏呈移地盘址=当前IP仆+位移竿量段内师间接很转移段内汽间接金转移转移批的目拍标地气址存煮放在顺某个16位寄存卵器或抗存储畜器的某疤两个哄单元些中例:JM百P绣B治X若:BX蛇=1毯20周0H则:灭转移雄的目印标地血址=1欣20嫁0HJM寻P┇┇代码棵段12甜00乓HMO拜V段内药间接洞转移辜例JM邻P读WO定RD绘PT如R[坛BX摄]设:BX拿=1滩20狸0HJM饰P┇┇┇代码琴段数据帐段BX米=1钥20培0┇XX怪HXX缘瑞HIP指令禽码无条扯件段宅间转马移转移读的目标尊地址不在当前短代码厅段内。目标枝地址为32位,包教括段斤地址带和偏抛移地螺址。指令晓中直策接给拜出目暖标地方址由指耍令中弯的32捧位存欢储器蜜操作予数指出目诊标地富址段间源直接跟转移段间驾间接聋转移段间语直接用转移段内窃直接导转移转移柴的目送标地泛址由掩指令嚷直接阵给出格式敬:JM顿P枕F姑AR万L少ab娱el远地宇址标每号段间科直接死转移虏示图JM计PLa医be繁l┇┇┇代码批段1La成be卧l与JM命P之间洒的位德移量代码榨段2XX粮HXX佩HXX饰HXX环HIPCS段间贝间接午转移段内者间接栏寻址转移孤的目爆标地军址由验指令姨中的32位操洗作数给出例:JM馋P克D吐WO健RD更PT些R[或BX爸]XX魔HXX蒙HXX喉HXX割HBXIPCSJM五P┇┇┇┇指令施码代码吩段1代码帜段2数据两段例:JM惯P菜[磁B声X+滤DA消TA舅]设DS玩=2午00萄0H,BX奔=1琴40尖0H,DA颗TA饺=0为20枝AH,则水执行睬过程谣如下赢:20角00债0H30食0040知00IPCS00300040EA族=1呈40上0H护+0绸20跨AH执行问跳转丢指令绑后,影转移融至40喂00械H:30乘00伸H处执雄行程太序。数据油段【例】段内史直接循转移误的演死示段内咱寄存昂器间默接转河移的然演示段内猎存储电器间权接转杆移的幼演示段间秀直接心转移甘的演兄示段间旺间接朽转移勤的演盖示2.条件既转移朵指令在满岗足一例定条紧件下浩,程宋序转学移到纳目标惜地址患继续插执行条件天转移池指令标均为段内掘短转碗移,即两转移范围橡为:-1碍28望--沉--戏--熔+1说27条件畅转移刚指令Jc隐c腐l府ab区el功能烂:根据敬指定配条件河是否言成立期来确文定程睡序是宫否转农移。cc表示颈某种盒条件柳。若条请件满吸足,藏发生济转移IP逮←当前IP+8位位屋移量否则言,顺冠序执间行la绑be棉l是一译个标各号,愁表示伍一个8位位满移量归。la猫be品l只支积持段绳内直什接短处转移惧寻址鲜方式誉,即相对让短转遭移。转移迈条件JZ哪/J愤EJu金mp愈o成n谷Ze展ro邮/E沉qu施alJN更Z/获JN痕EJu喷mp薪o晋n筒No询t闹Ze子ro胃/E溉qu腥alJSJu呢mp划o均n宁Si数gnJN补SJu糖mp贩o罪n牵No躁t翅Si坟gnJP似/J油PEJu焰mp胞o旦n智Pa框ri晴ty核/P匹ar章it萍y膨Ev密enJN樱P/布JP允OJu龄mp展o微n何No胜t宅Pa孕ri母ty带/P迟ar胸it环y咽Od炮dJOJu特mp控o删n域Ov怠er画fl希owJN汇OJu巴mp勺o催n位No辈t担Ov哨er镰fl答owJC著/J照B/殊JN桥AEJu竟mp州o搬n帜Ca份rr贯y/霸Be奔lo锣w/敏No喷t娃Ab另ov悠e虹or梢E拘qu摧alJN破C/置JN执B/哲JA谊EJu喜mp剑o枕n模No泛t跨Ca药rr黄y/念No陪t颂Be妄lo煮w/脊Ab衬ov旷e赶or无E纲qu盏alJB闲E/师JN妥AJu施mp帆o今n眨Be猪lo苍w臂or钱E兴qu乘al虎/N两ot碎A首bo距veJN饥BE牢/J洽AJu躲mp座o贵n某No究t欣Be薯lo管w悉or拢E孔qu斥al倡/A叹bo与veJL扬/J权NG岭EJu克mp淡o道n蠢Le毛ss壤/N圈ot执G轮re吨at弦er刚o倡r款Eq寻ua寺lJN口L/己JG统EJu怜mp裂o悟n假No艘t烧Le陷ss湖/G烈re朋at像er槐o尘r月Eq正ua惑lJL闭E/额JN醋GJu代mp陈o锣n驻Le蹲ss勉o棋r塌Eq涌ua闸l/锡No热t拢Gr喘ea胸te备rJN对LE社/J桶GJu凶mp海o体n聋No给t泊Le族ss役o抗r商Eq榨ua芦l/脆Gr斯ea凭te妄r共16个!Jc目c的分最类Jc浇c指令相不影购响标丘志,骡但要拘利用运标志。根据兼利用范的标之志位库不同开,分释成三芬种情隆况:⑴密判羊断单四个标卡志位帝状态⑵漂比迈较无悔符号父数高林低⑶缎比时较有浪符号侍数大盒小Jc惯c指令兵实际兵虽然访只有16条,坡但却拨有30个助婶记符罚。对采用飘多个壁助记抛符,挤目的毁是为竹了方王便记盼忆和蜓使用铅。判断喊单个消标志JZ刮/J分E和JN斩Z/聋JN厚E利用零标北志ZF,判极断结钞果是他否为哑零(待或相录等)JS和JN奋S利用符号菠标志SF,判参断结纱果是绑正是侧负JO和JN奏O利用溢出贵标志OF,判史断结躲果是倒否产挠生溢取出JP末/J叙PE和JN晨P/级JP李O利用奇偶摩标志PF,判棉断结喝果中1的个剪数是氧偶是旅奇JC和JN它C利用进位诱标志CF,判牧断结权果是护否进由位或诱借位题目渐:AX中存讨放的泽无符版号数芳,若AX是偶酿数则稠除以2,如转果是驳奇数续则加1后除询以2。分析彼:如何蚀判断AX中的下数据堵是奇花数还刮是偶娇数?解答丽:判断AX的最侨低位驶是0还是1,可亩以利恭用逻叔辑运跪算和品移位扮指令破。【例】题目输:AX中存省放的貌无符吼号数俩,若AX是偶狠数则闻除以2,如供果是踪蝶奇数顾则加1后除礼以2。解答政:判毛断AX的最涌低位见是0还是1,可钢用逻辑蹲运算和移位崖指令。方法乳:用逻辑岗与指令悦保留AX的最拢低位春不变松而使疼其他夸位清0如果布运算却结果指是0,则AX为偶术数;橡否则纳,为稀奇数已。将最径低位嫌用移位指令抖移至进位艇标志,判断虚进位鹿标志迟是0,AX为偶革数;月否则奏,为隐奇数思。将最室低位抵用移哑位指纠令移谦至最都高位溪(符号步位)判断污符号恐标志茄是0,AX为偶购数;坊否则括,为礼奇数寒。【例】利用JZ指令犹实现TE团ST块A荣X,星01派H;测义试AX的最丹低位D0;不用AN袭D指令,以免钥改变AXJZEV泉EN;标字志ZF=1,即D0=0;AX内是掀偶数,则程努序转拐移AD善D筒AX画,1;标席志ZF=0,即D0=1;AX内的腔奇数,加1EV僵EN:SH直R贵AX牵,1;AX陡←A器X÷地2用右吐移一追位的屿方法唉实现独除以2。利用JN根C指令帖实现还可红用RO球R和RC味R指令秧。MO蛇V草BX佩,A伐XSH察R克BX格,1;将AX的最钩低位D0移进CFJN慰CEV疗EN;标志CF=0,即D0=0;A盈X是偶危数,则程字序转窜移AD耕D争AX甩,1;标志CF=1,即D0=1;A讯X内的追奇数,加1EV弦EN:SH漂R医AX匀,1;AX舞←A微X÷男2判断涉是否绘为字怪母Y;寄租存器AL中是约字母Y(含衔大小忆写)失,则残令AH=0,否则疑令AH=-1cm告p献al面,’笛y’;比寨较AL与小致写字图母yjene滋xt;相蚀等,渣转移cm串p雷al覆,’雨Y’;不逮相等待,;继兰续比男较AL与大狗写字慕母Yjene忌xt;相父等,间转移mo气v校ah汽,-怪1;不烦相等虽,令AH=-1jm豪p啊do诸ne;无公条件雕转移姨指令ne拐xt袄:链mo侄v季ah庙,0;相吹等的担处理数:令AH=0do破ne肌:……比较础无符冰号数醒高低无符谦号数斗的大济小用炉高(Ab剂ov窜e)、非低(Be卸lo假w)表贿示,铲需要业利用CF确定捎高低、利末用ZF标志猜确定区相等(Eq妈ua告l)。JB爽/J耕NA涝E目的赌操作投数低于(不高姻于等功于)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论