80x86指令集

上传人:野鹰 文档编号:1404410 上传时间:2017-06-11 格式:XLS 页数:5 大小:54.50KB
返回 下载 相关 举报
80x86指令集_第1页
第1页 / 共5页
80x86指令集_第2页
第2页 / 共5页
80x86指令集_第3页
第3页 / 共5页
80x86指令集_第4页
第4页 / 共5页
80x86指令集_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《80x86指令集》由会员分享,可在线阅读,更多相关《80x86指令集(5页珍藏版)》请在金锄头文库上搜索。

1、AX 16 位累加器 方向控制位 PUSHA 所有寄存器进栈AL AX 的低 8 位 中断允许控制位 POPA 所有寄存器出栈AH AX 的高 8 位 陷井控制位 输入字节串 / 字串BX 基址寄存器 溢出标志位 OUTS 输出字节串 / 字串CX 16 位计数器 符号标志位 ENTER 进入过程CL 8 位计数器 零标志位 LEAVE 离开过程DX 16 位数据寄存器 辅助标志位 BOUND 检测超出范围值SP 堆栈指针 校验标志位 IGDT 装入全局描述符表寄存器BP 基址指针 进位标志位 SGDT 存放全局描述符表寄存器SI 源变址寄存器 I/O 特权值 LIDT 装入中断描述符表寄存器

2、DI 目的变址寄存器 嵌套任务标志 SIDT 存放中断描述符表寄存器恢复标志 LLDT 从寄存器 / 存储器中装入局部描述符寄存器CS 指定代码段 虚拟 86 模式标志 SLDT 把同部描述子表寄存器放入寄存器 / 存储器SS 指定堆栈段 对准检查标志 LTR 从寄存器 / 存储器中装入任务寄存器虚拟中断标志 STR 把任务寄存器存放到寄存器 / 存储器虚拟中断挂起标志 LMSW 从寄存器 / 存储器装入机器状态字识别标志 SMSW 把机器状态字存入到寄存器 / 存储器MOV 数据传送指令 LSL 从寄存器 / 存储器装入段限PUSH 入栈指令 ADD 加法运算指令 LAR 从寄存器 / 存储

3、器装入访问权POP 出栈指令 ADC 带进位加法运算指令 ARPL 从寄存器 / 存储器中调整已请求的特权书XCHG 交换指令 INC 增 1 指令 VERR 对寄存器 / 存储器读进行验证XLAT 换码指令 AAA 未组合 BCD 码加法调整指令 VERW 对寄存器 / 存储器写进行验证IN 输入指令 DAA 十进制加法调整指令OUT 输出指令 SUB 减法运算指令LEA 有效地址传送指令 SBB 带借位减法运算指令 BOUND 数组边界检查LDS、LES 地址指针传送指令 DEC 减 1 指令 ENTER 为进入程序建立的参数块NEG 求补指令 LEAVE 离开程序CMP 比较指令 SET

4、CC 按条件置字节AAS 未组合十进制减法调整指令DAS 组合十进制减法调整指令 CLTS 任务切换标志置 0MUL 乘法运算指令 SGDT 存放全局描述符表IMUL 带符号乘法运算指令 SIDT 存放中断描述符表AAM 未组合十进制乘法调整指令 STR 存放任务寄存器DIV 除法运算指令 SLDT 存放局部描述符表IDIV 带符号除法运算指令 LGDT 装入全局描述符表NOT 非运算 AAD 未组合十进制除法调整指令 LIDT 装入中断描述符表AND 与运算 CBW 字节转换为字指令 LTR 装入任务寄存器OR 或运算 CWD 字转换为双字指令 LLDT 装入局部描述符表XOR 异或运算 A

5、RPL 调整请求特权级TEST 测试指令 串传送指令 LAR 装入存取权字节串/字串传送指令,不带操作数 LSL 装入段界限SAL/SHL 算术左移/逻辑左移 串比较指令 VERR/VERW 查证段能否读写SAR/SHR 算术右移/逻辑右移 字节串/字串比较,无操作数 LMSW 装入机器状态字ROL/ROR 左循环移位/右循环移位 取串指令 SMSW 存放机器状态字RCL/RCR 带进位的 左/右 循环移位 字节/字操作,无操作数扫描串元素指令 BT 位测试JMP 无条件转移指令 扫描串中字节/字元素,无操作数 BTS 位测试并置“ 1”CALL 无条件调用指令 存储字节或字串指令 BTR 位

