lodsb指令,将esi指向的地址处的数据取出来赋给AL寄存器,然后esi偏移到下一个地址。
即:
mov al,[esi]
add esi,1
lodsw指令则取得是一个字。
即:
mov ax,[esi]
add esi,2
lodsd指令,取得是双字节。
即:
mov eax,[esi]
add esi,4
stosb指令,将AL寄存器的值取出来赋给edi所指向的地址处。
即:
mov [edi],al
add edi,1
stosw指令取得是一个字。
即:
mov [edi],ax
add edi,2
stosd指令,取得是双字节
mov [edi],eax
add edi,4
pushad: 将所有的32位通用寄存器压入堆栈
pusha:将所有的16位通用寄存器压入堆栈
pushfd:然后将32位标志寄存器EFLAGS压入堆栈
pushf::将的16位标志寄存器EFLAGS压入堆栈
popad:将所有的32位通用寄存器取出堆栈
popa:将所有的16位通用寄存器取出堆栈
popfd:将32位标志寄存器EFLAGS取出堆栈
popf:将16位标志寄存器EFLAGS取出堆栈
cdq:把 eax 的第 31 bit 复制到 EDX 的每一个 bit 上,也就是说,当EAX <80000000, EDX 为00000000;当EAX >= 80000000, EDX 则为FFFFFFFF。