条件转移指令表

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
32位通用寄存器←(DRn),n=0~7
读模型专用寄存器
RDMSR
EDX:EAX←(MSR), ECX指定寄存器号00H~13H
写模型专用寄存器
WRMSR
MSR←(EDX:EAX), ECX指定寄存器号00H~13H
装入机器状态字
LMSW源操作数
MSW←(源操作数)
存储机器状态字
SMSW目的操作数
目的操作数←(MSW)
表2.10条件转移指令
指令助记符
转移条件
含义
无符
号数
条件
转移
指令
JC
CF=1
有进位转移(与JB / JNAE重叠)
JNC
CF=0
无进位转移(与JAE / JNB重叠)
JP/JPE
PF=1
奇偶位为1转移
JNP/JPO
PF=0
奇偶位为0转移
JA/JNBELeabharlann Baidu
CF=ZF=0
高于/不低于等于转移
JAE/JNB
CF=0
CF=1
有进位/低于/不高于或等于
SETNC/SETAE/SETNB
CF=0
无进位/高于或等于/不低于
SETO
OF=1
溢出
SETNO
OF=0
无溢出
SETP/SETPE
PF=1
校验为偶
SETNP/SETPO
PF=0
校验为奇
SETS
SF=1
为负数
SETNS
SF=0
为正数
SETA/SETNBE
CF=ZF=0
SETLE/SETNG
ZF=1或SF≠OF
小于或等于/不大于
表2.12标志位操作指令
指令名
指令格式
功能说明
清进位指令
CLC
清进位标志CF,即:CF←0
置进位指令
STC
置进位标志,即:CF←1
进位取反指令
CMC
进位标志取反,即:CF←CF
清方向标志指令
CLD
清方向标志(DF←0),使所有串指令的地址修改为增量
装入GDTR/IDTR
LGDT/LIDT存储器
GDTR/IDTR←(存储器)
存储GDTR/IDTR
SGDT/SIDT存储器
存储器←(GDTR)/(IDTR)
装入LDTR
LLDT源操作数
LDTR←(源操作数)
存储LDTR
SLDT目的操作数
目的操作数←(LDTR)
装入任务寄存器
LTR源操作数
TR←(源操作数)
ZF=0且SF=OF
大于/不小于等于转移
JGE/JNL
SF=OF
大于或等于/不小于转移
JL/JNGE
SF≠OF
小于/不大于等于转移
JLE/JNG
ZF=1或SF≠OF
小于或等于/不大于转移
JCXZ
(CX)=0
CX寄存器为0转移
表2.11按条件设置字节指令
指令助记符
设置条件
指令条件说明
SETC/SETB/SETNAE
WAIT
使CPU处于等待状态,直到有外部中断请求时,退出等待状态,顺序执行下一条指令
ESC
交权给外部处理器
LOCK
LOCK是一条前缀指令,可加于任何指令的前面。用于产生总线封锁信号LOCK,以禁止其他总线主设备访问总线
空操作
NOP
完成一次空操作。仅影响(E)IP寄存器,对标志位无影响。
系统寄存器装入与存储指令
指令名
指令格式
功能
装入CR指令
MOV CRn,32位通用寄存器
CRn←(32位通用寄存器),n=0,2,3,4
存储CR指令
MOV 32位通用寄存器,CRn
32位通用寄存器←(CRn),n=0,2,3,4
装入DR指令
MOV DRn,32位通用寄存器
DRn←(32位通用寄存器),n=0~7
存储DR指令
MOV 32位通用寄存器,DRn
存储任务寄存器
STR目的操作数
目的操作数←(TR)
保护属性检查指令
指令格式
功能
CLTS
清除机器状态字中任务转换标志
LAR目的操作数,源操作数
装入访问权限
LSL目的操作数,源操作数
装入段界限
VERR目的操作数
验证段的可读性
VERW目的操作数
验证段的可写性
APRL目的操作数,源操作数
调整选择符的特权级
其他Pentium指令
若EAX=0H,则:EAX:EBX:ECX:EDX←厂商信息
若EAX=1H,则:EAX:EBX:ECX:EDX←CPU信息
读时间戳计数器
RDTSC
EDX:EAX←时间标记计数器
从SMM返回
RSM
从系统管理方式(SMM)返回原来的实模式或保护方式
置方向标志指令
STD
置方向标志(DF←1),使所有串指令的地址修改为减量
关中断指令
CLI
清中断允许标志(IF←0),禁止CPU响应外部可屏蔽中断
开中断指令
STI
置中断允许标志(IF←1),允许CPU响应外部可屏蔽中断
表2.13外同步和空操作指令
类别
指令格式
功能
外同

HLT
使CPU停止程序执行,进入暂停状态。直到有复位信号或外部中断请求时,退出暂停状态
高于或等于/不低于转移
JB/JNAE
CF=1
低于/不高于等于转移
JBE/JNA
CF=1或ZF=1
低于或等于/不高于转移
JE/JZ
ZF=1
等于/为零转移
JNE/JNZ
ZF=0
不等于/非零转移有符
号数
条件
转移
指令
JO
OF=1
溢出转移
JNO
OF=0
无溢出转移
JS
SF=1
为负数转移
JNS
SF=0
为正数转移
JG/JNLE
指令名
指令格式
指令功能
清除Cache
INVD
将内部和外部Cache的内容作废,外部Cache的数据不写回内存
回写和使Cache无效
WBINVD
先清除内部Cache,然后将外部Cache的内容写回内存,再清除外部Cache
作废TLB项
INVLPG
使TLB中的某一项作废
读CPU标识码
CPUID
根据EAX预先装入值,读CPU标识码和其他信息:
高于/不低于或等于
SETBE/SETNA
CF=1或ZF=1
低于或等于/不高于
SETE/SETZ
ZF=1
等于/为零
SETNE/SETNZ
ZF=0
不等于/非零
SETG/SETNLE
ZF=1或SF=OF
大于/不小于或等于
SETGE/SETNL
SF=OF
大于或等于/不小于
SETL/SETNGE
SF≠OF
小于/不大于或等于
相关文档
最新文档