6、测试并复位RET 无条件返回指令 存储字节串/字串,无操作数 BTC 位测试并求补JC CF=1 (有进位 / 借位 )时转移 REP 串传送/比较/存储/扫描指令的前缀 BSF 向前位扫描JNC CF=0 (无进位 / 借位 )时转移 BSR 向后位扫描JE / JZ ZF=1 (等于零 / 相等 )时转移JNE / JNZ ZF=0 (不等于零 /不相等 )时转移 REPNE / REPNZ 串比较/串扫描指令前缀使重复执行 LFS 指针装入 F 段寄存器JS SF=1 符号位为 1(负数)时转移 LGS 指针装入 G 段寄存器JNS SF=0 符号位为 0(正数)时转移 CLC 清进位,

7、 CF=0 LSS 指针装入 S(堆栈)段寄存器JO OF=1 有溢出时转移 CMC 进位取反 LXA 装入有效地址JNO OF=0 无溢出时转移 STC 置 CF=1 LDS 装入 D 段寄存器JP / JPE PF=1 奇偶位为 1 / 偶时转移 CLD 置 DF=0 LES 装入 E 段寄存器JNP / JPO PF=0 奇偶位为 0 / 奇时转移 STD 置 DF=1CLI 置 IF=0 PUSHFD EFLAGS 进栈STI 置 IF=1 POPFD EFLAGS 出栈处理器暂停处理器等待 BSWAP 在 32 位寄存器内交换字节顺序处理器脱离 XADD 执行原子交换并把它加以存储器

8、操作数上,保留原值总线封锁 CMPXCHG 用以存储器为基础的操作数执行原子比较和有条件的交换空操作指令 INVD 使整个指令数据 Cache 无效WBINVD 使数据 Cache 无效,通知二级 Cache,写回到脏 Cache行INVLPG 使 TLB 中的符号无效算术类指令, 8 字节比较后交换读模型专用寄存器写模型专用寄存器读时间标记计数器由系统管理方式返回环绕加法 字节,字,双字 PAND 按位 AND饱和带符号加法 字节,字 PANDN 按位 AND NOT饱和无符号加法 字节,字 POR 按位 OR环绕减法 字节,字,双字 PXOR 按位 XOR饱和带符号减法 字节,字 饱和无符

9、号减法 字节,字 字高位紧缩乘法字低位紧缩乘法字紧缩乘法并累加结果INTO 溢出中断 相等紧缩比较 字节,字,双字 IRET 中断返回 大小紧缩比较 字节,字,双字 MOVD, Q 数据转移指令移入或移出 MMX寄存器 双字,四字 EMMS 浮点和 MMX状态管理指令清除 MMX状态JG / JNLE( SF) XOR( OF) =1且ZF=0( SF) XOR( OF) =1或ZF=0DS、ESFS、GS 均可指定当前数据段数据传送指令PUSHF 将 16 位标志寄存器内容压入堆栈JGE / JNLJL / JNGEJLE / JNGSAHFPOPF 将当前栈顶内容弹出至 标志寄存器NTRF

10、PMULLWPMADDWD将 AH 寄存器内容送标志寄存器低 8 位将标志寄存器低8 位内容送 AH高于 等于 / 不低于时转移低于 / 不高于且不等于时转移JB / JNAECF=1且 ZF=0JBE / JNACF=1或 ZF=1ZPAFPFCFIOPLLAHF以下四种用于无符号数的条件转移LOOP 循环指令LOOPZ(或 LOOPE) ZF=1循环至目标操作数LOOPZ(或 LOOPE) ZF=0循环至目标操作数JCXZ 若 CX=0则此指令控制转移列目标操作数( SF) XOR( OF) =0且ZF=0( SF) XOR( OF) =0或ZF=1低于等于 / 不高于时转移高于 / 不等

