汇编语言指令集之串处理指令讲解

时间:2022-10-02 00:44:36

串处理指令


串处理指令分类情况如下:

指令类型
MOVS move string 传传送
CMPS compare string 串比较
SCAS scan string 串扫描
LODS load from string 从串取
STOS store in to string 存入串
INS input from port to string 串输入
OUTS output string to port 串输出
REP repeat 重复
REPE/REPZ repeat while equal/zero 相等/为零则重复
REPNE/REPNZ repeat while not equal/zero 不相等/不为零则重复

1.MOVS

格式:
   MOVS  DST,SRC
   MOVSB  (字节)
   MOVSW   (字)
   MOVSD  (双字)(386及其后继机型可用)

用法:
  指令可以把SI指向的数据段中的一个字节、字或双字(DS:SI)传递到由DI指向的附加段中的一个字节、字或双字(ES:DI)中去,不影响条件标志位,并根据DF以及数据格式对SI和DI进行修改。
2.CMPS

格式:
   CMPS  SRC,DST
   CMPSB  (字节)
   CMPSW   (字)
   CMPSD  (双字)(386及其后继机型可用)

用法:
  指令把DS:SI指向的存储单元中的数据与ES:SI指向的存储单元中的数据相减,不保存结果但影响条件标志位,并根据DF的值对SI和DI进行修改。
3.SCAS

格式:
   SCAS     DST
   SCASB  (字节)
   SCASW   (字)
   SCASD  (双字)(386及其后继机型可用)

用法:
  指令把AL、AX或EAX中的数据与ES:DI指向的存储单元中的数据相减,不保存结果但影响条件标志位,并根据DF的值对SI和DI进行修改。
4.LODS

格式:
   LODS     SRC
   LODSB  (字节)
   LODSW   (字)
   LODSD  (双字)(386及其后继机型可用)

用法:
  指令把DS:SI指向的存储单元中的数据送到AL、AX或EAX中,并根据条件标志位DF的值和数据类型来修改SI。
5.STOS

格式:
   STOS     DST
   STOSB  (字节)
   STOSW   (字)
   STOSD  (双字)(386及其后继机型可用)

用法:
  指令把AL、AX和EAX中的内容存入由DS:SI指向的存储单元,并根据DF的值及数据类型修改SI。
6.INS

格式:
   INS  DST,DX
   INSB  (字节)
   INSW   (字)
   INSD  (双字)(386及其后继机型可用)

用法:
  指令把端口在DX寄存器中的I/O空间的数据送到由ES:DI指向的存储单元,并根据DF的值和数据类型修改DI。
7.OUTS

格式:
   OUTS  DX,SRC
   OUTSB  (字节)
   OUTSW   (字)
   OUTSD  (双字)(386及其后继机型可用)

用法:
  指令把由DS:SI指向的存储单元中的数据送到端口号在DX寄存器中的I/O端口中,并根据DF的值和数据类型改变SI。