80x86-1 基本指令和寄存器

来源:互联网 发布:appserv是什么软件 编辑:程序博客网 时间:2024/05/21 02:48

对于80x86复制工作有mov指令完成,mov指令格式如下
mov 目的操作数 , 源操作数

  1. 可从源操作数地址把一个字节,字或双字复制到目的操作数地址,存储的源地址中的值不会改变
    2.目的地址必须要求与源地址大小一致
    3.mov指令不会改变任何标志位
    执行一条指令所需的时间长度由时钟周期来衡量。80x86一秒钟有200 000 000个周期,80886不支持32位寄存器。
    32位寄存器:
    EAX   EBX  ECX  EDX   EBP    ESI   EDI   ESP
    16位寄存器:
      AX  BX CX DX  SP  BP  SI  DI
      8位寄存器:
      AL  AH  BL   BH   CL    CH    DL   DH 
    0
    许多看上去合理的组合不一定可用:
    1.源操作数和目的操作数都在存储器中的数据传送
    2.源7为立即数,目的操作数为段寄存器
    3.源操作数和目的操作数都在标志寄存器中的数据传送
    4.操作数长度不一致的数据传送
    5.一次数据传送多个对象
    mov操作实例:
    mov  eax,sourse      ;复制第一个双字
    mov   dest ,eax
    mov  eax, sourse+4    ;复制第二个双字
    mov  dest+4,eax
    mov  eax,sourse+8    ;复制第三个双字
    mov  dest+8,  sourse+8
    *mov+4的地址指的是sourse地址起始后的第四个字节的地址。

xchg指令
xchg需要一个字节两个时钟周期
xchg   eax, ebx
如果不使用该指令,还可以使用如下代码:
mov ecx,  eax   ;交换数据
mov  eax,ebx
mov  ebx,  ecx
mov,xchg不改变任何状态标志位
整数的加法和减法指令
add /sub    目的操作数   源操作数