博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单应用程序的设计 -重复前缀
阅读量:5367 次
发布时间:2019-06-15

本文共 1636 字,大约阅读时间需要 5 分钟。

重复前缀

由于串操作指令只能每次对字符串的一个字符进行处理,所以使用了一个循环,以便完成对整个字符串的处理,为了进一步提高效率,8086和8088还提供了重复指令前缀,重复指令前缀可以加载串操作指令指令之前,已达到重复执行其后串操作指令的目的

 

重复前缀REP

REP用作为一个串操作指令的前缀,它重复其后面的串操作指令动作,每一次重复都先判断CX是否为0,如果为0 就结束重复,否则CX的值就减1,重复其后面的串操作指令,所以CX等于0 时,就不执行其后面的字符操作指令

重复前缀REP主要用在传送指令MOVS和STOS之前,值得指出的是REP不用在LODSB和LODSW指令之前

 

【1】重复操作指令REPZ、REPE

REPZ与REPE是一个前缀的两个助记符,下面的介绍REPZ为代表

REPZ用作一个串操作指令的前缀,他重复其后的串操作指令动作,每重复一次,CX的值减少1,重复直到CX为0或者串操作指令使零标志ZF为0,重复结果条件的检查实在重复结果之前进行的

子程序STRCMP功能比较两个字符串是否相同入口参数:DS:SI = 字符串1首地址的段值的偏移                ES:DI = 字符串2首地址的段值的偏移STRCMP  PROCCLDPUSH DIXOR AL,AL;先测量一个字符串的长度MOV CX,0FFFFHNEXT:SCANSBJNZ NEXTNOT CXPOP DIREPZ CMPSBMOV AL,[SI-1]MOV BL,ES:[DI-1]XOR AH,AHMOV BH,AHSUB AX,BXRETSTRCMP ENDP

【2】重复前缀REPNZ、REPNE

REPZ用作一个串操作指令的前缀,他重复其后的串操作指令动作,每重复一次,CX的值减少1,重复直到CX为0或者串操作指令使零标志ZF为1,重复结果条件的检查实在重复结果之前进行的

;子程序名称 STRCHR;功能 判断字符是否属于字符串;入口参数:DS:SI搜索字符串首地址的段值:偏移;STRCHR    PROC                    PUSH BX                    PUSH SI                    CLD                    MOV BL,AL                    TEST SI,1                    JZ STRCHR1                    LODSB                    CMP AL,BL                    JZ STRCHR3                    AND AL,AL                    JZ STRCHR2STRCHR1:LODSW                    CMP AL,BL                    JZ SRTCHR4                    AND AL,AL                    JZ STRCHR2                    CMP AH,BL                    JZ STRCHR3                    AND AH,AH                    JNZ STRCHR1STRCHR2:STC                    JMP SHORT STRCHR5STRCHR3:INC SISTRCHR3:LEA AX,[SI-2]STRCHR5:POP SI                    POP BX                    RETSTRCHR    ENDP

 

 

 

 

转载于:https://www.cnblogs.com/fengdashen/p/3721812.html

你可能感兴趣的文章
angular、jquery、vue 的区别与联系
查看>>
Intellij idea创建javaWeb以及Servlet简单实现
查看>>
代理网站
查看>>
Open multiple excel files in WebBrowser, only the last one gets activated
查看>>
FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
查看>>
最近邻与K近邻算法思想
查看>>
【VS开发】ATL辅助COM组件开发
查看>>
FlatBuffers In Android
查看>>
《演说之禅》I & II 读书笔记
查看>>
thinkphp3.2接入支付宝支付接口(PC端)
查看>>
【转】在Eclipse中安装和使用TFS插件
查看>>
C#中Monitor和Lock以及区别
查看>>
【NOIP2017】奶酪
查看>>
5.6.3.7 localeCompare() 方法
查看>>
Linux下好用的简单实用命令
查看>>
描绘应用程序级的信息
查看>>
php环境搭建脚本
查看>>
php 编译常见错误
查看>>
MES架构
查看>>
hdu 2767(tarjan)
查看>>