7.1 机器指令 7.2 操作数类型和操作类型 7.3 寻址方式 7.4 指令格式举例 7.5 RISC 技术.

Slides:



Advertisements
Similar presentations
指令系统 吴非 本章主要内容 指令系统 指令格式 寻址方式 典型指令系统 MIPS指令系统 RISC 与 CISC -2-
Advertisements

第五章 中央处理器 5.1 CPU的组成和功能 5.2 指令周期 5.3 时序产生器和控制方式 5.4 微程序控制器 5.5 微程序设计技术
2017年3月5日 单片机原理与应用 背景知识调查.
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
计算机组成原理 北京理工大学计算机科学工程系 赵清杰 北京理工大学计算机科学工程系.
第三章 计算机核心部件及其 工作原理.
计算机组成原理 第二十一讲 计算机科学与技术学院 舒燕君.
第5章 指令系统 5.1 指令系统的发展 5.2 指令格式与数据表示 5.3寻址方式(编址方式) 5.4 指令类型与指令系统的兼容性
第10章 DOS功能调用与BIOS中断调用.
大连理工大学软件学院 软件工程系 赖晓晨 计算机组成与结构 大连理工大学软件学院 软件工程系 赖晓晨
1.1 计算机系统简介 1.2 计算机的基本组成 1.3 计算机硬件的主要技术指标 1.4 本书结构.
第七章 控制器 7.1 控制器的组成及指令的执行 7.2 控制方式和时序的产生 7.3 微程序控制器 7.4 微程序控制器及其微程序设计举例
8051 指令.
第三章 80 x86的指令系统和寻址方式 3.1 指令概述 x86的寻址方式 ( ※ ) 3.3 程序占有的空间和执行的时间
 指令系统  寻址方式 第3章 80x86的指令系统和寻址方式 一组指令的集合 指令 与数据有关的寻址方式 与转移地址有关的寻址方式
4.1 汇编语言 4.2 顺序结构程序 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计
第三章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:
第5章 循环与分支程序设计  循环程序设计  分支程序设计.
第三章 寻址方式与指令系统 3.1 寻址方式 一条指令通常由两大部分构成: 操作码 操作数
逆向工程-汇编语言
第2章 MCS-51单片机指令系统与汇编语言程序设计
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
第四章 典型CPU及指令系统举例.
第2章 汇编语言与汇编程序 ——8086/8088指令系统 mov ax,12h call display Jmp 1234h.
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
指令集架構 計算機也跟人類一樣,需要提供一套完整的語言讓人們跟它充分溝通,以完成正確的計算工作。
第四章 指令系统及汇编语言程序设计.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
第2章 计算机指令集结构 曲冠南
第3章 IA-32指令系统 3.1 基本数据类型 3.2 IA-32的指令格式 3.3 IA-32指令的操作数寻址方式
第3章 寻址方式 罗文坚 中国科大 计算机学院
§2 寻址方式 寻址方式:是指令按什么方式寻找(访问)到所需的操作数或信息的。 寻找操作数及其地址的技术称为寻址技术 编址方式 寻址方式分析
§3 指令系统的设计和优化 指令系统是从程序设计者看到的机器的主要属性,是软、硬件的主要界面 指令系统是计算机系统结构的主要组成部分
第3章 8086/8088指令系统 mov ax,12h call display Jmp 1234h.
8.1 CPU 的结构 8.3 指令流水 8.2 指令周期 8.4 中断系统.
微机原理与接口技术 ——80x86微处理器 西安邮电大学 计算机学院 范琳.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
汇编语言程序设计课程设计 第二次实验 DEBUG基本命令与算术运算指令
计算机原理及系统结构 第十八讲 主讲教师:赵宏伟                 学时:64.
微型计算机原理及应用.
8086 指令系统特点 可变长指令:指令格式比较复杂。
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
computer organization principle
逆向工程-汇编语言
CPU结构和功能.
第5章 循环与分支程序设计 学习目标: 了解并掌握循环程序的构造方法,尤其是对循环控制条件的设置以及可能出现的边界情况的考虑。掌握起泡排序算法这种多重循环程序设计中的常用方法。交换标志位的设置在此算法中更能提高效率。学会在数组排序算法中采用折半查找法来提高查找效率。学会使用跳跃表法实现CASE结构。
第3章 MCS-51单片机指令系统 3.1 指令概述 3.2 寻址方式 3.3 MCS-51系列单片机的指令系统.
教师:王晓甜 8086CPU 指令系统 教师:王晓甜
第五章:输入输出基本技术 主讲教师:范新民.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
习题3 1、 分别说明下列指令的原操作数和目的操作数各采用什么寻址方式。 设定如下: ①立即寻址 ② ① ②寄存器寻址
第3章 指令系统和寻址方式 3.1指令系统概述 /8086CPU的寻址方式 3.3 指令的机器码表示方法(略)
第3章 MCS-51的指令系统 介绍MCS-51汇编语言的指令系统。 3.1 指令系统概述
计算机组成原理 课程设计.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
第三章 MCS 51的硬件结构.
第5章 循环与分支程序设计  循环程序设计  分支程序设计.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
College of Computer Science & Technology
微机原理与接口技术 ——8086微处理器 西安邮电大学 计算机学院 范琳.
单片机应用技术 项目一 循环彩灯装置 第5讲 MCS-51单片机指令系统及指令格式 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
本节内容 通用寄存器 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第4章 指 令 系 统 4.1 指令系统的发展与性能要求 4.2 指令格式 4.3 指令和数据的寻址方式 4.4 典型指令
第三章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:
第三章 8086的指令系统 8086指令特点 8086的寻址方式 8086的指令格式及数据类型 8086的指令集.
第5章 中 央 处 理 器 5.1 CPU的功能和组成 5.2 指令周期 5.3 时序产生器和控制方式 5.4 微程序控制器
Presentation transcript:

