(1)指令集的32位扩展

  所有16位指令都可扩展到32位,例如:

   MOV EAX, 1
   MOVSB, MOVSW, MOVSD
   JCXZ, JECXZ

  可使用32位的存储器寻址方式,例如:
   MOV EAX, [EDX]

  (2)使用方式的扩展

  条件转移:位移量可为16位/32位,可在64K/4G全程转移

  IMUL: 单操作数指令 → 双操作数指令 / 三操作数指令,例如:
   IMUL REG, SRC
   IMUL REG, SRC, IMM

  PUSH: 允许使用立即数寻址方式,例如:
   PUSH 36H

  移位指令:移位次数可用8位立即数(1~31)

  (3)新增指令

   MOVSX   带符号扩展传送 
        例: MOVSX  BX, AL
           MOVSX  EAX, DX

   MOVZX   带零扩展传送        
        例: MOVZX  EAX, DX
   
   PUSHA / PUSHAD    所有寄存器进栈
       ↓AX, CX, DX, BX, SP, BP, SI, DI (SP) (SP) - 16
       ↓EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI (ESP) (ESP) - 32

   POPA / POPAD     所有寄存器出栈
       ↑DI, SI, BP, SP, BX, DX, CX, AX (SP) (SP) + 16
       ↑EDI, ESI, EBP, ESP, EBX, EDX, ECX, EAX (ESP) (ESP) + 32

   LFS    指针送寄存器和FS
   LGS    指针送寄存器和GS
   LSS    指针送寄存器和SS
   PUSHFD   标志进栈
   POPFD   标志出栈
   CWDE    字转换为双字 EAX
   CDQ    双字转换为4字 EDX : EAX

   BSWAP   32位寄存器的字节次序变反
        例: BSWAP EAX

   XADD    交换加
        例: XADD  EBX, ECX
 
   CMPXCHG  比较并交换(486)
   CMPXCHG8B 比较并交换8字节(Pentium)

   BT     位测试
        例: BT   AX, 2
    
   BTS    位测试并置1
   BTR    位测试并置0
   BTC    位测试并变反
  
   BSF    正向位扫描
        例:BSF   AX, BX

   BSR    反向位扫描
   SHLD    双精度左移 SHLD DST, REG, CNT
   SHRD    双精度右移 SHRD DST, REG, CNT
         例:SHLD  EBX, ECX, 16

   如指令执行前:(EBX)=12345678H (ECX)=13572468H
   则指令执行后:(EBX)=56781357H (ECX)=13572468H CF=0

   INSB / INSW / INSD 串输入
   OUTSB / OUTSW / OUTSD 串输出