标志处理指令
CLC、 STC、 CMC、
CLD、STD、
CLI、STI
其余处理机控制与杂项操做指令
NOP、HLT、WAIT、ESC、LOCKpost
CLC CF ← 0
CMC CF ← ¬CF
STC CF ← 1测试
CLD DF ← 0
STD DF ← 1spa
CLI IF ← 0
STI IF ← 1指针
注意: * 只影响本指令指定的标志blog
NOP 无操做 (机器码占一个字节)
HLT 暂停机 (等待一次外中断,以后继续执行程序)
WAIT 等待 (等待外中断,以后仍继续等待)
ESC 换码
LOCK 封锁 (维持总线的锁存信号,直到其后的指令执行完)
get
注意: * 不影响条件标志 it
(1) 指令集的32位扩展
* 全部 16 位指令均可扩展到 32 位
MOV EAX, 1
* 可以使用 32 位的存储器寻址方式
MOV EAX, [EDX]扩展
(2) 使用方式的扩展
* IMUL:单操做数指令 → 双操做数指令 / 三操做数指令
IMUL REG, SRC
* PUSH:容许使用当即数寻址方式
PUSH 36H
* 移位指令:移位次数可用 8 位当即数 (1~31)date
(3) 新增指令
MOVSX 带符号扩展传送
MOVZX 带零扩展传送
PUSHA / PUSHAD 全部寄存器进栈
POPA / POPAD 全部寄存器出栈
LFS / LGS / LSS 指针送寄存器和 FS / GS / SS
PUSHFD 标志进栈
POPFD 标志出栈
CWDE 字转换为双字 EAX
CDQ 双字转换为 4 字 EDX EAX
BSWAP 32 位寄存器的字节次序变反
XADD 交换加
CMPXCHG 比较并交换 (486)
CMPXCHG8B 比较并交换 8 字节(Pentium)A程序
BT 位测试
BTS 位测试并置1
BTR 位测试并置0
BTC 位测试并变反
BSF 正向位扫描
BSR 反向位扫描
SHLD 双精度左移
SHRD 双精度右移
INSB / INSW / INSD 串输入
OUTSB / OUTSW / OUTSD 串输出
条件设置指令
(1) 根据单个条件标志的值把目的字节置 1
SETZ / SETE SETNZ / SETNE
SETS / SETNS SETO / SETNO
SETP / SETPE SETNP / SETPO
SETC / SETB / SETNAE SETNC / SETNB / SETAE
(2) 比较两个无符号数,根据比较结果把目的字节置 1
SETB / SETNAE / SETC SETNB / SETAE / SETNC
SETBE / SETNA SETNBE / SETA
(3) 比较两个带符号数,根据比较结果把目的字节置 1
SETL / SETNGE SETNL / SETGE
SETLE / SETNG SETNLE / SETG
其余处理机控制指令
BOUND 界限指令 ENTER 创建堆栈帧
LEAVE 释放堆栈帧
特权指令