大二汇编语句语法课件《其他类型指令》.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《大二汇编语句语法课件《其他类型指令》.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 其他类型指令 大二 汇编 语句 语法 课件 其他 类型 指令
- 资源描述:
-
1、l 串的基本概念串的基本概念 顺序存放在内存中的一组数据,称为串顺序存放在内存中的一组数据,称为串。用串的首(末)地址、元素类型、串的长度表示。用串的首(末)地址、元素类型、串的长度表示。1234:0000stringDS:BXA B C D E、Y Z1122331a2b3c4d3.3.4 串处理指令串处理指令 MOVS 串传送指令串传送指令 STOS 存入串指令存入串指令 LODS从串取指令从串取指令 CMPS串比较指令串比较指令 SCAS串扫描指令串扫描指令 INS串输入指令串输入指令 OUTS串输出指令串输出指令配合使用的前缀有:配合使用的前缀有:REP 重复重复 REPE/REPZ
2、相等相等/为零则重复为零则重复 REPNE/REPNZ 不相等不相等/不为零则重复不为零则重复1、与、与REP配合工作的配合工作的 MOVS/STOS/LODS/INS/OUTS 格式:格式:REP MOVS/STOS/LODS/INS/OUTS 执行操作执行操作:(1)如如(CX)=0则退出则退出REP,否则转,否则转(2)(2)(CX)(CX)-1 (3)执行执行MOVS/STOS/LODS/INS/OUTS(4)重复重复(1)(3)MOVS 串传送指令串传送指令MOVS DST,SRC 须指明传送的是字节、字、双字须指明传送的是字节、字、双字MOVSB(字节)(字节)MOVSW(字)(字
3、)MOVSD(双字)(双字)例:例:MOVS ES:BYTE PTR DI,DS:SI 执行操作:执行操作:(1)(DI)(SI)(2)字节操作:字节操作:(SI)(SI)1,(DI)(DI)1 字操作:字操作:(SI)(SI)2,(DI)(DI)2 双字操作:双字操作:(SI)(SI)4,(DI)(DI)4 方向标志方向标志DF=0时用时用+,DF=1时用时用-。执行执行REP MOVS之前,应先做好:之前,应先做好:(1)首地址(末地址)首地址(末地址)SI(2)目的串首地址(末地址)目的串首地址(末地址)DI(3 3)串长度)串长度 CX(4 4)建立方向标志)建立方向标志(CLD使使D
4、F=0,STD使使DF=1)注意注意:源串默认在数据段中,目的串必须在附加段中,但源串源串默认在数据段中,目的串必须在附加段中,但源串可以使用段跨越前缀来修改可以使用段跨越前缀来修改(SI)低地址低地址高地址高地址数据段数据段附加段附加段(SI)(DI)(DI)DF=0向前向前DF=1向后向后例例datarea segmentmess1 db personal_computerdatarea endsextra segmentmess2 db 17 dup(?)extra endscode segmentlea si,mess1 lea di,mess2 mov cx,17 cld rep m
5、ovsb code endslea si,mess1+16 lea di,mess2+16 mov cx,17 std rep movsbSTOS存入串指令存入串指令STOS DSTSTOSB (字节)(字节)STOSW(字)(字)STOSD (双字)(双字)执行操作:字节操作:执行操作:字节操作:(DI)(AL),(DI)(DI)1 字操作:字操作:(DI)(AX),(DI)(DI)2 双字操作:双字操作:(EDI)(EAX),(EDI)(EDI)4 例:把附加段中的例:把附加段中的5个字节缓冲区置为个字节缓冲区置为20Hlea di,mess2mov al,20Hmov cx,5cldre
6、p stosbLODS从串取指令从串取指令LODS SRCLODSB(字节)(字节)LODSW(字)(字)LODSD(双字)(双字)执行操作:执行操作:字节操作:字节操作:(AL)(SI),(SI)(SI)1 字操作:字操作:(AX)(SI),(SI)(SI)2 双字操作:双字操作:(EAX)(ESI),(ESI)(ESI)2注意注意:*LODS指令一般不与指令一般不与REP联用联用 *源串源串默认默认在数据段中,但源串允许使在数据段中,但源串允许使 用段跨越前缀来修改。用段跨越前缀来修改。*不影响条件标志位不影响条件标志位INS串输入指令串输入指令INSDST,DXINSB(字节)(字节)I
7、NSW(字)(字)INSD (双字)(双字)执行操作:执行操作:字节操作:字节操作:(DI)(DX),(DI)(DI)1 字操作:字操作:(DI)(DX),(DI)(DI)2 双字操作:双字操作:(DI)(DX),(DI)(DI)4OUTS串输出指令串输出指令OUTSDST,DXOUTS B(字节)(字节)OUTSW(字)(字)OUTSD (双字)(双字)执行操作:执行操作:字节操作:字节操作:(DX)(SI),(SI)(SI)1 字操作:字操作:(DX)(SI),(SI)(SI)2 双字操作:双字操作:(DX)(SI),(SI)(SI)4与与REPE/REPZ和和REPNE/REPNZ配合工
8、作的配合工作的CMPS 和和SCAS 格式:格式:REPE/REPZ(REPNE/REPNZ)CMPS/SCAS 执行操作执行操作:(1)如如(CX)=0或或ZF=0(ZF=1)则退出,则退出,否则转否则转(2)(2)(CX)(CX)-1 (3)执行执行CMPS/SCAS (4)重复重复(1)(3)CMPS串比较指令串比较指令 CMPS SRC,DSTCMPSB(字节)(字节)CMPSW(字)(字)CMPSD(双字)(双字)执行操作:执行操作:(1)(SI)-(DI)根据比较结果设置条件标志位:相等根据比较结果设置条件标志位:相等 ZF=1 不等不等 ZF=0 (2)字节操作:字节操作:(SI
9、)(SI)1,(DI)(DI)1 字操作:字操作:(SI)(SI)2,(DI)(DI)2 双字操作:双字操作:(SI)(SI)4,(DI)(DI)4SCAS串扫描指令串扫描指令SCAS DSTSCASB(字节)(字节)SCASW(字)(字)SCASD(双字)(双字)执行操作:执行操作:字节操作:字节操作:(AL)-(DI),(DI)(DI)1 字操作:字操作:(AX)-(DI),(DI)(DI)2 双字操作:双字操作:(EAX)-(EDI),(EDI)(EDI)2 CMPS/SCASCMPS/SCAS与与REPE/REPZREPE/REPZ和和REPNE/REPNZREPNE/REPNZ配合用
10、于比较两配合用于比较两个数据串,或从一个字符串中查找一个指定的字符个数据串,或从一个字符串中查找一个指定的字符例例:从一个字符串中查找一个指定的字符从一个字符串中查找一个指定的字符mess db COMPUTERlea di,messmov al,Tmov cx,8cldrepne scasb(DI):相匹配字符的下一个地址相匹配字符的下一个地址(CX):剩下还未比较的字符个数:剩下还未比较的字符个数COMPUTER(di)COMPUTER(di)例例 比较两个字符串,找出它们不相匹配的位置比较两个字符串,找出它们不相匹配的位置 lea si,mess1lea di,mess2mov cx,8
11、cldrepe cmpsb无条件转移指令无条件转移指令 JMP段内段内直接短转移直接短转移 JMP SHORT OPR 执行操作执行操作:(IP)(IP)+8位位移量(位位移量(-128127)例:例:.JMP SHORT HELLO HELLO:MOV AL,33.3.5控制转移指令控制转移指令段内段内直接近转移直接近转移 JMP NEAR PTR OPR 执行操作执行操作:(IP)(IP)+16位位移量位位移量段内段内间接转移间接转移 JMP WORD PTR OPR 执行操作执行操作:(IP)(EA)段间段间直接转移直接转移 JMP FAR PTR OPR 执行操作执行操作:(IP)OP
12、R的段内偏移地址的段内偏移地址 (CS)OPR所在段的段地址所在段的段地址 段间段间间接转移间接转移 JMP DWORD PTR OPR 执行操作执行操作:(IP)(EA)(CS)(EA+2)条件转移指令条件转移指令 条件转移指令条件转移指令根据上一条指令所设置的根据上一条指令所设置的条件码条件码来判断测来判断测试条件,满足测试条件则转移到由试条件,满足测试条件则转移到由指令指定的转向地址指令指定的转向地址去执去执行那里的程序;如果不满足条件则行那里的程序;如果不满足条件则执行下一条指令执行下一条指令。8086:只可以使用只可以使用JMP中的短转移中的短转移,即,即只能使用段内直接只能使用段内
展开阅读全文