汇编小结9:字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhao3132453/article/details/81589234

1、movsb指令将寄存器esi所指向的字节型字符串的内容移动到寄存器edi所指向的位置。这里寄存器的值是递减或递增需要依据方向标志的值来决定

2、cmpsb指令对寄存器的esi和edi所指向的字符串中的一个字节内容进行比较。这里寄存器的值是递减或递增需要依据方向标志的值来决定。

3、不要忘记在cmpsb和movsb指令执行之前,要使用cld指令对方向标志的值进行清零,以实现寄存器esi和edi的递增操作或者使用std对方向标志的值进行设置,以实现寄存器esi和edi的递减操作

4、movsb指令前面的rep前缀让该指令循环执行,循环的次数等于寄存器ecx的值。

5、cmpsb指令前面的repe前缀类似于rep,当寄存器ecx的值为0时,停止指令执行。但是,当寄存器esi和edi所指向的两个字节内容不同时,循环也会停止。而repe前缀类似于rep,不同的是当寄存器esi和edi所指向的两个字节内容相同时,循环停止

6、scansb将对一个字符串进行搜索以查找该字符串是否存在寄存器al中所存储的字符,如果找到,那么寄存器edi所指向的地址比目标字符的实际位置靠后一个字节位置。stosb将al寄存器中内容存储到寄存器edi所指向的字符串中的位置中。而lodsb将把esi所指向的字符串位置中的字符复制到寄存器al中。

猜你喜欢

转载自blog.csdn.net/zhao3132453/article/details/81589234