11、于且不低于时转移JA / JNBECF=0且 ZF=0RDTSCPentium 扩展的指令CMPXCHG8BRDMSR移位运算指令WRMSRPentium 扩展指令以下四种用于有符号数的条件转移JAE / JNBCF=0或 ZF=1RSMPSUBSB, WPentium 扩展指令PADDB, W, DPADDSB, WSF减法指令PMULHWDFIFTF加法指令VIFVIPIDVMAC串传送/扫描指令的前缀使紧随其后的指令重复执行STOSSTOSB / STOSW重复前缀REPE / REPZINT n 启动由类型码 n所规定的中断服务程序PADDUSB, WPSUBB, W, DPSUBUS

12、B, WSCASB / SCASWSEC程序控制指令标志位算术运算指令OFLODSLODSB / LODSWSCAS通用寄存器INS段寄存器逻辑运算指令NOP乘法指令除法指令MOVSMOVSB / MOVSWCMPS串操作指令LOCK保护指令组位处理指令组数据传送指令组标志处理指令组80486扩展的指令处理器控制指令HLTWAITCMPSB / CMPSW80286扩展的指令80386扩展指令高级语言支持指令组PCMPEQB, W, DPentium 扩展指令Pentium 扩展的指令PACKRSWB 字紧缩为字节PACKSSWB, DW 紧缩字到字节,双字到字依据 MMX寄存器中指定的数量或

13、立即数值的紧缩右移算术操作操作标志PCMPGTB, W, DPUNPCKHBW, WD, DQ 从 MMX寄存器解压(交叉)高阶字节、双字、四字PUNPCKLBW, WD, DQ 从 MMX寄存器解压(交叉)低阶字节、双字、四字PSLLW, D, QPSRLW, D, QPSRAW, D依据 MMX寄存器中指定的数量或立即数值的紧缩左移逻辑操作 字,双字,四字 依据 MMX寄存器中指定的数量或立即数值的紧缩右移逻辑操作 字,双字,四字 OFFSETSEGTYPELENGTHSIZEPTRTHISSHORTHIGH 和 LOWEQU= DBDWDDDFDQDT? 表达式n DUPSEGMENT

14、和 ENDSASSUME 语句PAGE 一般为程序的第一语句,它指定汇编程序所产生的列表文件每页的行数和每行的字符数TITLE 用来为程序指定一个标题,以后的列表文件会在每页第一行打印这个标题SUBTTL 用于为程序指定一个小标题,打印在每一页的标题之后LALL 用于对所有宏汇编列出完整的文本SALL 用于删除宏指令所产生的所有列表XALL 只将宏扩展中产生目的代码的源程序列表LIST 默认伪指令,对所有源程序进行列表直到遇到 XLIST 伪指令止XLST 对所有源程序不产生列表直到遇到 LIST 伪指令为止模块定义语句PUBLIC 伪指令EXTRN 伪指令记录 RECORD 记录名和字段名必

15、须具有惟一性记录字段名WIDTHMASK结构变量说明与赋初值DATAMAX 和 DATATXN 是结构变量名;结构变量名是任意的,由程序员自行设定;结构变量名与具体的存储空间和数据相联系,在程序中可直接引用。模块定义使用 NAME 和 END 两条伪指令该伪指令定义可供其他模块引用的符号用于声明当前模块使用的哪些标识符在其他模块内定义高级汇编伪指令语句结构和记录结构类型数据定义伪指令结构类型数据是用 STRUC 和 ENDS 括起来的数据定义语句序列,这时数据定义语句中的符号名称为字段名 。 定义结构时,STRUC 和 ENDS 必须成对出现,缺一不可;结构名是为结构起的名字,是任意的;同时在同一结构定义中,字段名不得重名。用来回送为该变量名分配的字节数。 SIZE 应是 TYPE 和 LENGTH 值的乘积格式控制伪指令列表控制伪指令汇编程序将回送变量或标号所在地址的偏移量给该指令。汇编程序将回送变量或标号所在地址的段地址给该指令。用来确定标号或变量的类型,并根据类型作为一个操作数回送给指令。用来回送变量名下定

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号