下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章指令系统本章知识要点: 本章将以Intel指令系统为背景对指令格式、指令功能进行描述,对8086Pentium指令系统中的常用的一些指令、有选择地分门别类地进行了说明。而且从科学发展的角度,把Intel新增加的指令也适时进行了介绍,从每一条指令的功能和操作,可以进一步地领会到微机硬件是这样进行操作的。本章内容是前面知识的细化、延伸和提高。 本章重点是指令格式、指令的操作。51 指令格式511 指令格式 指令是由许多部分组成的,在构成指令的这几部分中,只有操作码部分是必需存在的。其余各部分则要根据指令操作所涉及的操作数类型、以及操作数存放在何处等因素决定取舍。 任何一条机器指令都是由一组二
2、进制代码构成,通常又被进一步分成操作码部分和地址码部分,一般的指令格式如图所示。 操作码 地址码 808680286是16位的微处理器, 16位的指令格式如图所示。 操作码 MOD-REG-R/M 位移量 立即数 12字节 01字节 01字节 02字节 Pentium(32位)指令的一般格式如图所示; 由图可知,一条指令是由可任选的指令前缀(可以以任何的次序)、一个或两个原操作码字节、有可能要用的地址说明符(由ModR/M字节和按比例变址基地址SIB字节构成)、一个位移量(根据需要)和一个立即操作数数据字段(如果需要的话)等元素组成的。 Pentium的所有指令都是如图所示的指令格式的子集 指
3、令前缀指令段的超前前缀0或1字节地址大小前缀0或1字节操作数大小前缀0或1字节指令前缀0或1字节立即数0,1,2或4字节位移量0,1,2或4字节操作码1或2 字节 Mod R/M 0或1 字节SIB0或1字节 Mod Reg/OPcode R/M 7 6 5 4 3 2 1 0 SS Index Base 7 6 5 4 3 2 1 01指令前缀 指令前缀是置于指令前面的一个或多个字节,它的作用是用来修改指令的操作。下面所列出的这四个指令前缀就是供应用程序使用的。(1)指令前缀: (2)段的超前前缀: (3) 操作数大小前缀:(4)地址大小前缀:2指令中各字段意义(1)操作码字段(2)Mod
4、R/M字段 (3)SIB字段(4)偏移量 (5)立即数 52 指令系统概述 指令是对计算机发出的要计算机执行部件执行某种操作的操作命令,且由计算机直接识别执行。一般说来,一条指令对应着计算机的一种基本操作。 8086Pentium的指令系统分成如下几类 (1) 数据传送指令 (2) 算术运算指令 (3) 基本逻辑运算指令 (4) 控制转移指令 (5) 处理器控制指令 (6) 输入输出指令 (7) 串操作指令 (8) 新增指令 521 数据传送类指令 1通用传送类MOV指令 指令格式: MOV 目的操作数,源操作数 指令功能:把源操作数的内容复制到目的操作数中去。8086Pentium的几个MO
5、V指令都具有同样的功能。都是把源操作数的内容传送(复制)到目的操作数中,但不破坏源操作数的内容。 例如: 从存储器将数据传送到寄存器AX 从寄存器将数据传送到存储器 从段寄存器将数据传送到存储器/寄存器 从存储器/寄存器将数据传送到段寄存器 从一个寄存器将数据传送到另一个寄存器 从存储器/寄存器将数据传送到寄存器 把立即数据传送到寄存器 把立即数据传送到存储器/寄存器2堆栈操作指令 (1)PUSH 把操作数下压入栈 指令格式: PUSH 源操作数 (2) PUSHA把全部16位通用寄存器内容下压 入堆栈 指令格式: PUSHA (无操作数) (3)POP 上托堆栈字至目的寄存器/存储器3 XC
6、HG交换指令 指令格式: XCHG 目的寄存器,源寄存器/存储单元 522 算术运算指令 又可分为加法指令,减法指令,乘法指令,除法指令。 1加法指令 (1) ADD 加法指令 指令格式: ADD 目的操作数,源操作数 指令功能: 两个操作数相加例如: 两寄存器操作数内容相加 寄存器与存储器内容相加 存储器与寄存器内容相加 立即数与寄存器内容相加 立即数与存储器的内容相加(2)A DC 带进位加法指令 指令格式: ADC 目的操作数,源操作数 指令功能: 带进位的两个操作数相加 例: 立即数与寄存器进行带进位相加 立即数与存储单元带进位相加 寄存器与寄存器带进位相加 寄存器与存储器带进位相加
7、存储器与寄存器带进位相加(3) 1NC 增1指令 指令格式: lNC 目的操作数 指令功能: 使寄存器、或存储单元的内容增12 减法指令(1)SUB 减法指令 指令格式: SUB 目的操作数,源操作数指令功能: 完成整数减法 例 寄存器与寄存器之间的减法 立即数减法 寄存器与存储器之间的减法(2)SBB 带借位减法 指令格式: SBB 目的操作数,源操作数指令功能: 完成带借位的整数减(3) DEC 减l指令 指令格式: DEC 目的操作数 指令功能: 从寄存器/存储单元的字节或字或双字数据中减1 3CMP 两操作数比较 指令格式: CMP 目的操作数,源操作数 指令功能: 从目的操作数减去源
8、操作数,但不改变操 作数,其结果要引起标志的变更。4乘法指令(1) MUL 乘法指令(无符号) 指令格式: MUL 源操作数 指令功能: 执行无符号的乘法(AX=AL指定的字节操作数) 执行无符号的乘法(DX-AX =AX指定的字操作数) 执行无符号的乘法(EDX-EAX =EAX指定的双字操作数)例如: 8位乘法指令 16位乘法指令 32位乘法指令5 除法指令 (1)DIV 除法指令 指令格式: 语法 DIV 源操作数(除数) 指令功能: 执行AX寄存器中(无符号)字节数据的除法 执行DX-AX寄存器对中(无符号)字数据的除法 执行EDX-EAX寄存器对中(无符号)双字数据的除法 例如: 8
9、位除法指令 16位除法指令 32位除法指令 6BCD运算调整指令 二进制编码的十进制数叫作BCD数,BCD数通常是以压缩格式形式出现,每个字节存放两位BCD数字。 (1) 压缩的BCD调整指令 DAA加后的十进制调整 指令格式: DAA (无操作数) 指令功能: 加后的十进制调整 DAS减法十进制调整 指令格式: DAS (无操作数) 指令功能: 减后十进制调整(2) 非压缩的BCD调整指令 非压缩的BCD是指ASCII码数,对ASCII码的数据进行算术运算操作有4条指令,它们分别是: AAA(加法后ASCII调整)、 AAS(减法后ASCII调整), AAM(乘法后ASCII调整) AAD(
10、除法前ASCII调整)。 这4条指令均是以寄存器AX作为源操作数或目标操作数。ASCII码的30H39H 之间的这十个数与十进制的09是相对应的。 533 逻辑运算指令 1逻辑指令 (1) NOT 逻辑“非” 指令格式: NOT 目的操作数 指令功能: NOT指令使字节或字或双字中的每一位都取反 (2) AND 逻辑“与” 指令格式: AND 目的操作数,源操作数 指令功能: 两个操作数的逻辑“与”操作 (3) 0R逻辑“或” 指令格式: OR 目的操作数,源操作数 指令功能: 完成逻辑“或”操作 (4)XOR 逻辑“异或” 指令格式: XOR 目的操作数,源操作数 指令功能: 完成逻辑“异或
11、”操作2移位指令 (1)SALSARSHLSHR 移位指令 指令格式: SAL 目的操作数,移位次数指令功能: SAL 算术左移指令 SAR 算术右移指令 SHL 逻辑左移指令 SHR 逻辑右移指令指令操作: SAL或SHL指令命令指定的操作数左移一位。这样就把最高有效位MSB移进CF,把最低有效位LSB置0。 3循环移位指令 (1) ROLRORRCLRCR 循环移位指令 指令格式:RCL 目的操作数,循环移位次数 指令功能: ROL 左环移 ROR 右环移 RCL 经过进位左环移 RCR 经过进位右环移 左环移指令ROL把所有位都左移一个位置,把最高有效位MSB移出环绕一周变成最低有效位L
12、SB。 524 控制转移指令 1无条件转移指令(1) JMP 无条件转移指令 指令格式: JMP (转移的目标地址) 指令功能: 完成一次无条件的转移举例: 段间直接转移 段间间接转移 段内直接转移2条件转移指令(1) J 指令 指令格式: J (测试条件) 指令功能: 若条件满足则短距离转移 指 令 操 作JA 高于则转移JAE 高于或等于则转移JB 低于则转移JBE 低于或等于则转移JC 有进位则转移JE 等于则转移JG 大于则转移JGE 大于或等于则转移JL小于则转移JLE 小于或等于则转移JNA 不高于则转移JNAE 不高于或等于则转移JNB不低于则转移JNBE 不低于或等于则转移JN
13、C 无进位则转移 JNE 不等于则转移 JNG不大于则转移JNGF 不大于或等于则转移JNL 不小于则转移JNLE 不小于或等于则转移JNO不溢出则转移JNP 校验为非偶则转移JNS无符号则转移JNZ 不是零则转移JO溢出则转移JP 校验为非奇则转移JPE校验为偶则转移JPO 校验为奇则转移JS有符号则转移JZ 为零则转移 3CALL 调用一个过程 指令格式: CALL 参数操作数 指令功能: CALL指令把程序流程传递到 被调用的过程4RET 从过程返回 指令格式: RET (无操作数) 指令功能: 返回到NEAR或FAR调用程序5LOOP 循环控制指令 指令格式: LOOP 目的地址 指令
14、功能: 用CX计数器中内容控制循环 LOOP 如果CX内容不为0,则CX-1再转移至目的地址 LOOPE 如果CX0,ZF=1,则CX-1再转移至目的地址 LOOPNE如果CX0,ZF=0, 则CX-1再转移至目的地址 LOOPNZ如果CX0,ZF=0,则CX-l再转移至目的地址 LOOPZ 如果CX0,ZF=1,则CX-1再转移至目的地址6 INT/INTO 中断指令 指令格式: INT 中断类型 指令功能: 产生调用中断过程 525 处理器控制指令 1HLT 暂停指令指令格式: HLT (无操作数)指令功能: 微处理器暂时停止运行 2WAIT 微处理器等待 指令格式: WAIT (无操作数
15、)指令功能: 微处理器等待,检验数值异常的出现 3NOP 空操作 指令格式: NOP (无操作数)指令功能: 实现一次空操作 526 输入输出指令 1IN 输入指令 指令格式: IN 寄存器,端口 指令功能: 从指定的端口输入字节数据或字数据或双字数据 2OUT 输出指令 指令格式: OUT 端口,寄存器 指令功能: 把字节或字或双字发送到用立即数指出的I/O端口527 新增加的指令 由于Intel系列微处理器是带有一点RISC色彩的CISC,其指令系统内拥有几百条指令之多,以上仅仅介绍了用户常用的部分指令,像标志控制指令、结构化语言指令、数字指令、浮点运算指令、段寄存器指令、保护型指令、以及
16、多条杂项指令等,限于篇幅不能一一列出。经典Pentium 新增加的指令 经典Pentium 较之它的前辈80386、80486,又新增加了指令,其中包括3条微处理器专用指令,4条系统控制指令。 CMPXCH8B 8字节比较和交换 CPUID CPU标识 RDTSC 读时间标记计数器 RDMSR 读方式专用寄存器 WRMSR 写方式专用寄存器 RSM 恢复系统管理模式 MOV CR4 与CR4寄存器的传送2 MMX指令 是Intel 最新的一项多媒体增强指令技术。它的指令系统由此而新增加了57条MMX指令,被称之为“多媒体扩展指令系统”。 Pentium MMX使用了一种叫做单指令、多数据SIMD(single-instruction multiple-data)的技术,该技术能够使CPU同时对2个、4个甚至8个数据元素进行计算,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网公司实习生协议
- 欧式酒店罗马柱施工合同
- 照明工程人工费施工合同
- 会计实习生聘用合同
- 企业社会责任绩效
- 糖尿病的健康管理方案设计
- 工程项目合同质量管理情况记录
- 电子产品测试顾问协议
- 工程施工转让合同协议
- 2022年大学工程力学专业大学物理下册期中考试试题B卷-附解析
- 滑雪国职公共理论知识考试题库及答案
- 人教版物理八年级上册第六章质量和密度大单元整体教学设计
- JTGT H21-2011 公路桥梁技术状况评定标准
- 部编版2024年小学五年级上册语文《期中》试卷【含答案】
- 整体租赁底商运营方案
- 2023年苏州城市学院招聘考试真题
- 应用化工技术职业生涯规划
- 警务技能培训计划方案
- 酒店新业态(酒店业发展趋势)课件
- 中华文明的五大突出特性
- 法学生涯发展展示
评论
0/150
提交评论