第3章 通讯原理.ppt_第1页
第3章 通讯原理.ppt_第2页
第3章 通讯原理.ppt_第3页
第3章 通讯原理.ppt_第4页
第3章 通讯原理.ppt_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第3章指令系统 2 主要内容 指令系统的一般概念对操作数的寻址方式六大类指令的操作原理 操作码的含义指令对操作数的要求指令执行的结果 3 3 1概述 4 了解 指令及指令系统 指令的格式 指令中的操作数类型 指令字长与机器字长 指令的执行时间CISC和RISC指令系统 5 一 指令与指令系统 指令 控制计算机完成某种操作的命令指令系统 处理器所能识别的所有指令的集合指令的兼容性 同一系列机的指令都是兼容的 6 二 指令格式 指令中应包含的信息 运算数据的来源运算结果的去向执行的操作 7 指令格式 操作码 操作数 操作数 执行何种操作 目标操作数 源操作数 参加操作的数据或数据存放的地址 8 指令的组成 操作码说明计算机要执行哪种操作 如传送 运算 移位 跳转等操作 它是指令中不可缺少的组成部分操作数是指令执行的参与者 即各种操作的对象有些指令不需要操作数 通常的指令都有一个或两个操作数 也有个别指令有3个甚至4个操作数 指令由操作码和操作数两部分组成 9 指令的助记符格式 操作数2 常被称为源操作数src 它表示参与指令操作的一个对象操作数1 常被称为目的操作数dest 它不仅可以作为指令操作的一个对象 还可以用来存放指令操作的结果分号后的内容是对指令的解释 操作码操作数1 操作数2 注释 10 指令的操作码和操作数 每种指令的操作码 用一个助记符表示 指令功能的英文缩写 对应着机器指令的一个或多个二进制编码指令中的操作数 可以是一个具体的数值可以是存放数据的寄存器或指明数据在主存位置的存储器地址 11 指令格式 零操作数指令 操作码单操作数指令 操作码操作数双操作数指令 操作码操作数 操作数多操作数指令 三操作数及以上 12 三 指令中的操作数 立即数寄存器存储器 表征参加操作的数据本身 表征数据存放的地址 13 立即数操作数 立即数只能作为源操作数 其本身是参加操作的数据 可以是8位或16位 例 MOVAX 1234HMOVBL 22H立即数无法作为目标操作数立即数可以是无符号或带符号数 其数值应在可取值范围内 14 寄存器操作数 参加运算的数存放在指令给出的寄存器中 可以是16位或8位 例 MOVAX BXMOVDL CH 15 存储器操作数 参加运算的数存放在存储器的某一个或某两个单元中表现形式 立即数或寄存器 16 存储器操作数例 例 MOVAX 1200H MOVAL 1200H 22H 11H 1200H 偏移地址 AHAL 17 四 指令字长与机器字长 指令字长 由操作码的长度 操作数地址长度 操作数个数决定 机器字长 计算机能够直接处理的二进制数的位数 18 五 指令的执行速度 指令的字长影响指令的执行速度 常用指令的执行时间见附录C 1 对不同的操作数 指令执行的时间不同 存储器 快 立即数 寄存器 19 六 CISC和RISC指令系统 CISC指令系统指令的功能强 种类多 高级语言和机器语言间的距离缩小 指令系统复杂 难使用 RISC指令系统指令功能较弱 种类少 格式简单 多数指令在一个计算机周期内完成 对存储器的结构和存取速度要求较高 20 3 2寻址方式 21 寻址方式 寻找操作数所在地址的方法寻找转移地址的方法 本节 22 操作数的寻址方式 指令系统设计了多种操作数的来源寻找操作数的过程就是操作数的寻址寻找操作数的方式叫做 操作数 寻址方式理解操作数的寻址方式是理解指令功能的前提操作数采取哪一种寻址方式一方面 会影响处理器执行指令的速度和效率另一方面 对程序设计也很重要 MOV指令 23 MOV指令的功能 24 一 立即寻址 指令中的源操作数是立即数imm 即源操作数是参加操作的数据本身 紧跟在操作码之后可以是8位数值i8 00H FFH 也可以是16位数值i16 0000H FFFFH 立即数寻址方式常用来给寄存器和存储单元赋值 多以常量形式出现 演示 MOVAX 0102H AX 0102H 25 立即数寻址方式 26 立即寻址 例 MOVAX 1200H 12H 00H AHAL MOV 代码段 27 二 直接寻址 直接寻址方式的操作数偏移地址在指令中直接给出默认的段地址在DS段寄存器 可使用段超越前缀改变用中括号包含偏移地址 表达存储单元的内容 演示 MOVAX 2000H AX DS 2000H MOVAX ES 2000H AX ES 2000H 28 直接寻址方式 29 直接寻址 例 MOVAX 1200H 22H 11H 1200H 偏移地址 数据段 AHAL 30 直接寻址 直接寻址方式下 操作数的段地址默认为数据段 但允许段重设 即由指令定义段 例 MOVAX ES 1200H 31 三 寄存器寻址 参加操作的操作数在CPU的通用寄存器中 例 MOVAX BX AX BX 32 寄存器寻址方式 操作数存放在CPU的内部寄存器reg中 8位寄存器r8 AH AL BH BL CH CL DH DL16位寄存器r16 AX BX CX DX SI DI BP SP4个段寄存器seg CS DS SS ES寄存器名表示其内容 操作数 演示 MOVAX BX AX BX 33 寄存器寻址方式 34 四 寄存器间接寻址 参与操作的操作数存放在内存中 其偏移地址为指令中的寄存器的内容 35 寄存器间接寻址方式 偏移地址存放在基址寄存器BX或变址寄存器SI DI中默认的段地址在DS段寄存器 可使用段超越前缀改变 演示 MOVAX BX AX DS BX 36 间接寻址方式 37 寄存器间接寻址例 例 MOVAX BX 设BX 1200H 22H 11H 1200H 偏移地址 AHAL 1122 数据段 代码段 MOV 38 寄存器间接寻址 由寄存器间接给出操作数的偏移地址 存放偏移地址的寄存器称为间址寄存器 它们是 BX BP SI DI操作数的段地址 数据处于哪个段 取决于选择哪一个间址寄存器 BX SI DIBP 默认在数据段 默认在堆栈段 39 寄存器间接寻址 寄存器间接寻址 基址寻址 间址寄存器为基址寄存器BX BP 变址寻址 间址寄存器为变址寄存器SI DI 40 五 寄存器相对寻址 操作数的偏移地址为寄存器的内容加上一个位移量例 MOVAX BX DATA 设 DS 2000H BX 0220H DATA 05H则 AX 20225H 41 寄存器相对寻址方式 偏移地址是寄存器内容与有符号8位或16位位移量之和 寄存器可以是BX BP或SI DI有效地址 BX BP SI DI 8 16位位移量段地址对应BX SI DI寄存器默认是DS 对应BP寄存器默认是SS 可用段超越前缀改变 演示 MOVAX SI 06H AX DS SI 06H MOVAX 06H SI AX DS SI 06H 42 相对寻址方式 43 六 基址 变址寻址 操作数的偏移地址为一个基址寄存器的内容加上一个变址寄存器的内容 操作数的段地址由选择的基址寄存器决定例 MOVAX SI BX 44 基址变址寻址方式 偏移地址由基址寄存器 BX或BP 的内容加上变址寄存器 SI或DI 的内容构成 有效地址 BX BP SI DI段地址对应BX基址寄存器默认是DS 对应BP基址寄存器默认是SS 可用段超越前缀改变 演示 MOVAX BX SI AX DS BX SI MOVAX BX SI AX DS BX SI 45 基址变址寻址方式 46 七 基址 变址 相对寻址 操作数的偏移地址为一个基址寄存器的内容加上一个变址寄存器的内容 再加上一个位移量 操作数的段地址由选择的基址寄存器决定例 MOVAX BP SI DATA 47 基址 变址 相对寻址 有效地址是基址寄存器 BX BP 变址寄存器 SI DI 与一个8位或16位位移量之和 有效地址 BX BP SI DI 8 16位位移量段地址对应BX基址寄存器默认是DS 对应BP基址寄存器默认是SS 可用段超越前缀改变 演示 MOVAX BX DI 6 AX DS BX DI 6 MOVAX 6 BX DI MOVAX 6 BX DI 48 相对基址变址寻址方式 49 八 隐含寻址 指令隐含了的一个或两个操作数的地址 即操作数在默认的地址中例 MULBL指令的执行 AL BL AX 50 3 38086指令系统 51 掌握 指令码的含义指令对操作数的要求指令的对标志位的影响指令的功能 52 8086指令系统 从功能上包括六大类 数据传送算术运算逻辑运算和移位串操作程序控制处理器控制 53 数据传送指令 通用数据传送输入输出地址传送标志位操作 54 一 通用数据传送 一般数据传送指令堆栈操作指令交换指令查表转换指令字位扩展指令 特点 该类指令的执行对标志位不产生影响 55 1 一般数据传送指令 一般数据传送指令MOV格式 MOVdest src操作 src例 MOVAL BL dest 56 一般数据传送指令 注 两操作数字长必须相同 两操作数不允许同时为存储器操作数 两操作数不允许同时为段寄存器 在源操作数是立即数时 目标操作数不能是段寄存器 IP和CS不作为目标操作数 FLAGS一般也不作为操作数在指令中出现 57 一般数据传送指令 判断下列指令的正确性 MOVAL BXMOVAX SI 05HMOV BX BP BXMOVDS 1000HMOVDX 09HMOV 1200 SI 58 一般数据传送指令应用例 将 的ASCII码2AH送入内存1000H开始的100个单元中 MOVDI 1000HMOVCX 64HMOVAL 2AHAGAIN MOV DI ALINCDI DI 1DECCX CX 1JNZAGAIN CX 0则继续HLT 59 上段程序在代码段中的存放形式 設CS 109EH IP 0100H 则各条指令存放地址如下 CS IP机器指令汇编指令109E 0100B80010MOVDI 1000H109E 0103 MOVCX 64H109E 0105 MOVAL 2AH109E 0107 MOV DI AL109E 0109INCDI109E 010ADECCX109E 010BJNZ0107H109E 010DHLT 60 数据段中的分布 送上2AH后数据段中相应存储单元的内容改变如下 DS 10002A2A2A2A2A2A2A2A 2A2A2A2A2A2A2A2ADS 10102A2A2A2A2A2A2A2A 2A2A2A2A2A2A2A2ADS 10202A2A2A2A2A2A2A2A 2A2A2A2A2A2A2A2ADS 10302A2A2A2A2A2A2A2A 2A2A2A2A2A2A2A2ADS 10402A2A2A2A2A2A2A2A 2A2A2A2A2A2A2A2ADS 10502A2A2A2A2A2A2A2A 2A2A2A2A2A2A2A2ADS 10602A2A2A2A000000000000000000000000 偏移地址 DI 61 2 堆栈操作指令 掌握 有关堆栈的概念栈顶 栈首 栈底堆栈指令的操作原理 执行过程 执行结果 62 堆栈操作的原则 先进后出以字为单位 63 堆栈操作指令 压栈指令PUSH格式 PUSHSRC出栈指令POP格式 POPDEST 64 压栈指令PUSH 指令执行过程 SP SP 2 SP 1 操作数高字节 SP 2 操作数低字节 SP 堆栈段 SP 高8位 低8位 65 压栈指令的操作 设AX 1234H SP 1200H执行PUSHAX指令后堆栈区的状态 1200H 堆栈段 SP 2 11FEH 12H 34H 1200H 堆栈段 12H34H AX 入栈后 入栈前 66 出栈指令POP 指令执行过程 SPSP 1SP SP 2 操作数低字节 操作数高字节 SP 堆栈段 SP 高8位 低8位 67 出栈指令的操作 执行POPAX 12H 34H 11FEH 堆栈段 代码段 PUSH 1234 AX SP 2 1200H 出栈后 出栈前 68 堆栈操作指令说明 指令的操作数必须是16位的 操作数可以是寄存器或存储器两单元 但不能是立即数 不能从栈顶弹出一个字给CS PUSH和POP指令在程序中一般成对出现 PUSH指令的操作方向是从高地址向低地址 而POP指令的操作正好相反 69 堆栈操作指令例 PUSHAXPUSHBXPUSHWORDPTR BX POPWORDPTR BX POPAXPOPBX 如此 会使AX和BX的内容互换 70 3 交换指令 格式 XCHGREG MEM REG注 两操作数必须有一个是寄存器操作数不允许使用段寄存器 例 XCHGAX BXXCHG 2000 CL 71 4 查表指令 格式 XLAT说明 用BX的内容代表表格首地址 AL内容为表内位移量 BX AL得到要查找元素的偏移地址操作 将BX AL所指单元的内容送AL 72 查表指令例 数据段中存放有一张ASCII码转换表 设首地址为2000H 现欲查出表中第11个代码的ASCII码 30 31 32 39 41 42 45 46 2000H 0 2000H 11 0 1 2 9 A B E F 73 查表指令例 可用如下指令实现 MOVBX 2000H BX 表首地址MOVAL 0BH AL 序号XALT 查表转换执行后得到 AL 42H 74 5 字位扩展指令 将符号数的符号位扩展到高位 指令为零操作数指令 采用隐含寻址 隐含的操作数为AX及AX DX无符号数的扩展规则为在高位补0 75 字节到字的扩展指令 格式 CBW操作 将AL内容扩展到AX规则 若最高位 1 则执行后AH FFH若最高位 0 则执行后AH 00H 76 字到双字的扩展指令 格式 CWD操作 将AX内容扩展到DXAX规则 若最高位 1 则执行后DX FFFFH若最高位 0 则执行后DX 0000H 77 字位扩展指令例 判断以下指令执行结果 MOVAL 44HCBWMOVAX 0AFDEHCWDMOVAL 86HCBW 78 二 输入输出指令 掌握 指令的格式及操作指令的两种寻址方式指令对操作数的要求 79 输入输出指令 专门面向I O端口操作的指令指令格式 输入指令 INacc PORT输出指令 OUTPORT acc 端口地址 80 指令寻址方式 直接寻址直接给出8位端口地址 可寻址256个端口间接寻址16位端口地址由DX指定 可寻址64K个端口 81 I O指令例 INAX 80HMOVDX 2400HINAL DXOUTDX AXOUT35H ALOUTAL 35H 82 三 地址传送指令 取偏移地址指令LEA LDS指令 LES指令 83 取偏移地址指令LEA 操作 将变量的16位偏移地址取出送目标寄存器格式 LEAREG MEM指令要求 源操作数必须是一个存储器操作数 目标操作数通常是间址寄存器 84 LEA指令 比较下列指令 MOVSI DATA1LEASI DATA1MOVBX BX LEABX BX DATA1 符号地址 12H 34H 1100H 88H 77H BX 1100H 85 LEA指令在程序中的应用 将数据段中首地址为MEM1的50个字节的数据传送到同一逻辑段首地址为MEM2的区域存放 编写相应的程序段 86 LEA指令在程序中的应用 开始 取源地址 取目标地址 送数据块长度到CL 传送一个字节 修改地址指针 修改计数值 计数值 0 结束 N Y 87 LEA指令在程序中的应用 LEASI MEM1LEADI MEM2MOVCL 50NEXT MOVAL SI MOV DI ALINCSIINCDIDECCLJNZNEXTHLT 88 四 标志位操作指令 LAHFSAHFPUSHFPOPF 隐含操作数AH 隐含操作数FLAGS 89 1 LAHF SAHF 指令格式 LAHF操作 将FLAGS的低8位装入AH CF PF AF ZF CF AH FLAGS D15 D0 D7 D0 SAHF 执行与LAHF相反的操作 90 2 PUSHF POPF 针对FLAGS的堆栈操作指令将标志寄存器压栈或从堆栈弹出 91 算术运算类指令 92 算术运算类指令 加法运算指令减法运算指令乘法指令除法指令 算术运算指令的执行大多对状态标志位会产生影响 93 一 加法指令 普通加法指令ADD带进位位的加法指令ADC加1指令INC 加法指令对操作数的要求与MOV指令相同 94 1 ADD指令 格式 ADDOPRD1 OPRD2操作 OPRD1 OPRD2 ADD指令的执行对全部6个状态标志位都产生影响 OPRD1 95 ADD指令例 MOVAL 78HADDAL 99H指令执行后6个状态标志位的状态 96 ADD指令例 01111000 1001100100010001 1 标志位状态 CF SF AF ZF PF OF 1 0 1 0 1 0 97 2 ADC指令 指令格式 对操作数的要求 对标志位的影响与ADD指令完全一样指令的操作 OPRD1 OPRD2 CFOPRD1ADC指令多用于多字节数相加 使用前要先将CF清零 98 movax 7856h AX 7856Hmovdx 8234h DX 8234Haddax 8998h AX 01EEH CF 1adcdx 1234h DX 9469H CF 0 99 3 INC指令 格式 INCOPRD操作 OPRD 1OPRD 常用于在程序中修改地址指针 不能是段寄存器或立即数 100 二 减法指令 普通减法指令SUB考虑借位的减法指令SBB减1指令DEC比较指令CMP求补指令NEG 减法指令对操作数的要求与对应的加法指令相同 101 1 SUB指令 格式 SUBOPRD1 OPRD2操作 OPRD1 OPRD2OPRD1对标志位的影响与ADD指令同 102 2 SBB指令 指令格式 对操作数的要求 对标志位的影响与SUB指令完全一样指令的操作 OPRD1 OPRD2 CFOPRD1 103 3 DEC指令 格式 DECOPRD操作 OPRD 1OPRD 指令对操作数的要求与INC相同指令常用于在程序中修改计数值 104 应用程序例 MOVBL 2NEXT1 MOVCX 0FFFFHNEXT2 DECCXJNZNEXT2 ZF 0转NEXT2DECBLJNZNEXT1 ZF 0转NEXT1HLT 暂停执行 105 movax 7856h AX 7856Hmovdx 8234h DX 8234Hsubax 4491h AX BD5DH CF 1sbbdx 8000h DX 1468H CF 0 106 4 NEG指令 格式 NEGOPRD操作 0 OPRDOPRD 8 16位寄存器或存储器操作数 用0减去操作数 相当于对该操作数求补码 两点注意请见教材p117 107 5 CMP指令 格式 CMPOPRD1 OPRD2操作 OPRD1 OPRD2指令执行的结果不影响目标操作数 仅影响标志位 108 CMP指令 用途 用于比较两个数的大小 可作为条件转移指令转移的条件指令对操作数的要求及对标志位的影响与SUB指令相同 109 CMP指令 两个无符号数的比较 CMPAX BX若AX BX若AX BX CF 0 CF 1 110 CMP指令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论