7.1 机器指令 7.2 操作数类型和操作类型 7.3 寻址方式 7.4 指令格式举例 7.5 RISC 技术

7.1 机 器 指 令 一、指令的一般格式 操作码字段 地址码字段 1. 操作码 反映机器做什么操作 (1) 长度固定 7.1 机 器 指 令 一、指令的一般格式 操作码字段 地址码字段 1. 操作码 反映机器做什么操作 (1) 长度固定 用于指令字长较长的情况 ,RISC 如 IBM 370 操作码 8 位 (2) 长度可变 操作码分散在指令字的不同字段中

(3) 扩展操作码技术 操作码的位数随地址数的减少而增加 OP A1 A2 A3 0000 0001 1110 … A1 A2 A3 4 位操作码 15条三地址指令 A2 … A3 1111 0000 0001 1110 8 位操作码 15条二地址指令 1111 … A3 0000 0001 1110 12 位操作码 15条一地址指令 1111 … 0000 0001 16 位操作码 16条零地址指令

若 A3 用 A1 或 A2 代替 2. 地址码 OP A1 A2 A3 A4 设指令字长为 32 位 操作码固定为 8 位 4 次访存 8 6 6 6 6 (1) 四地址 OP A1 A2 A3 A4 设指令字长为 32 位 操作码固定为 8 位 A1 第一操作数地址 A2 第二操作数地址 4 次访存 A3 结果的地址 寻址范围 26 = 64 A4 下一条指令地址 (A1) OP (A2) A3 若 PC 代替 A4 (2) 三地址 8 8 8 8 OP A1 A2 A3 4 次访存 寻址范围 28 = 256 (A1) OP (A2) A3 若 A3 用 A1 或 A2 代替

(A1) OP (A2) A1 或 (A1) OP (A2) A2 若结果存于 ACC 3次访存 (ACC) OP (A1) ACC (3) 二地址 8 12 12 OP A1 A2 (A1) OP (A2) A1 4 次访存 或 (A1) OP (A2) A2 寻址范围 212 = 4 K 若结果存于 ACC 3次访存 若ACC 代替 A1(或A2) (4) 一地址 8 24 OP A1 2 次访存 (ACC) OP (A1) ACC 寻址范围 224 = 16 M (5) 零地址 无地址码

二、指令字长 操作码的长度 操作数地址的长度 指令字长决定于 操作数地址的个数 1. 指令字长 固定 指令字长 = 存储字长 2. 指令字长 可变 按字节的倍数变化

小结 当用一些硬件资源代替指令字中的地址码字段后 可扩大指令的寻址范围 可缩短指令字长 可减少访存次数 当指令的地址字段为寄存器时 三地址 OP R1, R2, R3 二地址 OP R1, R2 一地址 OP R1 可缩短指令字长 指令执行阶段不访存

