通用数据传送指令
MOV 传送字或字节
MOVSX 先符号扩展,再传送
MOVZX 先零扩展,再传送
PUSH 把字压入堆栈
POP 把字弹出堆栈
PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI 依次压入堆栈
POPA 把DI,SI,BP,SP,BX,DX,CX,AX 依次弹出堆栈
PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI 依次压入堆栈
POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX 依次弹出堆栈
BSWAP 交换32位寄存器里字节的顺序 XCHG 交换字或字节
( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数
( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加
( 结果在第一个操作数里 ) XLAT 字节查表转换
—— BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即 0-FFH); 返回 AL 为查表结果
( [BX+AL]->AL ) 2
输入输出端口传送指令
IN I/O 端口输入
( 语法: IN 累加器, {端口号│DX} ) OUT I/O 端口输出
( 语法: OUT {端口号│DX},累加器 ) 输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时, 其范围是 0-65535
目的地址传送指令
LEA 装入有效地址
例: LEA DX,string ;把偏移地址存到 DX
LDS 传送目标指针,把指针内容装入DS
例: LDS SI,string ;把段地址:偏移地址存到 DS:SI
LES 传送目标指针,把指针内容装入ES
例: LES DI,string ;把段地址:偏移地址存到 ES:DI