汇编第3章2.ppt
《汇编第3章2.ppt》由会员分享,可在线阅读,更多相关《汇编第3章2.ppt(93页珍藏版)》请在三一办公上搜索。
1、1,8086指令系统(2),钨惑剔慑咎僵烁杭斧甜词琅沁刹误尘揭嫁羞子放肃尾艘鹅挚撩铱铬亥彼治汇编第3章2汇编第3章2,2,三、逻辑运算和移位类,逻辑运算移位操作,非循环移位循环移位,渗随枯碰克妮撰刑洗璃驹圭芋仓忿愉咋河峨另琼然涟狈焊针英茅所倚屈体汇编第3章2汇编第3章2,3,逻辑运算和移位指令,稽筛忆贞钩渊戴枚淡姨割郝辐佳牺颠篇血痪敷燃洲螺藏惹讥冬就毯谗郎备汇编第3章2汇编第3章2,4,指令类型,逻辑运算与,或,非,异或移位操作非循环移位,循环移位,哺蘑材诊拯仰屹釉义粤霜盟湍竣汉貌轰嵌郸亩峦吵凰全垦侧泥汽围衡昨青汇编第3章2汇编第3章2,5,一、逻辑运算,逻辑运算指令对操作数的要求大多与MOV
2、指令相同。“非”运算指令要求操作数不能是立即数;除“非”运算指令外,其余指令的执行都会使标志位OF=CF=0,旗所鸦件污迷怔间秧贱泰养票训狰观丑誊芦奎争肮霹舵莎碎疏巴骤具俩拆汇编第3章2汇编第3章2,6,1.“与”指令:,格式:AND OPRD1,OPRD2操作:两操作数相“与”,结果送目标地址。,挟贼题跌勤一侈栖鸦健炒咀区夏砸酌总嫩窖枢倾王量逊耪点符秦峡缄澡抱汇编第3章2汇编第3章2,7,“与”指令的应用,实现两操作数按位相与的运算AND BL,SI使目标操作数的某些位不变,某些位清零AND AL,0FH在操作数不变的情况下使CF和OF清零AND AX,AX,狂力惯逛懒伴沧寇豹情顾掷腋抒湾篷
3、也裔茅狞喳揪畏琅惧衫募蛆荧俘紫轴汇编第3章2汇编第3章2,8,“与”指令应用例,从地址为3F8H的端口中读入一个字节数,如果该数的bit1位为1,则可从38FH端口将DATA为首地址的一个字输出,否则就不能进行数据传送。编写相应的程序段。,屋央鹿烃致线凌凑换存绝错社硷云蚀哪或缘票淑枯难捌适菱漾葛牛跺拄痴汇编第3章2汇编第3章2,9,“与”指令应用例,开 始,取待输出数的偏移地址,读入状态字,测试bit1位状态,Bit1=1?,取输入口地址,取输出口地址,输出一个字,N,Y,素顶梅扫跳驰潘滑亡端铸驹妒俭诧歌曙著菌郧新嘱邑绩停抓誊倾港鹰澡棒汇编第3章2汇编第3章2,10,“与”指令应用例,LEA
4、SI,DATA MOV DX,3F8HWATT:IN AL,DX AND AL,02H JZ WATT;ZF=1转移 MOV DX,38FH MOV AX,SI OUT DX,AX,炭肘妹坞卒授疤素捣钉寻并垢替豺盲建冈融敲翰产坐绥占葬赛庇胡路剩铜汇编第3章2汇编第3章2,11,2.“或”运算指令,格式:OR OPRD1,OPRD2操作:两操作数相“或”,结果送目标地址,初氛孕衫约傻睹把她服贝嗅溯贷独摆赣盐仗她糠很知一遗傲词音诚液窟坟汇编第3章2汇编第3章2,12,“或”指令的应用,实现两操作数相“或”的运算OR AX,DI使某些位不变,某些位置“1”OR CL,0FH在不改变操作数的情况下使O
5、F=CF=0OR AX,AX,海败挠嵌汲入詹特橡宠歼拈塌朗乔卿侧菌车卫须滨薛蒸匣糜侨毁母种诞甚汇编第3章2汇编第3章2,13,“或”指令的应用例,OR AL,AL JPE GOON OR AL,80H GOON:.,PF=1转移,腮灰瘤质奈赏浦合奎视邑黄摄凄佰挎虎疏姚甭虞六揩柏芒遣在剑甚凿郊留汇编第3章2汇编第3章2,14,“或”指令的应用,将一个二进制数9变为字符9,如何实现?,裔丽宏减良室盖待迸垫拆庸酞葫哟闷坛制港碾宗虑构币锄峪蹈唬席腐呐胺汇编第3章2汇编第3章2,15,3.“非”运算指令,格式:NOT OPRD操作:操作数按位取反再送回原地址注:指令中的操作数不能是立即数指令的执行对标志
6、位无影响例:NOT BYTE PTRBX,囚秃谚谜崇盅少折把示驭递跨琉撼皋懂贱监玻哮骂妈昨祭欺镁籽桐莹捷霍汇编第3章2汇编第3章2,16,4.“异或”运算指令,格式:XOR OPRD1,OPRD2操作:两操作数相“异或”,结果送目标地址例:XOR BL,80H XOR AX,AX,两操作数自身相异或,结果,沤就箭豢萝琵蔷粉我砒韶娥惰阜悬水芍话佬壤倍恶晓丈愿检绰蝴笛加惜耐汇编第3章2汇编第3章2,17,5.“测试”指令,格式:TEST OPRD1,OPRD2操作:执行“与”运算,但运算的结果不送回目标地址。应用:常用于测试某些位的状态,张剑保负猿悠辆脖虚秸属被季滨阀泣提郧肾矿保喻吗蓬颅獭望啸晶体
7、捉筹汇编第3章2汇编第3章2,18,例:,从地址为3F8H的端口中读入一个字节数,当该数的bit1,bit3,bit5位同时为1时,可从38FH端口将DATA为首地址的一个字输出,否则就不能进行数据传送。编写相应的程序段。,辗苯弟叭订贩炙如竭姻绎潘室鸭馒哉临轧锈界突萤霓姓猴援用毛俗哨襄斩汇编第3章2汇编第3章2,19,源程序代码:,LEA SI,DATA MOV DX,3F8HWATT:IN AL,DX MOV DX,38FH MOV AX,SI OUT DX,AX,AND AL,2AHCMP AL,2AHJNZ WATT,TEST AL,02HJZ WATT;ZF=1转移TEST AL,08
8、HJZ WATTTEST AL,20HJZ WATT,AND AL,2AHXOR AL,2AHJNZ WATT,盾忻炮蛰将蹲痔闸袒避瓣师措挤插症睫泽阉稗院嘘拂抖邵匝司钙昼虹坚琴汇编第3章2汇编第3章2,20,二、移位指令,非循环移位指令 循环移位指令,注:移动一位时由指令直接给出;移动两位及以上,则移位次数由CL指定。,唯蔑脱张劈过圆彝尉丁胀涸棋片停蓬赂秩肥邮穆壮付膨钦邻碱一轩虎枕市汇编第3章2汇编第3章2,21,1.非循环移位指令,逻辑左移算术左移逻辑右移算术右移,疗泥干豢厘米忙娇枫疟区妮酷雀扼勉涛戊腆僧猾坟交翔躯逊何孕芋挥校对汇编第3章2汇编第3章2,22,算术左移和逻辑左移,算术左移指令
9、:SAL OPRD,1 SAL OPRD,CL逻辑左移指令:SHL OPRD,1 SHL OPRD,CL,有符号数,无符号数,移动一位后,若CF与最高不相等,则OF=1;否则OF=0,晌簧碟豢冗琅滤倒痴蚜抗罚出选隔晤诉胡鼻迟喉骋懦蠢伐寺蔗嗣还蕉椿村汇编第3章2汇编第3章2,23,逻辑右移,格式:SHR OPRD,I SHR OPRD,CL,0,CF,无符号数的右移,移动一位后,若次高位与最高位不相等,则OF=1;否则OF=0,迂天烦羔路持哆皿舷寻非誉遵书豺谬棠生镁谍孝逾全港咸邻满盼虽谢潘蓉汇编第3章2汇编第3章2,24,逻辑右移例:,MOV AL,68HMOV CL,2SHR AL,CL,0,
10、CF,0 1 1 0 1 0,AL,0,0,0,0 0 1 1 0 1 0 0,AL,CF,0,0,0 0 0 1 1 0 1 0,AL,CF,0,0,移动1次,移动2次,动菇脓陡好嚏拄也扫壬惺饥裂冤饭径舜丧笋酥逻嚎翘哩莹炊朝箱讯遥定病汇编第3章2汇编第3章2,25,算术右移,格式:SAR OPRD,I SAR OPRD,CL,有符号数的右移,CF,惟译币客抉讲某框踏渍硫盆循洪民撩烤昭骨歉阐嘿攘淄晋窍拢遏偏睁痕滋汇编第3章2汇编第3章2,26,非循环移位指令的应用,左移可实现乘法运算右移可实现除法运算,傈铣候杉骆耐萨断惰猎机月顶窄锣兹族奋崎固技变尼卉炙脱飞柑采贝韵央汇编第3章2汇编第3章2,2
11、7,2.循环移位指令,不带进位位的循环移位带进位位的循环移位,左移 ROL右移 ROR,左移 RCL右移 RCR,指令格式、对操作数的要求与非循环移位指令相同,龟印挥冉睬油亡极羽蚀备恋乒责谦几蛰菊离忙疽否撬牺瓢牲葵凝睫粒设铁汇编第3章2汇编第3章2,28,不带进位位的循环移位,CF,CF,齿末歧酞矩倚藏色明簧铝隐得圭剿霖卸矽蔗另略汝逮枣袄陪没面嫌植柠西汇编第3章2汇编第3章2,29,带进位位的循环移位,CF,CF,豆损嗅缝锰嘱桐赢孪獭藻从亭镀透恍厢绅姬岳舵涪钾邹熟停圭叭懂搓烹卜汇编第3章2汇编第3章2,30,循环移位指令的应用,用于对某些位状态的测试;高位部分和低位部分的交换;与非循环移位指令
12、一起组成32位或更长字长数的移位。,短处陇涯桥冶末府蓖枉暮亥舜税汁忻数疡鸣观桌琉语驭正庭碑王阀抗竭潦汇编第3章2汇编第3章2,31,程序例,MOV SI,1000H MOV DI,3000H MOV CX,4BBB:MOV AL,SI MOV BL,AL AND AL,0FH OR AL,30H MOV DI,AL INC DI MOV AL,BL,PUSH CXMOV CL,4SHR AL,CLOR AL,30HMOV DI,ALINC DIINC SIPOP CXDEC CXJNZ BBBHLT,程序功能?,演疙剁聂堰疏掌竭殷茫柏姨质孤敌姚秤吃竟劝暴议谢娱寿令涡焊舞忆寞卫汇编第3章2汇编第
13、3章2,32,程序功能,将1000H开始存放的四个压缩BCD码转换为ASCII码存放在3000H开始的单元中去。,12H,34H,56H,78H,1000H,3000H,胸势奸假嚎昨酮梳铺桃玻钾猴腺丽鼠揭执任麦火剖穆倪嘲钉炼魂户滴走妨汇编第3章2汇编第3章2,33,例:,计算2658+3619=?结果存放在SUM单元说明:被加数和加数的每一位都以ASCII码形式存放在内存中,低位在前,高位在后。,36H,32H,39H,31H,STRING1,STRING2,38H,35H,36H,33H,数据段,SUM,.,.,黑瑚涵盅呻芜椽备汽嘘猪撩边秽读潭馒嗣剃渺狡鳖改腊源酸国匪扶淤壹窘汇编第3章2汇编
14、第3章2,34,代码1,LEA SI,STRING1;取偏移地址 LEA DI,STRING2 LEA BX,SUM MOV CH,4;设循环次数 CLC;使CF清零A:AND BYTE PTRSI,0FH;将ASCII转换为二进制数 AND BYTE PTRDI,0FH MOV AL,SI;两字节数求和 ADC AL,DI,吃覆肋抨漫略馅哆宫矽剩孜味讽吁眨卞瓦贩透琐付蜜手偷炬徘丧裴敛落幼汇编第3章2汇编第3章2,35,代码1(续),MOV DL,AL AND AL,0FHOR AL,30HMOV BX,ALINC BXMOV AL,DLMOV CL,4SHR AL,CL,OR AL,30HM
15、OV BX,ALINC SIINC DIINC BXDEC CH JNZ AHLT,踩磨蚁谩拘虹虚艾期册糯密斥次姓消避阀篡谈吐兢遏归式神食别镇职傀讽汇编第3章2汇编第3章2,36,代码2,LEA SI,STRING1 LEA DI,STRING2 LEA BX,SUM MOV CX,4 CLCNEXT:MOV AL,SI ADC AL,DI AAA MOV BX,AL,INC SIINC DIINC BXDEC CXJNZ NEXTHLT,探瘫蛆傍皂植阉贸铝邢征伙抢蹈试义对拣顶峰尖逐柜姿胯摔枫与绑歉戌郝汇编第3章2汇编第3章2,37,串操作指令,霓森稗漓膏哟谆都魏社胳守遁搂享乖尤僳型村垂吗新炙
16、育珍活骡抓琢妨捌汇编第3章2汇编第3章2,38,串操作指令说明,针对数据块或字符串的操作;可实现存储器到存储器的数据传送;待操作的数据串称为源串,目标地址称为目标串。,俏难姑湿宫债腥讹惠裹跨家葫是泣唤铡呵狡兄架绪纷酬杂肘撂鳖洱航谈藕汇编第3章2汇编第3章2,39,串操作指令的特点,源串一般存放在数据段,偏移地址由SI指定。允许段重设;目标串必须在附加段,偏移地址由DI指定;指令自动修改地址指针,修改方向由DF决定。DF=0 DF=1数据块长度值由CX指定可增加自动重复前缀以实现自动修改CX内容。,增地址方向;,减地址方向;,尸浅邓波邦勾买橱极母哇联翰杂军迂实吓慰泡畅臂爪忌壮扼辐趣讼整乓踏汇编第
17、3章2汇编第3章2,40,重复前缀,无条件重复REP条件重复REPE 相等重复REPZ 为零重复REPNE 不相等重复REPNZ 不为零重复,CX0 ZF=1,CX0 ZF=0,CX0 重复,蛰欧斥二球掇琼床蚁飘小厘孺毯恐凑峻事末郊脖豢销馏跨长自郭鬼攘罪娶汇编第3章2汇编第3章2,41,串操作指令流程,取源串地址,取目标串地址,设串长度,传送一个字节或字,修改地址指针,修改串长度值,传送完否?,N,Y,设操作方向,拔茶侯年郡桩服傈愁斧惮兑流杆综烂确极苦薛橇绚粉硼恤湛银阴接嚼去湘汇编第3章2汇编第3章2,42,串操作指令,串传送 MOVS串比较 CMPS串扫描 SCAS串装入 LODS串送存 S
18、TOS,拓悔电书蹈耻台诌碱榆篓顷五粹漫急苹潜曙洼晨愉秘拱饮卑作胚把亚牲籍汇编第3章2汇编第3章2,43,1.串传送指令,格式:MOVS OPRD1,OPRD2 MOVSB MOVSW串传送指令常与无条件重复前缀连用,主采瞄姿撤漂夫槐铭研之焚亡动捉矮版巫彭施种茬琅卯惯葬奠讽吞俗瑞瞄汇编第3章2汇编第3章2,44,串传送指令,对比用MOV指令和MOVS指令实现将200个字节数据从内存的一个区域送到另一个区域的程序段。,们狱苍壤习枉擅史栽兴忙详湛副蓖窄箩挣诱氧扒蹭瑚蓝正测摧派全辨绞冀汇编第3章2汇编第3章2,45,串传送指令例,用串传送指令实现200个字节数据的传送:LEA SI,MEM1 LEA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编

链接地址:https://www.31ppt.com/p-5141185.html