3 7 6 2 1 5 4 4 5 1 2 6 7 3 7.2 操作数类型和操作种类 一、操作数类型 地址 数字 字符 逻辑数 无符号整数 7.2 操作数类型和操作种类 一、操作数类型 地址 数字 字符 逻辑数 无符号整数 定点数、浮点数、十进制数 ASCII 逻辑运算 二、数据在存储器中的存放方式 3 7 6 2 1 5 4 字地址 低字节 4 5 1 2 6 7 3 字地址 低字节 字地址 为 低字节 地址 字地址 为 高字节 地址

存储器中的数据存放(存储字长为 32 位) 边界对准 4 8 12 16 20 24 28 32 36 边界未对准 4 8 地址(十进制) 4 8 12 16 20 24 28 32 36 双字 双字(地址32) 双字(地址24) 半字(地址20) 半字(地址22) 半字(地址16) 半字(地址18) 字节(地址8) 字节(地址9) 字节(地址10) 字节(地址11) 字(地址 4) 字(地址 0) 字节(地址14) 字节(地址15) 字节(地址13) 字节(地址12) 边界对准 ▲ ▲ 地址(十进制) 4 8 字节( 地址7) 字节( 地址6) 字( 地址2) 半字( 地址10) 半字( 地址8) 半字( 地址0) 字( 地址4) 边界未对准

三、操作类型 1. 数据传送 源 目的 寄存器 寄存器 存储器 存储器 寄存器 存储器 寄存器 存储器 例如 MOVE STORE LOAD MOVE MOVE MOVE 置“1”,清“0” PUSH POP 2. 算术逻辑操作 加、减、乘、除、增 1、减 1、求补、浮点运算、十进制运算 与、或、非、异或、位操作、位测试、位清除、位求反 如 8086 ADD SUB MUL DIV INC DEC CMP NEG AAA AAS AAM AAD AND OR NOT XOR TEST

300 … 305 306 307 SKP DZ D = 0 则跳 3. 移位操作 算术移位 逻辑移位 循环移位(带进位和不带进位) 4. 转移 (1) 无条件转移 JMP (2) 条件转移 结果为零转 (Z = 1) JZ 如 完成触发器 300 … 305 306 307 SKP DZ D = 0 则跳 结果溢出转 (O = 1)JO 结果有进位转(C = 1)JC 跳过一条指令 SKP

(3) 调用和返回 ... ... … ... … ... 主程序 地址 2000 2100 2101 子程序SUB1 2400 2500 2501 2560 2561 2700 主存空间分配 程序执行流程 子程序SUB2 ... (3) 调用和返回 CALL SUB1 ... … CALL SUB2 ... CALL SUB2 … RETURN ... RETURN

入 端口地址 CPU 的寄存器 如 IN AL, n IN AX, n IN AL, DX IN AX, DX (4) 陷阱(Trap)与陷阱指令 意外事故的中断 一般不提供给用户直接使用 在出现事故时,由 CPU 自动产生并执行(隐指令) 设置供用户使用的陷阱指令 如 8086 INT TYPE 软中断 提供给用户使用的陷阱指令,完成系统调用 5. 输入输出 入 端口地址 CPU 的寄存器 如 IN AL, n IN AX, n IN AL, DX IN AX, DX 出 CPU 的寄存器 端口地址 如 OUT n, AL OUT n, AX OUT DX, AL OUT DX, AX

7.3 寻 址 方 式 寻址方式 确定 本条指令 的 操作数地址 下一条 欲执行 指令 的 指令地址 指令寻址 数据寻址 寻址方式

( PC ) + 1 PC 7.3 寻 址 方 式 1 2 3 7 8 一、指令寻址 顺序 由转移指令指出 跳跃 LDA 1000 7.3 寻 址 方 式 一、指令寻址 ( PC ) + 1 PC 顺序 由转移指令指出 跳跃 LDA 1000 ADD 1001 DEC 1200 JMP 7 LDA 2000 SUB 2001 INC STA 2500 LDA 1100 ... 1 2 3 4 5 6 7 8 9 PC +1 指令地址寻址方式 指令地址 指令 顺序寻址 1 顺序寻址 2 顺序寻址 3 跳跃寻址 7 顺序寻址 8

二、数据寻址 形式地址 A 操作码 寻址特征 指令字中的地址 形式地址 有效地址 操作数的真实地址 约定 指令字长 = 存储字长 = 机器字长 1. 立即寻址 形式地址 A 就是操作数 OP # A 立即寻址特征 立即数 可正可负 补码 指令执行阶段不访存 A 的位数限制了立即数的范围

2. 直接寻址 EA = A 有效地址由形式地址直接给出 寻址特征 操作数 主存 LDA A A ACC 执行阶段访问一次存储器 A 的位数决定了该指令操作数的寻址范围 操作数的地址不易修改(必须修改A)

