80X86/Pentium系列CPU对8088/8086的指令是向上兼容的,其新增指令包括两个方面,一是增加了一些新功能指令,二是对一些原有指令增强了其功能。
80286指令系统新增指令如下。
(1)数据传送类指令:PUSH、PUSHA、POPA
PUSH指令的源操作数可以是一个8位或16位的立即数,而且此立即数既可以是符号数,也可以是无符号数。PUSHA、POPA指令将所有通用寄存器的内容压入或弹出堆栈,压入的顺序是AX、CX、DX、BX、SP、BP、SI和DI(SP是执行该指令之前的值),弹出的顺序与压入的顺序相反。
(2)算术运算类指令:IMUL
IMUL是带符号数乘法的增强指令,允许它有2个或3个操作数。
(3)移位和循环移位指令:SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR
8条移位和循环移位指令中的计数值可以是范围在1~31之间的常数。
(4)串输入输出指令:INS、INSB、INSW、OUTS、OUTSB、OUTSW
INS指令从DX寄存器指定的端口输入一个字节或字到由ES:DI指定的存储单元中;OUTS指令将DS:SI指定的存储单元中的一个字节或字输出到DX指定的端口。
(5)高级语言类指令
高级语言类指令包括数组边界检查指令BOUND、设置/撤销堆栈空间指令ENTER/LEAVE。
(6)控制保护类指令
控制保护类指令包括清除任务转移标志指令CLTS、装入/存储全局描述符表指令LGDT/SGDT、装入/存储中断描述符表指令LIDT/SIDT、装入/存储局部描述符表指令LLDT/SLDT。
80386/80486指令系统新增指令如下。
(1)数据传送类指令
数据传送类指令包括扩展传送指令MOVSX/MOVZX、字节交换指令BSWAP。
(2)算术运算类指令(www.daowen.com)
算术运算类指令包括交换加法指令XADD、比较并交换指令CMPXCHG。
(3)逻辑运算与移位指令
逻辑运算与移位指令包括双精度左移/右移指令SHLD/SHRD。
(4)位操作类指令
位操作类指令包括测试与置位指令BT/BTC/BTS/BTR、位扫描指令BSF/BSR。
(5)条件设置指令:SETCC
SET类指令共有16条。根据指令中给出的条件“CC”是否满足来设置OPRD指定的8位寄存器或存储器操作数,条件满足时,将OPRD操作数置为1,条件不满足时置为0。
(6)Cache管理类指令:INVD、WBINVD、INVLPG
Cache管理类指令用于管理CPU内部的8KB Cache。
Pentium指令系统新增指令如下。
①比较并交换指令:CMPXCHG8B。
②CPU标识指令:CPUID。
③读时间标记计数器指令:RDTSC。
④读/写模式专用寄存器指令:RDMSR/WRMSR。
⑤恢复系统管理模式指令:RSM。
⑥寄存器与CR4之间的传送指令:MOV CR4、reg32/MOV reg32、CR4。
⑦读性能监控计数器指令:RDPMC。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。