用户名:  密码:   
您当前的位置:首页 > 程序设计 >  汇编与密码学 > 

Win32专有命令及与X86的区别

上次修改时间: 2017-12-10 16:20:08      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\assembly与反assembly\Win32汇编\      下一页

1. 386下ax,bx,cx,dx从16位变成了32位的eax/ebx/ecx/edx,但cs/ds/es/ss等段寄存器还是16位。
2. cs/ds/es/ss等段寄存器不再用来索引代码段/数据段/栈段等,它们的值指向了这些段的段描述符(64位)表在内存的位置
3. 386新增了48位的GDTR和16位的LDTR两个寄存器,里面的值分别指向全局和局部描述符表。还有IDTR也是48位
4. 386还新增有CR0/CR1/CR2/CR3寄存器,CR3中为当前程序的页目录表所在的那个页的物理地址
 

movzx eax,ax   //将16位的ax扩展到32位的eax,相当于将eax的高16填零
xchg eax,hBmp2  //xchg用以把eax和hBmp2中的值互换,hBmp2中的值放到eax,eax中值放到hBmp2
jge/jle @F   //大于/小于则跳到下面最近的@@处  
pushad/popad //功能是将EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI这8个32位通用寄存器依次压栈/出栈