电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

微机原理与接口技术 教学课件 ppt 作者 周国运 微机原理与接口技术3

47页
  • 卖家[上传人]:E****
  • 文档编号:89500999
  • 上传时间:2019-05-26
  • 文档格式:PPT
  • 文档大小:267KB
  • / 47 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、微机原理与接口技术 第3章 指令系统,主编:周国运 机械工业出版社 2011.9,本章内容 3.1 寻址方式 3.2 8086指令系统 3.3 80286及以上扩充的指令,3.1 寻址方式,3.1 寻址方式,操作数是指令的处理对象。指定操作数或操作数存放位置的方法称为寻址方式。对80x86CPU,其寻址方式可以分为三种类型、共七种寻址方式。 立即寻址 寄存器寻址 存储器寻址 直接寻址方式 寄存器间接寻址方式 寄存器相对寻址方式 基址加变址寻址方式 相对基址加变址寻址方式,3.1 寻址方式,一、立即寻址: 操作数作为指令的一部分而直接写在指令之中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 实际上就是把要用到的数据直接以常数的形式在指令中给出。例如: MOV AX, 6789H ADD AX, 1234H 这种寻址方式要求数据必须在编程的时候就明确,不能修改。,3.1 寻址方式,另外注意: 立即数可以是8位、16位或32位。 如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储,所谓“高高低低”是指,数据的高位存放在高地址中,数据的低位存放在低地址中。 80

      2、86是16位芯片,在8086系统中指令直接给出的立即数最多是16位,如果是32位的,则必须要用到两次类似的指令。例如,两个32位数据相加的实现如下: ADD AX,1234H ADC DX,5678H,3.1 寻址方式,二、寄存器寻址方式: 指令所要的操作数事先已存储在某寄存器中,或把目标操作数存入寄存器中,或者源操作数和目标操作数都是寄存器,称为寄存器寻址。例如: MOV AX , BX IP寄存器不能直接使用外,段寄存器的使用也有相应的限制。 由于寄存器在CPU中,使用寄存器寻址方式的指令具有较快的执行速度。所以提倡应尽可能地使用寄存器寻址方式。,3.1 寻址方式,三、存储器寻址 共有五种寻址方式: 直接寻址 寄存器间接寻址 寄存器相对寻址 基址加变址寻址 相对基址加变址寻址,3.1 寻址方式,1直接寻址方式 在指令中直接给出该操作数的段地址和有效地址,从而使8086的BIU部件能够利用其地址加法器得到实际物理地址,找到该操作数。 MOV AX,DS:2000H 很多指令都有默认的存放数据的段,例如上面的指令可以简写成: MOV AX,2000H MOV AX,DS:2000H M

      3、OV AX,ES:2000H,3.1 寻址方式,2寄存器间接寻址方式 操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定。 MOV AX,DS:BX 在不使用段超越前缀的情况下,有下列规定: 若有效地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS; 若有效地址用BP来指定,则其缺省的段寄存器为SS(即堆栈段)。,3.1 寻址方式,3寄存器相对寻址方式 操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容和指令中的8位/16位偏移量(即相对值)之和。 MOV BX,SI+100H 指令中给出的8位/16位偏移量用补码表示。在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。当求和之后所得的有效地址超过0FFFFH(一个段的大小),则取其64K的模。,3.1 寻址方式,4基址加变址寻址方式 操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)和一个变址寄存器(SI、DI)的内容之和。例如: MOV BX,BX+DI MOV BX,BX+SI MOV BX,BP+DI MOV BX,BP+SI 特别

      4、注意,基址寄存器与变址寄存器不要混淆。,3.1 寻址方式,5相对基址加变址寻址方式 操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)的值、一个变址寄存器(SI、DI)的值和指令中的8位/16位偏移量之和。 MOV BX,BX+DI+200 其格式与规则同前面几种相一致; 需要说明的是它的表达形式是比较灵活的,例如下面几种写法是完全等价的: 200BXDI BX+200DI BX+DI+200,3.2 8086指令系统,3.2 8086指令系统,3.2 8086指令系统,指令系统确定了CPU所能完成的功能,是用汇编语言进行程序设计的最基本部分。 按其功能分成以下几大类: 数据传送指令 标志位操作指令 算术运算指令 逻辑运算指令 移位操作指令 比较运算指令 循环指令 转移指令 条件设置字节指令 字符串操作指令 ASCII-BCD码运算调整指令 处理器指令,3.2 8086指令系统,一、指令格式: 汇编语言的指令格式如下: 指令助记符 操作数1 ,操作数2 ,操作数 当指令含有操作数,并要求在指令中显式地写出来时,则在书写时必须遵守: 指令助记符和操作数之间要有空格分隔; 如果指令

      5、含有多个操作数,那么,操作数之间要用逗号“,”分开; 编写程序时指令后面还可以书写注释内容,不过,要在注释之前书写分号“;”。,3.2 8086指令系统,二、数据传输指令: 1传送指令MOV 传送指令MOV相对于高级语言里的赋值语句。指令的功能是把源操作数(第二个操作数)的值传给目的操作数(第一个操作数)。指令的格式如下: MOV Reg/Mem, Reg/Mem/Imm 其中:RegRegister(寄存器), MemMemory(存储器), ImmImmediate(立即数), 它们可以是8位、16位或32位(特别指出其位数的除外)。此后都将采用上述缩写,不再说明。,3.2 8086指令系统,对MOV指令有以下几条具体规定,其中有些规定对其它指令也同样有效。 两个操作数的数据类型要相同; 两个操作数不能同时为段寄存器; 代码段寄存器CS不能为目的操作数,但可作为源操作数; 立即数不能直接传给段寄存器; 立即数不能作为目的操作数; 指令指针IP,不能作为MOV指令的操作数; 两个操作数不能同时为存储单元。,3.2 8086指令系统,2交换指令XCHG 交换指令XCHG(Exchang

      6、e Instruction)是在两个寄存器之间、寄存器和内存变量之间进行数据交换,两个操作数的数据类型要相同。其指令格式如下: XCHG Reg/Mem, Reg/Mem 寄存器不能是段寄存器,两个操作数也不能同时为内存变量。,3.2 8086指令系统,3取有效地址指令LEA 指令LEA(Load Effective Address)是把一个内存变量的有效地址送给指定的寄存器。其指令格式如下: LEA Reg, Mem 该指令通常用来对指针或变址寄存器BX、DI或SI等置初值之用。,3.2 8086指令系统,4装载段寄存器指令 Load Segment Instruction指令的功能是把内存中地址的“低字”传送给指令中指定的16位寄存器,把随后的“高字”传给相应的段寄存器(DS、ES)。其指令格式如下: LDS/LES Reg, Mem 取有效地址指令与取段寄存器指令所得的地址来源是完全不同的 。例如: POINTER DD 12345678H LDS BX, POINTER 指令执行后,各寄存器的内容分别为: (BX)=5678H,(DS)=1234H。,3.2 8086指令系统,

      7、5堆栈操作指令 堆栈是一个具有“先进后出”的特点的数据结构。它主要有两大类操作:进栈操作和出栈操作。 (1)进栈指令PUSH,指令格式: PUSH Reg/Mem (2)出栈指令POP,指令格式: POP Reg/Mem,3.2 8086指令系统,6标志寄存器传送指令 (1)标志送AH指令LAHF 功能:Flags的低8位送AH。 (2)AH送标志寄存器指令SAHF 功能:AH值送 Flags的低8位。 (3)标志寄存器进栈指令PUSHF 功能:把16位标志寄存器进栈。 (4)标志寄存器出栈指令POPF 功能:把栈顶的16位数据出栈给标志寄存器。 这些指令都没有形式上的参数。,3.2 8086指令系统,7转换指令XLAT 转换指令(Translate Instruction)有两种书写使用格式,可以给出一个内存地址作为操作数,也可以没有形式上的操作数,但有两个隐含操作数BX和AL。 其功能是把给出的指令中明确给出的内存地址或缺省的BX的值作为内存字节数组首地址、下标为AL的数组元素的值传送给AL:ALBXAL。 指令格式如下: XLAT Mem 或 XLAT,3.2 8086指令系统,

      8、8I/O指令 在8086CPU的指令系统不能用普通的访问内存指令来访问其信息,专门设置有I/O指令来访问I/O端口。 (1)输入指令IN IN AL, PortNo/DX (2)输出指令OUT OUT PortNo/DX, AL 如果某IO设备的端口地址在0255范围之内,那么,可在指令中直接给出,否则,要把该端口地址先存入寄存器DX中,然后在指令中由DX来给出其端口地址。,3.2 8086指令系统,三、算术运算指令: 1加法指令 (1) 加法指令ADD ADD Reg/Mem, Reg/Mem/Imm 把源操作数的值加到目的操作数中。 (2) 带进位加指令ADC ADC Reg/Mem, Reg/Mem/Imm 源操作数和进位标志位的值一起加进来。 (3) 加1指令INC INC Reg/Mem 把操作数的值加1。,3.2 8086指令系统,2减法指令 (1) 减法指令SUB SUB Reg/Mem, Reg/Mem/Imm 从目的操作数中减去源操作数。 (2) 带借位减SBB SBB Reg/Mem, Reg/Mem/Imm 把源操作数和标志位CF的值一起减去。 (3) 减1指令D

      9、EC DEC Reg/Mem 把操作数的值减去1。,3.2 8086指令系统,2减法指令(续) (4) 求补指令NEG NEG Reg/Mem 操作数0操作数,即改变操作数的正负号。 (5)比较指令CMP CMP Reg/Mem, Reg/Mem/Imm 不保留结果的减法,目的是为了通过影响标志位得到两者之间的关系。 数据传输指令除了对标志寄存器直接操作外,一般不影响标志位,而之后的指令大多会对标志位产生影响,可以参看课本附录B。,3.2 8086指令系统,3乘法指令 (1) 无符号数乘法指令MUL MUL Reg/Mem (2) 有符号数乘法指令IMUL IMUL Reg/Mem 无符号乘法指令和有符号乘法指令的唯一区别就在于:数据的最高位是作为“数值”参与运算,还是作为“符号位”参与运算。 乘法指令的被乘数都是隐含操作数,乘数在指令中显式地写出来。CPU会根据乘数位数来确定被乘数。,3.2 8086指令系统,4除法指令 (1) 无符号数除法指令DIV DIV Reg/Mem (2) 有符号数除法指令IDIV IDIV Reg/Mem 除法与乘法隐含的操作数类似,具体可以参看课本表3-2与表3-3,3.2 8086指令系统,5数据类型转换指令 (1) 字节转换为字指令CBW CBW 该指令的隐含操作数为AL和AH。其功能是用AL的符号位去填充AH,即:当AL为正数,则AH=0,否则,AH=0FFH。 (2) 字转换为双字指令CWD CWD 该指令的隐含操作数为AX和DX,其功能是用AX的符号位去填充DX。 这两条指令都没有形式上的参数。,3.2 8086指令系统,四、逻辑运算指令: 逻辑运算指令与高级语言中的一样,它主要包括:逻辑与AND、逻辑或OR、逻辑非NOT和异或指令XOR等。 逻辑运算指令都是按位(bit)进行计算的; TEST指令是不保留结果的“与”运算,可以和之前所介绍的CMP比较。,3.2 8086指令系统,五、移位指令:,图,3,-,1,移位指令执行示意图,C,0,SHL,C,RCR,

      《微机原理与接口技术 教学课件 ppt 作者 周国运 微机原理与接口技术3》由会员E****分享,可在线阅读,更多相关《微机原理与接口技术 教学课件 ppt 作者 周国运 微机原理与接口技术3》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.