计算机硬件技术基础3.ppt

  1. 1、本文档共107页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 8086/8088指令系统 3.1 指令格式与寻址方式 3.2 数据传送类指令 3.3 算术运算指令 3.4 逻辑运算指令 3.5 移位和循环移位指令 3.6 串操作指令 3.7 控制转移指令 3.8 处理器控制指令 3.1 指令格式与寻址方式 3.1.1 指令格式 一条指令包含:操作码和操作数 操作码:指示计算机执行具体的操作。 操作数:用来指出操作码所需操作数的来源和操作结果的去向。 源操作数 目的操作数 3.1.2 寻址方式 3.1.2 寻址方式 3.2 8086的指令简介 3.2.1 几类常用指令详解 数据传送指令 算术运算指令 逻辑运算与移位指令 串操作指令 控制转移指令 重点关注: 指令的汇编格式 指令的基本功能 指令支持的寻址方式 指令的执行对标志位的影响 指令的特殊要求 3.2.1.1 数据传送指令 数据传送是计算机中最基本、最常用的一类操作。 传送指令(MOV) 交换指令(XCHG) I/O指令(IN/OUT) 装入有效地址指令(LEA) 装入段寄存器指令(LDS、LES) 查表转换指令(XLAT) 压栈/弹栈指令 (PUSH/POP/) 1. 传送指令 指令操作:(源操作数)→目的操作数 使用说明: 源操作数和目的操作数的类型必须一致。 目的操作数不能为立即数。 CS和IP均不能用作指令的目的寄存器。 段寄存器间不能直接传送,也不能直接将立即数送给段寄存器。 源操作数为立即数,而目的操作数类型不确定时,要给目的操作数加类型说明。 [例2.3] 识别下列指令的正确性,对错误的指令,说明错误的原因。 ⑴ MOV DS,100 [例2.4] FIRST,SECOND为字节变量,写出将FIRST开始的字内容送给变量SECOND开始的字单元指令序列。 MOV AL,FIRST MOV SECOND,AL MOV AL,FIRST[1] MOV SECOND[1],AL 2. 交换指令 操作: (目的操作数) ?(源操作数) ⑴ 输入指令 格式:IN 累加器, 端口 AL/AX, IMM8 AL/AX, DX 操作: (I/O端口)→AL/AX ⑵ 输出指令 格式:OUT 端口, 累加器 IMM8 , AL/AX DX , AL/AX 操作:(AL/AX)→I/O端口 格式:LEA r16, mem ;r16--mem的有效地址EA 把源操作数的地址偏移量-目的操作数寄存器 例 LEA AX, [BP][DI] 说明 LEA指令处理变量的地址(EA)而不是变量的内容 LEA和MOV指令的比较 MOV BX, OFFSET VAL ;将VAL的有效地址=BX MOV BX, VAL ;将VAL的值=BX LEA BX, VAL ;将VAL的有效地址=BX MOV指令用OFFSET操作不能直接取数组中任意元素的位移量,只能取数组的第一个元素的位移量,而LEA可以传送任意数组元素的位移量。 如LEA DX, BETA[BX][SI] LEA的源操作数必须是存储器操作数 LEA不影响F标志 LDS reg, mem 目的操作数为16位或32位通用寄存器之一,源操作数是双字长存储器指针,将双字长源操作数中的低地址字传送给目的寄存器,将双字长源操作数中的高地址字传送给DS段寄存器 如B DB ‘F’ A DD B LDS BX, A ; B的位移量=BX,B的段基址=DS MOV AL, [BX] ;将‘F’=AL 5. 查表指令 说明:XLAT是一条隐含寻址的指令。隐含两个操作数:DS:(E)BX存放表基址,AL存放查表参数。使用前要给隐含操作数赋初值。 6. 压栈/弹栈指令 格式:PUSH 源操作数 REG16/MEM16 操作: (SP)-2→SP (源操作数)→(SS:SP) 弹栈指令 使用说明: 堆栈指令的操作数只能为字或双字。 PUSH和POP要成对出现,以保持堆栈平衡。 堆栈指令也隐含了一个目的/源操作数 ——堆栈。 压栈顺序是先压高字节后压低字节,弹栈则是先弹低字节后弹高字节。

文档评论(0)

wxc6688 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档