操作数地址隐含在操作码中 3. 隐含寻址 寻址特征 操作数 主存 ADD A ACC A 另一个操作数 隐含在 ACC 中 ALU 暂存 如 8086 MUL 指令 被乘数隐含在 AX(16位)或 AL(8位)中 MOVS 指令 源操作数的地址隐含在 SI 中 目的操作数的地址隐含在 DI 中 指令字中少了一个地址字段,可缩短指令字长

4. 间接寻址 EA =(A) 有效地址由形式地址间接提供 寻址特征 寻址特征 EA 主存 A1 主存 EA 1 OP A OP A A A EA 操作数 一次间址 多次间址 A1 操作数 EA 执行指令阶段 2 次访存 可扩大寻址范围 多次访存 便于编制程序

… … … …… … … …… … …… … JMP @ A (A) = 81 (A) = 202 80 转 子程序 81 201 间接寻址编程举例 子程序 主程序 … … … …… … … …… 80 81 201 202 转 子程序 … …… 转 子程序 @ 间址特征 … JMP @ A (A) = 81 (A) = 202

EA = Ri 有效地址即为寄存器编号 5. 寄存器寻址 寻址特征 OP Ri 操作数 … R0 Ri Rn 寄存器 执行阶段不访存,只访问寄存器,执行速度快 寄存器个数有限,可缩短指令字长

EA = ( Ri ) 有效地址在寄存器中 6. 寄存器间接寻址 寻址特征 操作数 主存 OP Ri 地址 … R0 Ri Rn 寄存器 有效地址在寄存器中, 操作数在存储器中,执行阶段访存 便于编制循环程序

7. 基址寻址 (1) 采用专用寄存器作基址寄存器 EA = ( BR ) + A BR 为基址寄存器 寻址特征 OP A 操作数 主存 ALU BR 可扩大寻址范围 便于程序搬家 BR 内容由操作系统或管理程序确定 在程序的执行过程中 BR 内容不变,形式地址 A 可变

… (2) 采用通用寄存器作基址寄存器 寻址特征 OP R0 A R0 作基址寄存器 操作数 主存 通用寄存器 R0 Rn-1 R1 ALU 由用户指定哪个通用寄存器作为基址寄存器 基址寄存器的内容由操作系统确定 在程序的执行过程中 R0 内容不变,形式地址 A 可变

8. 变址寻址 EA = ( IX ) +A IX 为变址寄存器(专用) 通用寄存器也可以作为变址寄存器 寻址特征 OP A 操作数 主存 ALU IX 可扩大寻址范围 IX 的内容由用户给定 在程序的执行过程中 IX 内容可变,形式地址 A 不变 便于处理数组问题

…… 例 设数据块首地址为 D,求 N 个数的平均值 直接寻址 变址寻址 LDA D LDA # 0 ADD D + 1 LDX # 0 ADD X, D M ADD D + 2 (X) +1 X INX …… CPX # N (X) 和 #N 比较 ADD D + ( N -1 ) BNE M 结果不为零则转 DIV # N DIV # N STA ANS STA ANS 共 N + 2 条指令 共 8 条指令

EA = ( PC ) + A A 是相对于当前指令的位移量(可正可负,补码) 9. 相对寻址 寻址特征 OP A …… 主存 1000 A OP 1000 PC ALU 相对距离 A 操作数 A 的位数决定操作数的寻址范围 程序浮动 广泛用于转移指令

* – 3 * * (1) 相对寻址举例 LDA # 0 LDX # 0 ADD X, D INX CPX # N BNE M DIV # N STA ANS M M+1 M+2 M+3 相对寻址特征 * – 3 * M 随程序所在存储空间的位置不同而不同 而指令 BNE 与指令 ADD X, D 相对位移量不变 – 3 * 指令 BNE 操作数的有效地址为 – 3 * EA = ( M+3 ) – 3 = M

(2) 按字节寻址的相对寻址举例 OP 位移量 2000 H 2008 H 8 OP 06 H 2000 H 2008 H 8 JMP * + 8 二字节指令 设 当前指令地址 PC = 2000H 转移后的目的地址为 2008H 因为 取出 JMP * + 8 后 PC = 2002H 故 JMP * + 8 指令 的第二字节为 2008H - 2002H = 6H

