编辑: AA003 | 2019-05-21 |
xju.edu.cn 微型计算机原理及应用 微型计算机原理及应用 微型计算机原理及应用
第三章 8086指令系统 新疆大学电气工程学院 ― ― 梁岚珍、陈志军、闫学勤、程志江 新疆大学精品课程 新疆大学精品课程 ? www.xju.edu.cn 主要内容 ? 指令系统的一般概念 ? 对操作数的寻址方式 ? 六大类指令的操作原理 操作码的含义 指令对操作数的要求 指令执行的结果 ? www.xju.edu.cn ?1. 8086具有灵活的指令格式 ?2. 8086指令格式中的一对多形式 ?3. 8086有较强的运算指令 ?4. 8086指令有极强的寻址能力 ?5. 8086指令有处理多种数据能力 8086指令特点 ? www.xju.edu.cn 3.1 概述 了解: ? 指令及指令系统 ? 指令的格式 ? 指令中的操作数类型 指令:控制计算机完成指定操作的命令 指令系统:处理器所能识别的所有指令的集合,还定义了使 用这些指令的规则. 指令的兼容性:同一系列机的指令都是兼容的 ? www.xju.edu.cn ? 数据传送:一般数据传送、输入输出指令、地址传送指令、标 志传送指令 ? 算术运算:加法、乘法、减法、除法、十进制调整 ? 逻辑运算指令 ? 串操作 ? 控制转移指令 ? 处理器控制 指令的类型 3.1 概述 ? www.xju.edu.cn 3.1.1 指令的基本构成 运算数据的来源 运算结果的去向 执行的操作 指令的长度1~7个字节之间,指令中应包含的信息: 指令格式: 操作码 [操作数],[操作数] 执行何种操作 目标操作数 源操作数 参加操作的数据 或数据存放的地址 ? www.xju.edu.cn 零操作数指令: 操作码 单操作数指令: 操作码 操作数 双操作数指令: 操作码 操作数,操作数 多操作数指令: 三操作数及以上 表征参加操作的数据本身 立即数 表征数据存放的地址 寄存器 存储器 3.1.1 指令的基本构成 ? www.xju.edu.cn 1.立即数操作数: (所谓立即数是指具有固定数制的操作数,即常数) ? 表示参加操作的数据本身,可以是8位或16位例: MOV AX,1234H MOV BL,22H ? 立即数无法作为目标操作数 ? 立即数可以是无符号或带符号数,其数值应在可取值范围内 3.1.1 指令的基本构成 ? www.xju.edu.cn 2.寄存器操作数: ? 寄存器操作数存放在通用寄存器或段寄存器中,既可作为原 操作码,也可作为目的操作码. ? AX、BX、CX、DX存放字节操作数,SI、DI、BP、SP只能存放 字操作数. ? 表示参加运算的数存放在指令给出的寄存器中,可以是16位或8位. ? 例:MOV AX,BX MOV DL,CH ? 段寄存器用来存放当前操作数的段基地址.在与通用寄存器 或存储器传送数据时,段寄存器既可作为原操作数或目的操 作数. ? 不允许用一条指令将立即数传送到段寄存器,要用某个通用 寄存器作桥梁. 3.1.1 指令的基本构成 ? www.xju.edu.cn 3.存储器操作数: ? 可以是字节、字、双字. ? 既可作为源操作数,也可作为目的操作数. ? 对大多数指令,不允许源操作数和目的操作数同时为存储器操 作数. 需要这样做时,用某一通用寄存器作桥梁. ? 表示当前参加运算的数存放在存储器的某一个或某两个单元中 ? 例:MOV AX,[1200H] MOV AL,[1200H] 22H 11H
1200 H 偏移地址 AH AL 3.1.1 指令的基本构成 ? www.xju.edu.cn 表3.3 段寄存器使用的一些基本约定 按寻址方式取得 CS,DS, ES SS BP作为基址寄存器 DI 无ES 串操作目标串地址 SI CS,ES, SS DS 串操作源串地址 按寻址方式取得 CS,ES, SS DS 通用数据读写 SP 无SS 堆栈操作 IP 无CS 取指令 段内偏移地址来源 允许超越的 段寄存器 默认的段 寄存器 存储器操作类型 3.1.1 指令的基本构成 ? www.xju.edu.cn 指令字长与机器字长 ? 指令字长由操作码的长度、操作数地址长度、操作数个数决定 ? 8088/8086CPU采用变字长指令格式 ? 机器字长:计算机能够直接处理的二进制数的位数 3.1.1 指令的基本构成 ? www.xju.edu.cn 指令的执行速度 ? 一条指令的执行时间包括:取指令、取操作数、执行指令及 传送结果 ? 指令的字长影响指令的执行速度 (常用指令的执行时间见表3-4) ? 对不同的操作数,指令执行的时间不同: 存储器 立即数 寄存器 快! 3.1.1 指令的基本构成 ? www.xju.edu.cn ? 指令是让计算机完成某种操作的命令,指令的集合称作指令 系统,不同CPU的计算机有不同的指令系统.指令是根据计算 机CPU硬件特点研制出来的,指令的符号用规定的英文字母组 成,称为助记符. 操作码 [操作数],[操作数] 目标操作数, 用以存放结果 源操作数 助记符,用以 说明CPU执行 的操作 立即操作数 具有固定数值的操作数,即常数.它不会由于指 令的执行而发生变化,存在于指令之中.立即数操作数只能用 作源操作数,而不能用作目标操作数. 寄存器操作数 存放在8086CPU的8个通用寄存器或段寄存器 中,既可作为源操作数,也可以用作目标操作数. 存储器操作数 可以是字节、字或双字,分别存放在1个、2个或4个存储单元中.存储器操作数在指令中既可作为源操作 数,也用作目的操作数.对大多数指令, 3.1.1 指令的基本构成 ? www.xju.edu.cn 3.2 8086的寻址方式 8086指令系统中,有部分指令所用的8位或16位操作数就在指 令中提供,这种方式叫立即数寻址方式.指令中的源操作数是立即 数,即源操作数是参加操作的数据本身. 3.2.1 立即寻址(immediate addressing) MOV AL,80H ;