CLD与STD是用来操作方向标志位DF(Direction Flag)。CLD使DF复位,即DF=0,STD使DF置位,即DF=1.用于串操作指令中。
汇编语言中,串操作指令LODSB/LODSW是块装入指令,其具体操作是把SI指向的存储单元读入累加器,其中LODSB是读入AL,LODSW是读入AX中,然后SI自动增加或减小1或2位.当方向标志位D=0时,则SI自动增加;D=1时,SI自动减小。
STOS
STOSB
STOSW
STOSD
存储字符串数据(Store String Data)
将累加器内容存储到由ES:E(DI)寻址的内存地址.如果使用STOS,必须指定目的操作数.
STOSB拷贝AL到内存中,STOSW拷贝AX到内存中,STOSD拷贝EAX到内存中.
INTEL指令集中有5组处理字节,字和双字数组的指令,称为基本字符串指令,但它们的用法并不
限于字符数组,LZ所问STOSW,LODSB都是属于这5组(另外3组是:MOVSB,CMPSB,SCASB)
以下代码转载于 罗云彬的《win32汇编》
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 在缓冲区中找出一行数据,处理换行并保存 Unix Text file -> PC Text file_FormatText endp
这个子程序 先把要筛选的字符串放到esi中 把要存储的放到edi中 然后用CLD把 esi edi以后的增长方向都设为加1正方向
然后在用 lodsb 取出esi中的到al中 处理以后把需要的执行 stosw esi加1 然后把AX拷贝到到edi中 从而实现了字符串的处理