1.有关数组与字符串的汇编指令
首先字符串指令通常会与rep前缀进行联动,先说rep
rep指令一般会根据ecx的值进行循环,ecx作为计数器,执行一次rep后面的指令ecx的值减1
rep ECX值>0重复
repZ,E ZF=1且ECX>0重复
repNZ,NE ZF=0且ECX>0重复
MOVSB,SD,SW
移动字符串,注意 几个寄存器,esi,edi
首先是esi位置的字符复制到edi的位置 ,esi与edi进行自减(自减方向人为控制,可以理解为遍历),三个指令的不同就是一次复制多少字节的不同
与rep联动达到复制字符串的目的
CMPSB,SW,SD(主要用于比较大小)
比较esi与edi的字符,esi与edi进行自减(自减方向人为控制,可以理解为遍历)
与rep联动,结束有两个条件,要么ECX=0,要么发现不相等的字符
SCASB,SW,SD(主要用于搜索)
把AL/AX/EAX中的值与EDI寻址的一个字节/字/位进行比较,EDI自增或自减
STOSB,SW,SD
把AL/AX/EAX中的值存入EDI寻址的一个字节/字/位,EDI自增或自减,主要用于赋值
LODSB,SW,SD
把esi指向的内存地址加载一个字节或一个字到AL/AX/EAX,ESI自增或自减