特征码知识(详细篇)

本文介绍了一系列串操作指令,包括SCASW字符串搜索、LODS取字符串元素、STOS字符串存储等,并详细解释了如何利用REP、REPZ/REPE及REPNZ/REPNE等重复前缀指令来实现字符串的高效处理。
摘要由CSDN通过智能技术生成
第91个---SCASW
字符串搜索指令 SCAS
格式: SCAS OPRD
      SCASB
      SCASW
功能: 把AL(字节串)或AX(字串)的内容与由DI寄存器寻址的目的串中的数据相减,结果置标志位,但不改变任一操作数本身.
      地址指针DI自动调整.
说明:
1. 其中OPRD为目的串符号地址.
2. 本指令影响标志AF、CF、OF、PF、SF、ZF.该指令可查找字符串中的一个关键字,只需在本指令执行前,
   把关键字放在AL(字节)或AX(字串 )中,用重复前缀可在整串中查找.
    
   指令中不使用操作数时,可用指令格式SCASB,SCASW,分别表示字节串或字串搜索指令.

第92个---LODS
取字符串元素指令 LODS
格式: LODS OPRD 其中OPRD为源字符串符号地址.
功能: 把SI寻址的源串的数据字节送AL或数据字送AX中去, 并根据DF的值修改地址指针SI进行自动调整.
说明:
1. 本指令不影响标志位.
2. 当不使用操作数时,可用LODS(字节串)或LODSW(字串)指令.

第93个---STOS
字符串存储指令 STOS
格式: STOS OPRD
功能: 把AL(字节)或AX(字)中的数据存储到DI为目的串地址指针所寻址的存储器单元中去.指针DI将根据DF的值进行自动调整.
说明:
1. 其中OPRD为目的串符号地址.
2. 本指令不影响标志位.当不使用操作数时,可用STOSB或STOSW分别表示字节串或字串的操作.

第94个---REP
重复前缀的说明
格式: REP           ;CX<>0 重复执行字符串指令
      REPZ/REPE     ;CX<>0 且ZF=1重复执行字符串指令
      REPNZ/REPNE   ;CX<>0 且ZF=0重复执行字符串指令
 
功能: 在串操作指令前加上重复前缀,可以对字符串进重复处理.由于加上重复前缀后,对应的指令代码是不同的,所以指令的功能便具有重复处理的功能,重复的次数存放在CX寄存器中.
说明:
1. REP与MOVS或STOS串操作指令相结合使用,完成一组字符的传送或建立一组相同数据的字符串.
2. REPZ/REPE常用与CMPS串操作指令结合使用, 可以完成两组字符串的比较.
3. REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中搜索一个关键字.
4. REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX=1)且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令.

第95个---REPZ
重复前缀的说明
格式: REP           ;CX<>0 重复执行字符串指令
      REPZ/REPE     ;CX<>0 且ZF=1重复执行字符串指令
      REPNZ/REPNE   ;CX<>0 且ZF=0重复执行字符串指令
 
功能: 在串操作指令前加上重复前缀,可以对字符串进重复处理.由于加上重复前缀后,对应的指令代码是不同的,所以指令的功能便具有重复处理的功能,重复的次数存放在CX寄存器中.

说明:
1. REPZ/REPE常用与CMPS串操作指令结合使用, 可以完成两组字符串的比较.
2. REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中搜索一个关键字.
3. REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX=1)且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令.
4. REPNZ/REPNE与SCAS指令结合使用,表示串未结束(CX=1)且当关键字与串元素不相同(ZF=0)时,继续重复执行串搜索指令.

第96个---REPE
重复前缀的说明
格式: REP           ;CX<>0 重复执行字符串指令
      REPZ/REPE     ;CX<>0 且ZF=1重复执行字符串指令
      REPNZ/REPNE   ;CX<>0 且ZF=0重复执行字符串指令
 
功能: 在串操作指令前加上重复前缀,可以对字符串进重复处理.由于加上重复前缀后,对应的指令代码是不同的,所以指令的功能便具有重复处理的功能,重复的次数存放在CX寄存器中
说明:
1. REPZ/REPE常用与CMPS串操作指令结合使用, 可以完成两组字符串的比较.
2. REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中搜索一个关键字.
3. REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX=1)且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令.
4. REPNZ/REPNE与SCAS指令结合使用,表示串未结束(CX=1)且当关键字与串元素不相同(ZF=0)时,继续重复执行串搜索指令.

第97个---REPNZ
重复前缀的说明
格式: REP           ;CX<>0 重复执行字符串指令
      REPZ/REPE     ;CX<>0 且ZF=1重复执行字符串指令
      REPNZ/REPNE   ;CX<>0 且ZF=0重复执行字符串指令
说明:
1. REPZ/REPE常用与CMPS串操作指令结合使用, 可以完成两组字符串的比较.
2. REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中搜索一个关键字.
3. REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX=1)且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令.
4. REPNZ/REPNE与SCAS指令结合使用,表示串未结束(CX=1)且当关键字与串元素不相同(ZF=0)时,继续重复执行串搜索指令.

第98个---REPNE
重复前缀的说明
格式: REP           ;CX<>0 重复执行字符串指令
      REPZ/REPE     ;CX<>0 且ZF=1重复执行字符串指令
      REPNZ/REPNE   ;CX<>0 且ZF=0重复执行字符串指令
说明:
1. REPZ/REPE常用与CMPS串操作指令结合使用, 可以完成两组字符串的比较.
2. REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中搜索一个关键字.
3. REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX=1)且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令.
4. REPNZ/REPNE与SCAS指令结合使用,表示串未结束(CX=1)且当关键字与串元素不相同(ZF=0)时,继续重复执行串搜索指令.

第99个---CLC
处理器控制指令-标志位操作指令
 
格式:
     CLC   ;置CF=0
     STC   ;置CF=1
     CMC   ;置CF=(Not CF)进位标志求反
     CLD   ;置DF=0
     STD   ;置DF=1
     CLI   ;置IF=0,CPU禁止响应外部中断
     STI   ;置IF=1,使CPU允许向应外部中断
 
功能: 完成对标志位的置位、复位等操作.

说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.

第100个---STC
处理器控制指令-标志位操作指令
 
格式:
     CLC   ;置CF=0
     STC   ;置CF=1
     CMC   ;置CF=(Not CF)进位标志求反
     CLD   ;置DF=0
     STD   ;置DF=1
     CLI   ;置IF=0,CPU禁止响应外部中断
     STI   ;置IF=1,使CPU允许向应外部中断
 
功能: 完成对标志位的置位、复位等操作.
说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值