汇编指令

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。