10. 堆栈寻址 … … (1) 堆栈的特点 多个寄存器 硬堆栈 软堆栈 堆栈 指定的存储空间 栈顶地址 由 SP 指出 先进后出(一个入出口) 进栈 (SP)– 1 SP 出栈 (SP)+ 1 SP – 1 +1 栈顶 栈底 2000 H SP … 1FFF H … 1FFF H SP 1FFFH 栈顶 栈底 2000 H 进栈 出栈 1FFFH 栈顶 2000 H 栈顶

(2) 堆栈寻址举例 PUSH A 后 PUSH A 前 POP A 前 POP A 后 15 200H ACC SP X 栈顶 栈底 主存 1FFH ACC SP 栈顶 200H 栈底 主存 X PUSH A 后 PUSH A 前 Y 1FFH ACC SP X 栈顶 200H 栈底 主存 15 15 200H ACC SP 栈顶 栈底 主存 X POP A 前 POP A 后

① 按 字 编址 进栈 (SP)– 1 SP 出栈 (SP)+ 1 SP ② 按 字节 编址 存储字长 16 位 进栈 (SP)– 2 SP 存储字长 32 位 进栈 (SP)– 4 SP 出栈 (SP)+ 4 SP

7.4 指令格式举例 一、设计指令格式时应考虑的各种因素 1. 指令系统的 兼容性 (向上兼容) 2. 其他因素 操作类型 7.4 指令格式举例 一、设计指令格式时应考虑的各种因素 1. 指令系统的 兼容性 (向上兼容) 2. 其他因素 操作类型 包括指令个数及操作的难易程度 数据类型 指令字长、操作码位数 指令格式 寻址方式、是否采用扩展操作码 地址码位数、地址个数 寻址方式 寄存器个数

1. PDP – 8 指令字长固定 12 位 二、指令格式举例 操作码 间 页 地址码 访存类指令 2 3 5 4 11 I/O 类指令 操作码 间 页 地址码 访存类指令 2 3 5 4 11 I/O 类指令 1 1 0 设备 操作码 2 3 11 9 8 寄存器类指令 1 1 1 辅助操作码 2 3 11

零地址 (16 位) 一地址 (16 位) 二地址 R R (16 位) 二地址 R M (32 位) 二地址 M M (48 位) 2. PDP – 11 指令字长有 16 位、32 位、48 位三种 16 OP – CODE 零地址 (16 位) 扩展操作码技术 10 6 目的地址 OP – CODE 一地址 (16 位) 目的地址 4 6 6 源地址 OP 二地址 R R (16 位) OP 10 6 16 目的地址 存储器地址 二地址 R M (32 位) 源地址 OP 4 6 6 16 16 目的地址 存储器地址1 存储器地址2 二地址 M M (48 位)

二地址 R R 基址加变址寻址 二地址 R M 三地址 R M 基址寻址 基址寻址 立即数 M 二地址 M M 基址寻址 3. IBM 360 OP R1 R2 RR 格式 8 4 4 二地址 R R OP R1 X B D RX 格式 8 4 4 4 12 基址加变址寻址 二地址 R M OP R1 R3 B D RS 格式 8 4 4 4 12 三地址 R M 基址寻址 OP B D I SI 格式 8 8 4 12 基址寻址 立即数 M OP B1 D1 L B2 D2 SS 格式 8 8 4 12 4 12 二地址 M M 基址寻址

4. Intel 8086 (1) 指令字长 1 ~ 6 个字节 INC AX 1 字节 MOV WORD PTR[0204], 0138H 6 字节 (2) 地址格式 零地址 NOP 1 字节 一地址 CALL 5 字节 段间调用 CALL 段内调用 3 字节 二地址 ADD AX,BX 2 字节 寄存器 — 寄存器 ADD AX,3048H 3 字节 寄存器 — 立即数 ADD AX,[3048H] 4 字节 寄存器 — 存储器

7.5 RISC 技 术 一、RISC 的产生和发展 RISC(Reduced Instruction Set Computer) CISC(Complex Instruction Set Computer) —— RISC技术 80 — 20 规律 典型程序中 80% 的语句仅仅使 用处理机中 20% 的指令 执行频度高的简单指令,因复杂指令 的存在,执行速度无法提高 能否用 20% 的简单指令组合不常用的 80% 的指令功能 ?

二、RISC 的主要特征 选用使用频率较高的一些 简单指令 复杂指令的功能由简单指令来组合 指令 长度固定 只有 LOAD / STORE 指令访存 流水技术 一个时钟周期 内完成一条指令 组合逻辑 实现控制器 多个 通用 寄存器 采用 优化 的 编译 程序