通用寄存器:
80386有8个32位通用寄存器。。。 这8个寄存器名位eax ecx edx ebx esp ebp esi edi 器组。ax bx cx dx 这四个带x的寄存器的高半字和低半字可以作为8位的寄存器来独立访问。例如ah , al ,bh 和bl ,ch和cl ,dh和dl 。 为何我们之前做免杀,通过一些编辑工具发现我们写入的确实4000。这就是因为我们是80386cpu采用低地址结尾的。 补充知识:1字=2字节 这里我出一个演示题目让大家做下。。假如 eax=00014000H 执行 mov ax, bx 此时eax=??? 正确答案是00014400H,上面我已经说了。 80386 8个通用的寄存器,这些寄存器的低16位的寄存器就是 ax bx cx ......... 这些低16位寄存器是可以独立访问的。因为这是为了兼容之前8086寄存器等而 设置的。。所以mov ax, bx 4400H 。 mov ax, bx 因为mov是传送指令,传送过去之前的值是将其覆盖的(而不是相加)。 所以最终 eax = 00014400H 不知道大家懂了吗。自己多思考下。 ok 接下来我给大家出几道题目。 小作业: 假如eax之前的值= 0010C510H , ebx之前的值 = 003046E2H (3) add ax, bx 此时 eax=?? ebx = ?? |