【汇编】请教ret指令与lods指令结合使用的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 16:26:53
ret指令可以跟lods指令结合使用。但lods指令是从串中读一个数[si]放到累加寄存器里,如果用ret重复操作,那么累加器是不是只保存最后读取的那个数呢?如果是这样的话,那么“重复”不就变成没意义呢吗?
嗯,lods还是有用的。但如果它跟ret结合使用的话,在执行ret lods后累加器应该只存放最后一个数值吧,之前的数值应该都被最后一个覆盖掉了吧?

有意义啦 它会自动去加地址的
比如说有某个汇编程序员这样写了
MOV AX,[SI]
INC SI
INC SI
这该挨骂了,一定是没有记熟指令,全部共4B,21T。
LODSW
正是为这个目的设计,却只要 1B,16T。
LODSW以后SI会自动加 这样可以依次取串里的数据

确实,在MOVS和STOS两个串指令REP的作用明显,对于REP和LODSW既然存在应该也有用武之地。我去查查指令手册,看看有没有例子。我估摸着如果连读的话意义也不大,看起来LODS也不影响标志位,如此REPZ等指令也排不上用场,估计这个虽然设置了,但也很少用到吧。