第三章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:

Slides:



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

信息技术:硬件、软件、网络、数据库 计算机技术、多媒体技术、压缩技术...
2017年3月5日 单片机原理与应用 背景知识调查.
第三章 计算机核心部件及其 工作原理.
第2章 微型计算机基本原理 2.1 数的编码和字符的表示 二进制数 二进制数向十进制数的转换:
第5章 指令系统 5.1 指令系统的发展 5.2 指令格式与数据表示 5.3寻址方式(编址方式) 5.4 指令类型与指令系统的兼容性
信息技术基础 主讲:邓以克 浙江大学计算机学院.
大连理工大学软件学院 软件工程系 赖晓晨 计算机组成与结构 大连理工大学软件学院 软件工程系 赖晓晨
1.1 计算机系统简介 1.2 计算机的基本组成 1.3 计算机硬件的主要技术指标 1.4 本书结构.
计算机基础知识 丁家营镇九年制学校 徐中先.
8051 指令.
第三章 80 x86的指令系统和寻址方式 3.1 指令概述 x86的寻址方式 ( ※ ) 3.3 程序占有的空间和执行的时间
第三章 寻址方式与指令系统 3.1 寻址方式 一条指令通常由两大部分构成: 操作码 操作数
逆向工程-汇编语言
/8088指令系统 为便于理解指令的形式和功能, 对指令中操作数符号的约定如下: 大小写字母无区别
第2章 MCS-51单片机指令系统与汇编语言程序设计
第四章 典型CPU及指令系统举例.
第2章 汇编语言与汇编程序 ——8086/8088指令系统 mov ax,12h call display Jmp 1234h.
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第四章 指令系统及汇编语言程序设计.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
总 复 习.
第3章 寻址方式 罗文坚 中国科大 计算机学院
§3 指令系统的设计和优化 指令系统是从程序设计者看到的机器的主要属性,是软、硬件的主要界面 指令系统是计算机系统结构的主要组成部分
第3章 8086/8088指令系统 mov ax,12h call display Jmp 1234h.
走进编程 程序的顺序结构(二).
7.1 机器指令 7.2 操作数类型和操作类型 7.3 寻址方式 7.4 指令格式举例 7.5 RISC 技术.
微机原理与接口技术 ——80x86微处理器 西安邮电大学 计算机学院 范琳.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月20日.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
微型计算机原理及应用.
第五章 微处理器.
8086 指令系统特点 可变长指令:指令格式比较复杂。
computer organization principle
逆向工程-汇编语言
CPU结构和功能.
版权所有,引用请注明出处 第六章、中央控制器 原著 谭志虎 主讲(改编) 蒋文斌.
第3章 MCS-51单片机指令系统 3.1 指令概述 3.2 寻址方式 3.3 MCS-51系列单片机的指令系统.
微机原理与接口技术 ——80x86微处理器 西安邮电大学 计算机学院 范琳.
C语言程序设计 主讲教师:陆幼利.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
微机系统的组成.
习题3 1、 分别说明下列指令的原操作数和目的操作数各采用什么寻址方式。 设定如下: ①立即寻址 ② ① ②寄存器寻址
第3章 指令系统和寻址方式 3.1指令系统概述 /8086CPU的寻址方式 3.3 指令的机器码表示方法(略)
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
计算机组成原理 课程设计.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
第三章 MCS 51的硬件结构.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
本节内容 内存复制指令 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
College of Computer Science & Technology
微机原理与接口技术 ——8086微处理器 西安邮电大学 计算机学院 范琳.
单片机应用技术 项目一 循环彩灯装置 第5讲 MCS-51单片机指令系统及指令格式 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
本节内容 通用寄存器 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
基于列存储的RDF数据管理 朱敏
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第4章 指 令 系 统 4.1 指令系统的发展与性能要求 4.2 指令格式 4.3 指令和数据的寻址方式 4.4 典型指令
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
第三章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:
第3章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:
第三章 8086的指令系统 8086指令特点 8086的寻址方式 8086的指令格式及数据类型 8086的指令集.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

第三章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:15928582759 主讲教师 杨 梅 联系电话:15928582759 E-mails:961135186@qq.com

第三章 CPU子系统 计算机中的 信息 指令信息 计算机处理的对象 控制信息 数据 数值型数据 非数值型数据 2009 SCS-SWPU 计算机组成原理 第三章 CPU子系统 计算机中的 信息 计算机处理的对象 控制信息 计算机的信息分为:数据信息和控制信息 数据信息是计算机所处理的对象,分数值型数据和非数值型数据,数值型数据有确定的值并在数轴有对应的点;数值型数据的表示涉及的问题有:何种进位计数制,如何表示带符号的数据,如何表示小数点的位置。非数值型数据没有确定的值,如字符数据 控制信息的基础主要是机器指令(规定计算机完成某种操作命令),一台计算机所有机器指令的集合称为指令系统 数据 指令信息 数值型数据 非数值型数据

3.2 指令信息的表示 指令:让计算机完成某种操作的命令 指令系统:一台计算机所能执行的全部指令 从软件的角度理解 指令的功能: 2009 SCS-SWPU 计算机组成原理 3.2 指令信息的表示 指令:让计算机完成某种操作的命令 指令系统:一台计算机所能执行的全部指令 从软件的角度理解 指令的功能: 从硬件设计的角度理解 不同系列的计算机有不同的指令系统; 指令越丰富功能越强,计算机结构越复杂 ; 是用户编制程序的依据,设计一台计算机的基本出发点。

2009 SCS-SWPU 计算机组成原理 3.2 指令信息的表示 1 指令的 格式 2 指令的 寻址方式 3 指令的功能和类型

3.2.1 指令格式 机器指令的基本格式 显地址 和 隐地址 操作码:告诉计算机做什么 (1)操作数或操作数地址 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式 机器指令的基本格式 操作码:告诉计算机做什么 (1)操作数或操作数地址 地址码 (2)存放运算结果的地址 (3)后继指令地址(常以隐含方式给出) 显地址 和 隐地址 地址码结构 提高计算机 性能为目的 操作码结构

3.2.1 指令格式—1、地址码结构 1) 四地址指令 其中: Ai表示地址,(Ai)表示存放于该地址的内容。 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—1、地址码结构 1) 四地址指令 A4→PC 其中: Ai表示地址,(Ai)表示存放于该地址的内容。 A4明确表示下条将要执行指令的地址。 A4常隐含给出,四地址指令很少采用

3.2.1 指令格式—1、地址码结构 2) 三地址指令 特点: 若A1、A2、A3为内存地址 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—1、地址码结构 2) 三地址指令 特点: 若A1、A2、A3为内存地址 则执行该指令需要访问4次主存。 根据PC的内容,取指令本身 根据指令中A1取被操作数; 根据指令中的A2取操作数; ALU运算结果,然后将结果保存到A3 修改PC的值,为读取下条指令做准备 例:完成(1000)+(2000)=>(3FFF)的操作: ADD (1000H),(2000H),(3FFF) A1表示存储单元或寄存器地址,(A1)表示地址里面的数

3.2.1 指令格式—1、地址码结构 程序计数器PC指向后继指令地址(假设内存为字节单元) 1000H PC 1000H OP1 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—1、地址码结构 程序计数器PC指向后继指令地址(假设内存为字节单元) 1000H PC 1000H OP1 指令寄存器IR 1001H PC+1 1001H A1 程序跳转到 3000H PC+1 1002H A2 ALU PC+1 1002H A3 PC+4 1004H OP2 A1 PC A2 3000H 3000H OPn

3.2.1 指令格式—1、地址码结构 3) 二地址指令 例: ADD AX,BX ;(AX)+(BX)=>(AX) 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—1、地址码结构 3) 二地址指令 其中: A1为目的操作数地址,A2为源操作数地址。 二地址指令执行之后,A1原存的内容被破坏了。 例: ADD AX,BX ;(AX)+(BX)=>(AX) MOV AX,BX ;(BX)=>(AX)

3.2.1 指令格式—1、地址码结构 4) 一地址指令 两种情况: 1)只有目的操作数的单操作数指令 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—1、地址码结构 4) 一地址指令 两种情况: 1)只有目的操作数的单操作数指令 2)隐含约定目的地址的双操作数指令,隐含约定目的操作数 由累加寄存器Acc提供 ( 隐地址 ) 。 特点: 若A1为内存地址,执行一条一指令的双操作数运算指令,只需访问两次主存。第一次取指令本身,第二次取操作数。 例: INC bx ; bx+1=>bx ADD BX ; AC+BX=>AC

3.2.1 指令格式—1、地址码结构 5) 零地址指令 显地址的多少对计算机性能的影响 三种情况: 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—1、地址码结构 5) 零地址指令 显地址的多少对计算机性能的影响 三种情况: 1)不需要操作数的指令,又称无操作数指令,多属控 制指令。如:HLT,NOP 2)隐含约定操作数在Acc中的单操作数指令 3)对堆栈元素的操作 1、显地址数多,指令长,所需存储空间大,读取时间长,但访问数据灵活 2、显地址少,指令短,所需存储空间小,但地址选择受限制 零地址的算逻类指令是用在堆栈计算机中的,堆栈计算机没有一般计算机中必备的通用寄存器,因此堆栈就成为提供操作数和保存运算结果的唯一场所。 例: NOP 空操作 INC 隐含约定累加器AC内容加1 PUSH 压栈 POP 出栈

3.2.1 指令格式 机器指令的基本格式 显地址 和 隐地址 操作码:告诉计算机做什么 (1)操作数或操作数地址 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式 机器指令的基本格式 操作码:告诉计算机做什么 (1)操作数或操作数地址 地址码 (2)存放运算结果的地址 (3)后继指令地址(常以隐含方式给出) 显地址 和 隐地址 地址码结构 提高计算机 性能为目的 操作码结构

3.2.1 指令格式—地址码结构 显地址的多少对计算机性能的影响 A4→PC 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—地址码结构 A4→PC 显地址的多少对计算机性能的影响 1、显地址数多,指令长,所需存储空间大,读取时间长,但访问数据灵活 2、显地址少,指令短,所需存储空间小,但地址选择受限制

3.2.1 指令格式—2、操作码结构 指令的操作码结构 操作码的位数决定指令种类的多少 固定长度操作码 操作码的编码 可变长度操作码 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—2、操作码结构 指令的操作码结构 操作码的位数决定指令种类的多少 固定长度操作码 指令字长固定,那么操作码和地址码的位数就会相互制约 操作码的编码 可变长度操作码

3.2.1 指令格式—2、操作码结构 (1) 固定长度操作码 操作码位数和位置是固定的 多用于指令较长或可变字长指令格式 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—2、操作码结构 (1) 固定长度操作码 操作码位数和位置是固定的 多用于指令较长或可变字长指令格式 设字长为32位的计算机,用第一个字节表示操作码 操作码 地址码 系统读得的第一个字节指令代码是操作码,就知道该指令是要做什么,是单操作数还是双操作数指令,信息组织方式明确,因此译码电路也比较简单 一个字节 3个字节 特点: 读取和识别指令简单,译码简单、迅速。

3.2.1 指令格式—2、操作码结构 操作码的译码示意图(假设内存为字节单元) 指令寄存器IR 1000H PC 1000H OP1 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—2、操作码结构 操作码的译码示意图(假设内存为字节单元) 指令寄存器IR 1000H PC 1000H OP1 指令译码器 1001H PC+1 1001H A1 双操作数指令 PC+1 1002H A2 PC+1 1003H OP2 ALU

3.2.1 指令格式—2、操作码结构 (2) 可变长度操作码 又称为扩展操作码 操作码扩展技术:操作码扩展到地址码 操作码 地址码 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—2、操作码结构 (2) 可变长度操作码 又称为扩展操作码 操作码扩展技术:操作码扩展到地址码 操作码 地址码 N位 32-N位 地址部分位数较多时,让操作码的尾数少些 地址部分位数较少时,让操作码的位数增加,以增加指令种类 当指令中的地址部分位数较多时,让操作码的尾数少些 当指令中的地址部分位数较少时,可让操作码的位数增加,以增加指令种类 特点: 操作码字段的位数和位置不固定将增加指令译码和 分析的难度,使控制器的设计复杂化。

3.2.1 指令格式—操作码结构 总结:指令长短对计算机的影响 三地址指令编码 op X Y Z 扩展操作码标志 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—操作码结构 例2-35 设某指令系统的指令字长为16位,最多可给出三个地址段: X、Y、Z, 设计一种扩展操作码的方案: 0000 XXXX XXXX XXXX 15条三地址指令 … 1110 XXXX XXXX XXXX 1111 0000 XXXX XXXX 15条二个地址指令 1111 1110 XXXX XXXX 1111 1111 0000 XXXX 15条一地址指令 1111 1111 1110 XXXX 1111 1111 1111 0000 16条零地址指令 1111 1111 1111 1111 思考题:另一种方案14条三地址指令,31条二地址指令,15条一地址指令,16条零地址指令 总结:指令长短对计算机的影响 三地址指令编码 op X Y Z 扩展操作码标志

3.2.1 指令格式—3、指令字长 4、 指令字长 (1)定字长指令格式: (2)可变字长指令格式 特点:结构简单,控制方便 2009 SCS-SWPU 计算机组成原理 3.2.1 指令格式—3、指令字长 4、 指令字长 (1)定字长指令格式: 特点:结构简单,控制方便 适用于精简指令系统(RISC) (2)可变字长指令格式 通常以字节为单位,有1字节、2字节、3字节等长度的指令; 读取操作码后判断是多少字节长度的指令 适用于复杂指令系统(CISC) 特点:结构灵活,控制复杂

课后延伸 RISC和CISC的区别 RISC处理器

2009 SCS-SWPU 计算机组成原理 3.2 指令信息的表示 1 指令的 格式 2 指令的 寻址方式 3 指令的功能和类型

3.2.2 指令的寻址方式 数据存储区 程序存储区 1000H OP1 00 0001 1001H A1:00H 01 0002 … 2009 SCS-SWPU 计算机组成原理 3.2.2 指令的寻址方式 数据存储区 程序存储区 1000H OP1 00 0001 1001H A1:00H 01 0002 … 1002H A2:4FH … 1003H OP2 A4 4F 0003 1:假设内存的存储空间很大会有什么问题? … A5 FF … 2:在指令中限制操作数地址的位数会有什么问题? 3000H OPn

3.2.2 指令的寻址方式 数据存储区 程序存储区 A1’ 0001 PC 1000H OP1 A2’ 0002 PC+1 1001H A1 2011 SCS-SWPU 计算机组成原理 3.2.2 指令的寻址方式 数据存储区 程序存储区 A1’ 0001 PC 1000H OP1 A2’ 0002 PC+1 1001H A1 … PC+1 1002H A2 … A3 … PC+4 1004H OP2 A3’ 0003 A4 … A5 3000H OPn

3.2.2 常见寻址方式 指令=操作码+操作数地址 形式地址:在指令中给出的地址 有效地址(EA):操作数的真实地址 寻址方式 2011 SCS-SWPU 计算机组成原理 3.2.2 常见寻址方式 指令=操作码+操作数地址 压缩操作数地址字段的长度 + 操作数地址表示多样化 方法 形式地址:在指令中给出的地址 有效地址(EA):操作数的真实地址 上节谈到指令=操作码+操作数地址,如果这个地址就是指的操作数在内存中的地址,那么地址的位数较少,访问内存的空间会受到限制 如果地址能访问较大的存储空间,则指令长度太大; 另外,如果指令只能表示内存的实际地址,碰到需要按找某种规律访问存放在内存中的一个表格、一个矩阵元素时,将显得不方便 解决上述问题:压缩指令中操作数地址字段的长度,同时使操作数地址的表示多样化 形式地址演变为有效地址的方法 称为寻址方式 形式地址转换为有效地址的方法 寻址方式 形式地址 有效地址(物理地址)

3.2.2 常见寻址方式 (1)操作数在指令中(指令) 操作数可能存放的地方: (2)操作数在CPU的某个寄存器中(寄存器号) 2011 SCS-SWPU 计算机组成原理 3.2.2 常见寻址方式 操作数可能存放的地方: (1)操作数在指令中(指令) (2)操作数在CPU的某个寄存器中(寄存器号) (3)操作数在主存储器中(单元地址码) (4)操作数在堆栈区中(堆栈指针SP) (5)操作数在I/O接口的寄存器中(端口地址) 立即数寻址 寄存器寻址 直接寻址 堆栈寻址 外设寻址 寻址方式的4大类 立即数寻址:在读指令时也就从指令中获得了操作数 直接寻址类:直接给出主存地址或寄存器号,以读取操作数 间接寻址类:从主存或某寄存器中读取操作数的地址 变址类:形式地址经过计算获得操作数的地址,用于数组、链表等数据结构的访问 数据地址的形成(数据的寻址方式) 数据和程序一样,在存贮器中也是按一定的顺序存放的,但是在程序的执行过程中,有的存贮单元的数据可能多次使用,没有什么规律可循,不能象指令地址的形成,在CPU中设置一个指令计数器,这就提出操作数地址如何形成?即通常称的寻址方式 重点学习!!!

1、立即寻址 I 所需的操作数由指令直接给出,称为立即数寻址方式 PC OP OP # D PC+1 2009 SCS-SWPU 计算机组成原理 1、立即寻址 I 所需的操作数由指令直接给出,称为立即数寻址方式 OP # D 立即寻址特征 立即数 PC OP 立即数 PC+1 例如:MOV AX,0102H ;AX←0102H 演示

1、立即寻址 I 立即数寻址方式: 特点 不需再次访存,速度快 操作数固定,无法修改 特别注意 只能用于源操作数字段 2009 SCS-SWPU 计算机组成原理 1、立即寻址 I 立即数寻址方式: 特点 不需再次访存,速度快 操作数固定,无法修改 特别注意 只能用于源操作数字段 常用来给寄存器和存储单元赋值

2、直接寻址 A A 2、 直接寻址: A M 寻址过程: 操作数地址A 操作数 主存地址 EA=A S=(EA)=(A) 2009 SCS-SWPU 计算机组成原理 2、直接寻址 A 2、 直接寻址: A 主存地址 A # 操作数S 广义的地址可能是主存地址或寄存器号,但习惯上“直接寻址”中的操作数地址是指主存地址 该图中,是假设主存单元按字编址,一个操作数占一个主存单元; 指令也占一个子,其中包含操作码OP和地址码A M 寻址过程: 操作数地址A 操作数 EA=A S=(EA)=(A) 即:地址码给出的就是操作数S所在主存单元的实际地址

2、直接寻址 A 例: 其汇编符号记为: MOV Ri, (1536H) 直接寻址的特点 执行阶段访问一次存储器 2009 SCS-SWPU 计算机组成原理 2、直接寻址 A 例: 把1536H存储单元中存放的操作数1534H取出,送入存器Ri中  其汇编符号记为: MOV Ri, (1536H) 1534h 操作码 特征 寄存器号 直接地址码D MOV # Ri 1536h 内存储器 直接寻址的特点 执行阶段访问一次存储器 D的位数决定了该指令操作数的寻址范围 有效地址是指令的一部分,不能随程序的需要而动态改变,因此指令只能访问某个固定的主存单元

2、直接寻址 A 思考: 若主存储器数据区与数据直接的对应关系如下: 地址 数据 1000H 1A00H 2000H 1B00H 2009 SCS-SWPU 计算机组成原理 2、直接寻址 A 思考: 若主存储器数据区与数据直接的对应关系如下: 地址 数据 1000H 1A00H 2000H 1B00H 3000H 1C00H 若 中,A=2000H,按照直接寻址方式读 取操作数,所读得的操作数是?

3、寄存器直接寻址 R EA = Ri S=( Ri ) R 寻址过程: 寄存器号 操作数 2009 SCS-SWPU 计算机组成原理 3、寄存器直接寻址 R    如果指令的地址码部分给出的是某通用寄存器编号Ri,Ri寄存器中存放着操作数,则称为寄存器直接寻址。 EA = Ri S=( Ri ) 汇编助记符:MOV AX, R2 ADD Ri Ri 操作数S 寻址特征 寄存器号 # R 寻址过程: 寄存器号 操作数 Ri是CPU中的若干个可编址寄存器,如:R0, R1, … , R7

3、寄存器直接寻址 R 思考: 若CPU中寄存器内容如下 R0 1000H R1 1A00H R2 2000H R3 1B00H 2009 SCS-SWPU 计算机组成原理 3、寄存器直接寻址 R 思考: 若CPU中寄存器内容如下 R0 1000H R1 1A00H R2 2000H R3 1B00H R4 3000H R5 1C00H 若 中,A给出的寄存器号为011,按照寄 存器寻址方式读取操作数,所读得的操作数S是多少?

小结:寄存器寻址与直接寻址 用寄存器寻址较直接寻址的优点? 分析下图 指令长度 3200H # R2 1000H 3200H 2009 SCS-SWPU 计算机组成原理 小结:寄存器寻址与直接寻址 用寄存器寻址较直接寻址的优点? 分析下图 指令长度 1000H # 001 010 MOV 3200H R2 CPU中的寄存器的访问速度比主存快 寄存器数远远少于主存单元数,存放寄存器号的字段位数少,可以有效地缩短指令长度,提高工作速度 3200H 寄存器寻址方式的优点: CPU中的寄存器的访问速度比主存快 寄存器数远远少于主存单元数,存放寄存器号的字段位 数少,可以有效地缩短指令长度,提高工作速度

4、 间接寻址 @A EA =(A1) A1 A1 寻址过程: 地址码部分给出的是存放操作数地址的内存单元的地址,这个地址叫做间接地址 2009 SCS-SWPU 计算机组成原理 4、 间接寻址 @A 地址码部分给出的是存放操作数地址的内存单元的地址,这个地址叫做间接地址 间址寻址有什么用处? EA =(A1) 汇编助记符: MOV R1, ((A1)); A2 A1 # A1 A2 间址单元 操作数单元 操作数S 通过多层读取来提供地址的可变性 主要用于支持程序的循环、实现程序的共享,不需要改变指令本身,只需要修改间址单元的内容就可以访问不同的存储单元 M M 寻址过程: 间址单元地址 操作数地址 操作数

4、 间接寻址 @A 用途:用做地址指针 A1 A1 EA =(A1) A2 A3 A7 A3 A7 INC 操作数S S2 S3 A2 2009 SCS-SWPU 计算机组成原理 4、 间接寻址 @A 用途:用做地址指针 A2 A1 A3 A7 # A1 A3 A7 A2 间址单元 INC 操作数单元 操作数S S2 EA =(A1) S3

4、 间接寻址 @A 例如: L1: MOV R1,( (0132H)); INC (0132H); JNZ L1; 间址寻址的特点: 2009 SCS-SWPU 计算机组成原理 4、 间接寻址 @A 例如: L1: MOV R1,( (0132H)); INC (0132H); JNZ L1; 内 存 3200 1025 1234 MOV 操作码 特征 寄存器号 地址码A 011 001 0132H 3201 内 存 1025 1234 3200 MOV 操作码 特征 寄存器号 地址码A 001 0132H 010 0132H 0132H 间址寻址的特点: 间址单元作为地址指针,只要修改指针,同一条指 令就可以在不同时间访问不同的存储单元 地址不变,但地址里面的内容改变了!! Ri 1025 Ri 1234

4、 间接寻址 @A 思考: 若主存储器数据区与数据直接的对应关系如下: 地址 数据 1000H 1A00H 2000H 3000H 2009 SCS-SWPU 计算机组成原理 4、 间接寻址 @A 思考: 若主存储器数据区与数据直接的对应关系如下: 地址 数据 1000H 1A00H 2000H 3000H 3000H 1C00H 若 中,A=2000H,按照间接寻址方式读取操作数,所读得的操作数S是多少?

5、 寄存器间接寻址 @R R M 寻址过程: 寄存器号 操作数地址 操作数 地址字段所指的寄存器中存放的是操作数的地址。 2009 SCS-SWPU 计算机组成原理 5、 寄存器间接寻址 @R 地址字段所指的寄存器中存放的是操作数的地址。 汇编助记符:MOV AX, (R2) R M 寻址过程: 寄存器号 操作数地址 操作数 ADD @ Ri 操作数地址 内 存 操作数S 操作码 寻址特征 寄存器号 用途:把寄存器做为地址指针!

5、 寄存器间接寻址 @R 例如: L1: MOV R1, (R2); INC R2; JNZ L1; 3200H 3201H 1025 2009 SCS-SWPU 计算机组成原理 5、 寄存器间接寻址 @R 例如: L1: MOV R1, (R2); INC R2; JNZ L1; MOV 操作码 特征 寄存器号 地址码A 001 010 MOV 操作码 特征 寄存器号 地址码A 001 010 内 存 1025 1234 3200 3201 内 存 1025 1234 3200 3201 R2 R2 3200H 3201H R1 R1 1025H 1234H

5、 寄存器间接寻址 @R 例如: 若CPU中寄存器和主存单元内容如下, 总结:寄存器间址与间址寻址的异同 寄存器: R0 1000H 2009 SCS-SWPU 计算机组成原理 5、 寄存器间接寻址 @R 总结:寄存器间址与间址寻址的异同 例如: 若CPU中寄存器和主存单元内容如下, 寄存器: R0 1000H R1 2000H R2 3000H 若 中,A给出的寄存器号为010,按照寄存器间接寻址方式读取操作数,所读得的操作数S是多少? 主存单元 地址 数据 1000H 1A00H 2000H 1B00H 3000H 1C00H

小结:寄存器寻址与直接寻址 用寄存器间接寻址较间接寻址的优点? 分析下图 指令长度 3200H # R2 3000H 2009 SCS-SWPU 计算机组成原理 小结:寄存器寻址与直接寻址 用寄存器间接寻址较间接寻址的优点? 分析下图 指令长度 3200H 3000H # 001 010 MOV 3200H R2 内 存 1025 1234 3201H CPU中的寄存器的访问速度比主存快 寄存器数远远少于主存单元数,存放寄存器号的字段位数少,可以有效地缩短指令长度,提高工作速度 寄存器间接寻址方式的优点: CPU中的寄存器的访问速度比主存快 寄存器数远远少于主存单元数,存放寄存器号的字段位数少,可 以有效地缩短指令长度,提高工作速度 寄存器本身的位数可以很多,足以提供较长的地址码

自增型寄存器间接寻址 (R)+ 寄存器间接寻址的两种变型 R 让寄存器指针自动修改! M R 寻址过程: 操作数地址 寄存器号 操作数 2009 SCS-SWPU 计算机组成原理 自增型寄存器间接寻址 (R)+ 寄存器间接寻址的两种变型 让寄存器指针自动修改! M R 寻址过程: 寄存器号 操作数地址 操作数 R 内容+1 MOV 操作码 特征 寄存器号 地址码A 001 010 011 内 存 1025 1234 3200 3201 R2 3200H 3201H R1 1234H 1025H

自增型寄存器间接寻址 (R)+ 例如: 若CPU中寄存器和主存单元内容如下, 寄存器: R0 1000H R1 2000H R2 3000H 2009 SCS-SWPU 计算机组成原理 自增型寄存器间接寻址 (R)+ 例如: 若CPU中寄存器和主存单元内容如下, 寄存器: R0 1000H R1 2000H R2 3000H 若指令中给出的寄存器号为010,按照自增型寄存器间址方式读取操作数,所读得的操作数S是多少? 主存单元: 地址 数据 3000H 1A00H 3001H 1B00H 3002H 1C00H

自减型寄存器间接寻址 -(R) 2、自减型寄存器间址: -(R) 寻址过程: M R 操作数地址= 寄存器内容-1 操作数 寄存器号 2009 SCS-SWPU 计算机组成原理 自减型寄存器间接寻址 -(R) 2、自减型寄存器间址: -(R) 寻址过程: M R 操作数地址= 寄存器内容-1 操作数 寄存器号 MOV 操作码 特征 寄存器号 地址码A 001 010 STA 100 内 存 3200 3201 R2 3201H 3200 1234 R1 1025 1025

自减型寄存器间接寻址 -(R) 例如: 若CPU中寄存器和主存单元内容如下, 寄存器: R0 1000H R1 2000H R2 3000H 2009 SCS-SWPU 计算机组成原理 自减型寄存器间接寻址 -(R) 例如: 若CPU中寄存器和主存单元内容如下, 寄存器: R0 1000H R1 2000H R2 3000H 若指令中给出的寄存器号为010,按照自减型寄存器间址方 式读取操作数,所读得的操作数S是多少? 主存单元 地址 数据 2FFFH 1A00H 3000H 1B00H 3001H 1C00H

自增/自减型寄存器间接寻址举例 两次执行上述程序,R1和R2的内容?? 2009 SCS-SWPU 计算机组成原理 自增/自减型寄存器间接寻址举例 可以把寄存器做为地址指针,修改寄存器的内容,可以使同一指令在不通时间访问不同的存储单元 例如: LP: MOX AX, (R1)+; MOV BX, -(R2); JNZ LP; 设R1和R2的初始内容如下: 寄存器: R0 1000H R1 3000H R2 3000H 两次执行上述程序,R1和R2的内容?? 主存单元 地址 数据 2FFEH 1234H 2FFFH 1A00H 3000H 1B00H 3001H 1C00H

6、变址寻址方式 X(R) (1) 采用专用寄存器作变址寄存器 EA = (IX ) + D IX为变址寄存器 变址量由寄存器给出 2009 SCS-SWPU 计算机组成原理 6、变址寻址方式 X(R) (1) 采用专用寄存器作变址寄存器 变址量由寄存器给出 EA = (IX ) + D 寻址特征 IX为变址寄存器 操作数 主存 OP D IX 的内容由用户给定 ALU IX 可扩大寻址范围 便于处理数组问题

6、变址寻址方式 X(R) (2) 采用通用寄存器作变址寄存器 … EA=( R0 )+D R0 作变址寄存器 2009 SCS-SWPU 计算机组成原理 6、变址寻址方式 X(R) (2) 采用通用寄存器作变址寄存器 EA=( R0 )+D R0 作变址寄存器 OP R0 D 操作数 主存 通用寄存器 R0 Rn-1 R1 … ALU 由用户指定哪个通用寄存器作为变址寄存器 变址寄存器的内容由用户确定 在程序的执行过程中 D内容不变,变址寄存器IX可变

6、变址寻址方式 X(R) 例如: 若CPU中寄存器和主存单元内容如下, 寄存器: R0 0010H R1 0020H R2 0030H 2009 SCS-SWPU 计算机组成原理 6、变址寻址方式 X(R) 例如: 若CPU中寄存器和主存单元内容如下, 寄存器: R0 0010H R1 0020H R2 0030H 若指令中给出的寄存器号为001,形式地址D=1000H,按照变址寻址方式读取操作数,所读得的操作数S是多少? 主存单元 地址 数据 1010H 1A00H 1020H 1B00H 1030H 1C00H

6、变址寻址方式 X(R) 变址寻址方式的用途——查找二维表 MOV IX, 0; MOV CX, 15; 2009 SCS-SWPU 计算机组成原理 6、变址寻址方式 X(R) 变址寻址方式的用途——查找二维表 MOV IX, 0; MOV CX, 15; L1: MOV AX, IX,1000H; INC IX; LOOP L1 1 2 3 4 5 张三 1200 … 李四 1400 王五 1600 月份 销售额 销售员 1000H

7、基址寻址 (1) 采用专用寄存器作基址寄存器 EA = ( BR ) + A BR 为基址寄存器 位移量由形式地址给出 2009 SCS-SWPU 计算机组成原理 7、基址寻址 (1) 采用专用寄存器作基址寄存器 位移量由形式地址给出 EA = ( BR ) + A 寻址特征 操作数 主存 BR 为基址寄存器 OP D BR 内容由操作系统或管理程序确定 ALU BR 便于程序搬家 在程序的执行过程中 BR 内容不变,形式地址 D 可变 可扩大寻址范围

7、基址寻址 (2) 采用通用寄存器作基址寄存器 … EA=(R0)+D R0 作基址寄存器 由用户指定哪个通用寄存器作为基址寄存器 2009 SCS-SWPU 计算机组成原理 7、基址寻址 (2) 采用通用寄存器作基址寄存器 EA=(R0)+D R0 作基址寄存器 OP R0 D 操作数 主存 通用寄存器 R0 Rn-1 R1 … ALU 由用户指定哪个通用寄存器作为基址寄存器 基址寄存器的内容由操作系统确定 在程序的执行过程中 R内容不变,形式地址 D 可变

重点复习 1、为什么计算机指令需要设置不同的寻址方式?回顾寻址方式的4大类? 2、为什么说寄存器寻址方式更优于直接寻址方式? 2009 SCS-SWPU 计算机组成原理 重点复习 1、为什么计算机指令需要设置不同的寻址方式?回顾寻址方式的4大类? 2、为什么说寄存器寻址方式更优于直接寻址方式? 3、为什么说寄存器间接寻址方式更优于间接寻址方式?

基址和变址的应用方向 变址寻址——面向用户:用于访问字符串、向量和数组等成批数据,变址寄存器IX与形式地址D可根据实际需要灵活变化。 2009 SCS-SWPU 计算机组成原理 基址和变址的应用方向 变址寻址——面向用户:用于访问字符串、向量和数组等成批数据,变址寄存器IX与形式地址D可根据实际需要灵活变化。 在一些小型机或微型机中,基址寻址和变址寻址实际上已经合二为一了 1 2 3 4 5 张三 1200 … 李四 1400 王五 1600

基址和变址的应用方向 基址寻址——面向系统:主要用于逻辑地址到物理地址 的变换,用于程序重定位和扩大寻址空间等问题。 2009 SCS-SWPU 计算机组成原理 基址和变址的应用方向 基址寻址——面向系统:主要用于逻辑地址到物理地址 的变换,用于程序重定位和扩大寻址空间等问题。 在一些大型机中,基址寄存器是由管理程序利用特权指 令来使用,用户程序无权修改它,从而确保了系统的安全性。 应用于程序重定位: 用户 操作系统 机器 高级语言 逻辑地址 重定位 分配基地址→BR 执行程序 实际主存地址

8、基址加变址方式 … EA=(R0)+(R1)+d R0 作基址寄存器 R1 作变址寄存器 基址寄存器和变址寄存器的内容由用户确定 2009 SCS-SWPU 计算机组成原理 8、基址加变址方式 EA=(R0)+(R1)+d R0 作基址寄存器 R1 作变址寄存器 OP R0 R1 d # 操作数 主存 通用寄存器 R0 Rn-1 R1 … ALU ALU 基址寄存器和变址寄存器的内容由用户确定 在程序的执行过程中 R0 内容不变, R1和d内容可变 可方便处理二维数组或表格

8、基址加变址方式 基址变址寻址方式访问二维表格原理 … 100 80 60 90 91 110 如何用二维方式访问6月17日的销售金额? 2009 SCS-SWPU 计算机组成原理 8、基址加变址方式 基址变址寻址方式访问二维表格原理 金额 日 月 1 2 … 17 30 31 100 80 60 90 91 6 110 如何用二维方式访问6月17日的销售金额?

9、相对寻址 X(PC) d 是相对于当前指令的 EA = ( PC ) + d 位移量(可正可负,补码) 程序计数器PC的内容为基址地址 2009 SCS-SWPU 计算机组成原理 9、相对寻址 X(PC) d 是相对于当前指令的 位移量(可正可负,补码) EA = ( PC ) + d 寻址特征 OP d …… 主存 1000 d OP 1000 PC ALU 相对距离 d 操作数 程序计数器PC的内容为基址地址 d 的位数决定操作数的寻址范围 广泛用于转移指令,如循环、分支等情况

9、相对寻址 例如: 由于程序在内存空间里是浮动的,又称浮动寻址。 若CPU中寄存器和主存单元内容如下: 寄存器: PC 1000H 2009 SCS-SWPU 计算机组成原理 9、相对寻址 例如: 若CPU中寄存器和主存单元内容如下: 寄存器: PC 1000H R1 0020H R2 0030H 若从1000H单元中取出一条指令,该指令采用相对寻址方式读取操作数,位移量为0003H 主存单元 地址 数据 0FFDH BC00H 1000H 1B00H 1003H 1C00H 由于程序在内存空间里是浮动的,又称浮动寻址。

11、堆栈寻址方式 硬堆栈: 软堆栈: 多个寄存器 堆栈 指定的存储空间 • 堆栈是一组能存储和取出数据的暂时存储单元,在这一点 2009 SCS-SWPU 计算机组成原理 11、堆栈寻址方式 • 堆栈是一组能存储和取出数据的暂时存储单元,在这一点 上,堆栈有点像存储器; (堆栈采用“后进先出”的工作方式。) 硬堆栈: 软堆栈: 多个寄存器 自底向上生成方式 堆栈 指定的存储空间 软堆栈按堆栈指示器中的初值进行相加或相减,可分成两种生成方式。堆栈指示器SP通常指向栈顶(或栈底): • 若采用SP的内容由初值不断向大的地址方向推进时(即(SP)+ Δ→SP),称为自顶向下生成方式,简称“向下生 成”方式; • 若采用SP的内容由初值不断向小的地址方向推进时(即(SP)-Δ→SP),称为自底向上生成方式,简称“向上生 成”方式。 自顶向下生成方式 以向上生长方式为例讲解

11、堆栈寻址方式 一、堆栈操作(以向上增长为例) 先进后出(一个入出口):栈顶地址 由 SP 指出 进栈 (SP)– 1 → SP 2009 SCS-SWPU 计算机组成原理 11、堆栈寻址方式 一、堆栈操作(以向上增长为例) 先进后出(一个入出口):栈顶地址 由 SP 指出 进栈 (SP)– 1 → SP OPR →(SP) 出栈(SP) → OPR (SP)+ 1 → SP – 1 +1 SP 2000 H 1FFF H OPR OPR SP 2000 H 1FFF H 进栈 出栈 栈顶 栈底 2000 H … … 1FFFH 栈顶 栈底 1FFFH 栈顶 OPR 2000 H 栈顶 压入指令:PUSH OPR 弹出指令:POP OPR

11、堆栈寻址方式 例题: 用零指令实现运算操作:a × b = c, 设(sp)=00F0H b xx a b xx xx xx c a 2009 SCS-SWPU 计算机组成原理 11、堆栈寻址方式 例题: 用零指令实现运算操作:a × b = c, 设(sp)=00F0H b 栈底 主存 初始状态 xx a 00F2 00F1 sp→ b 栈底 主存 弹出a xx 00F2 00F1 sp→ 栈底 主存 弹出b xx 00F2 00F1 sp→ 栈底 主存 C压栈 xx sp→ c 00F2 a b ALU c

11、堆栈寻址方式 思考:堆栈如何用于子程序的多重调用中 SUB1 PROC 2010H: call SUB1 2011H: RET 2009 SCS-SWPU 计算机组成原理 11、堆栈寻址方式 思考:堆栈如何用于子程序的多重调用中 SUB1 PROC 2010H: call SUB1 2011H: RET SUB1 ENDP 主程序 1000H: call SUB1 1001H: SUB2 PROC RET SUB2 ENDP 栈底 xxxx sp→ c 初态 栈底 xxxx 1001H ←sp SUB1 栈底 xxxx sp→ 2011H 1011H

思考题 说明:8086CPU系统,字长16bit,1M内存空间,采用自底向上的增长方式,按字访问,物理地址=ss*16+sp 2009 SCS-SWPU 计算机组成原理 思考题 说明:8086CPU系统,字长16bit,1M内存空间,采用自底向上的增长方式,按字访问,物理地址=ss*16+sp

常见寻址方式——总结 1、立即数寻址:助记符I,如汇编指令:MOV R1,1213H 2009 SCS-SWPU 计算机组成原理 常见寻址方式——总结 1、立即数寻址:助记符I,如汇编指令:MOV R1,1213H 2、直接寻址:助记符(A), 如: MOV R1,(1213H) 3、间接寻址:助记符@A,如:MOV R1,((1213H)) 3、寄存器寻址:助记符R,如:MOV R1,R2 4、寄存器间接寻址:助记符(R),如:MOV R1,(R2) 自增型寄存器间址:助记符(R)+, 如:MOV R1,(R2)+ 自减型寄存器间址:助记符-(R), 如:MOV R1,-(R2) 5、变址寻址:助记符X(R),如:MOV R1,R2,1000H 6、基址寻址:作用同上,主要用于系统 7、基址变址寻址:如:MOV R1,R2,R4,1000H 8、相对寻址:助记符X(PC) 9、堆栈寻址,PUSH和POP

2009 SCS-SWPU 计算机组成原理 3.2 指令信息的表示 1 指令的 格式 2 指令的 寻址方式 3 指令的功能和类型

CISC 和 RISC CISC(Complex Instruction Set Computer) 复杂指令系统(或集)计算机 2009 SCS-SWPU 计算机组成原理 CISC 和 RISC 包含尽可能多的指令和操作命令信息 CISC(Complex Instruction Set Computer) 复杂指令系统(或集)计算机 典型程序中 80% 的语句仅仅使用处理机中简单指令。 执行频度高的简单指令,因复杂指令的存在,执行速度无法提高。 能否用80%简单指令组合不常用的20%复杂的指令功能? RISC(Reduced Instruction Set Computer) 精减指令系统(或集)计算机 由于RISC 指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机 (1) 指令系统:RISC 设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC 计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。   (2) 存储器操作:RISC 对存储器操作有限制,使控制简单化;而CISC 机器的存储器操作指令多,操作直接。   (3) 程序:RISC 汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC 汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。   (4) 中断:RISC 机器在一条指令执行的适当地方可以响应中断;而CISC 机器是在一条指令执行结束后响应中断。   (5) CPU:RISC CPU 包含有较少的单元电路,因而面积小、功耗低;而CISC CPU 包含有丰富的电路单元,因而功能强、面积大、功耗大。   (6) 设计周期:RISC 微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC 微处理器结构复杂,设计周期长。   (7) 用户使用:RISC 微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。   (8) 应用范围:由于RISC 指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机。 减小 代码空间

总结:由于RISC 指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机 2009 SCS-SWPU 计算机组成原理 3.2.3 指令的功能和类型 RISC 的主要特征 选用使用频率较高的一些简单指令组成, 而复杂指令的功能由简单指令来组合; 总结:由于RISC 指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机 指令长度固定,指令格式种类少; 只有 LOAD / STORE 指令访存储器,其余指令的操作都在寄存器之间进行 主要用于嵌入式、完成简单处理等场合,其思想是让硬件完成简单的功能,由所有功能最小的简单指令集合构成,复杂指令功能往往由简单指令组合(用户编程软件实现),例如:ARM7 3级流水线 ARM9 5级 P4不是RISC 由18级流水线构成,就明显能区分其使用场合 流水技术 :尽可能在一个时钟周期内完成一条指令 采用组合逻辑实现控制器

3.2.3 指令的功能和类型 指令的分类 不同的机型,对指令的分类不同,归纳起来有三种方法: (1)按指令格式分类 2009 SCS-SWPU 计算机组成原理 3.2.3 指令的功能和类型 指令的分类 不同的机型,对指令的分类不同,归纳起来有三种方法: (1)按指令格式分类 单操作数、双操作数、程序转移等 (2)按操作数寻址方式分类 RR型、 RX型、 RS型、 SI型、 SS型等 (3)按指令功能分类 传送指令、I/O指令、算术运算指令、逻辑运算指令、程序控制指令、处理机控制指令等

3.2.3 指令的功能和类型 数据 传送类 指令 一、数据传送类指令 源地址 目的地址 数 数据传送指令:MOV 等 2009 SCS-SWPU 计算机组成原理 3.2.3 指令的功能和类型 一、数据传送类指令 数据传送指令:MOV 等 数据 传送类 指令 专用访存指令:LOAD STORE等 I/0指令:IN OUT 从编程的角度,传送类指令是使用最多的指令 从掌握计算机工作机制的角度:计算机硬件操作基本上都可以归结为信息的传送 地址传送指令:LEA 数 源地址 目的地址

3.2.3 指令的功能和类型 一、数据传送类指令 1. 数据传送指令 (1). MOV 指令 汇编指令格式: MOV DST, SRC 2009 SCS-SWPU 计算机组成原理 3.2.3 指令的功能和类型 一、数据传送类指令 1. 数据传送指令 目的 操作数 源 操作数 (1). MOV 指令 汇编指令格式: MOV DST, SRC ( DST ) ← ( SRC ) 例如: MOV AH, AL MOV R0, R1 MOVB R0,10H destination 传送单位:MOVB、MOVW 专用于指明数据传送的单位

3.2.3 指令的功能和类型 (2). 专用访存指令 (3). 地址传送指令(LEA) 读存储器内容到某个寄存器:LOAD 2009 SCS-SWPU 计算机组成原理 3.2.3 指令的功能和类型 (2). 专用访存指令 读存储器内容到某个寄存器:LOAD 写存储器:STROE 弹出:POP,如:POP AX 压入:PUSH,如:PUSH AX XCHG:交换指令,如:XCHG AX BX 通用 寄存器 (3). 地址传送指令(LEA) LDA BX ,AX; (BX)=>(AC),LDA意为Load AC STA AX,BX ; (AC)=>(BX),STA意为Store AC MOV BX, XYZ ::: 把xyz单元的内容传送给BX LEA BX, XYZ: 把XYZ单元的有效地址传递给BX 汇编指令格式: LEA REG, SRC ( REG ) ← ( SRC ) 内存 操作数 例如:设内存单元的地址为XYZ,存放有数据1234H: 则指令MOV BX, XYZ LEA BX, XYZ的区别

3.2.3 指令的功能和类型 (4). 输入/输出指令(I/O指令) 1)单独编址 →I/O专用指令 2)统一编址 →通用数据传送指令 2009 SCS-SWPU 计算机组成原理 3.2.3 指令的功能和类型 (4). 输入/输出指令(I/O指令) 寻找I/O接口中的寄存器的方式。 I/O端口 1)单独编址 →I/O专用指令 编址到设备:每个设备有各自的设备编码; 编址到寄存器:为每个寄存器(I/O端口)分配独立的端口地址 2)统一编址 →通用数据传送指令 I/O端口与主存单元统一编址 例 PDP-11、VAX-11 等计算机采用这种方式

3.2.3 指令的功能和类型 1)专用I/O指令 显式I/O指令 OUT PORT, SRC (PORT ) ← ( SRC ) 2009 SCS-SWPU 计算机组成原理 3.2.3 指令的功能和类型 1)专用I/O指令 汇编指令格式: IN DST, PORT ( DST ) ← ( PORT ) OUT PORT, SRC (PORT ) ← ( SRC ) 显式I/O指令 I/O端口与CPU之间的通信都通过IN和OUT指令实现 例如:intel系列机: IN和OUT指令只使用AX或AL寄存器 外设端口使用号在(00—FFH)之间直接使用端口号 端口号>255,使用间接端口寻址(预先把端口号放到DX寄存器) 例1: IN AL, 22H IN AX, 22H 例2:将端口1919H的一个字送入堆栈 MOV DX, 1919H IN AX, DX PUSH AX 主机用输出指令或传送指令将具体设备的控制命令按约定的代码格式送往接口中的控制寄存器,向外设发出命令。 外设的状态信息也以某种格式放在接口的状态寄存器中,主机用输入指令或传送指令从状态寄存器中取出有关信息进行查询、分析。 作用: I/O接口中设置控制寄存器 读取状态寄存器的信息

3.2.3 指令的功能和类型 2)传送指令实现I/O操作 如:某外设接口的三个寄存器,分别通过数据总线与CPU相连,总线地址如下 2009 SCS-SWPU 计算机组成原理 3.2.3 指令的功能和类型 2)传送指令实现I/O操作 I/O端口与主存单元统一编址,用传送指令访问I/O端口。 隐式I/O指令 格式: MOV n, Ri 输出指令 MOV Ri,n 输入指令 如:某外设接口的三个寄存器,分别通过数据总线与CPU相连,总线地址如下 数据寄存器 总线地址 FF00H 命令寄存器 总线地址 FF01H 状态寄存器 总线地址 FF02H 指令: MOV FF01H, R0 MOV R1, FF02H MOV R3, FF00H 的含义?

2009 SCS-SWPU 计算机组成原理 二、算术逻辑运算类指令 (1) 算术运算指令 主要有: ADD (加) 、 SUB (减) 、 INC (加1) 、 DEC (减1) 、 NEG (求补) 及 MUL(乘)、 DIV(除) (2) 逻辑运算指令 主要有: AND (与) 、 OR (或) 、XOR(异或)、 NOT(非)等 (3) 移位操作指令 算术左移: SAL (相当于乘以2) 算术右移: SAR (相当于除以2) 循环左移: ROL 循环右移: ROR

三、程序控制类指令 (1) 无条件转移指令 (2) 条件转移指令 例 8086计算机中的条件转移指令主要有: (3) 子程序调用指令 2009 SCS-SWPU 计算机组成原理 三、程序控制类指令 (1) 无条件转移指令 指令格式: JMP n ; n 是转移地址 (2) 条件转移指令 例 8086计算机中的条件转移指令主要有: JZ(为零转)、JNZ (不为零转) JC (有进位转)、 JNC (没有进位转) JS (为负转)、 JNS (不为负转) JO (有溢出转)、 JNO (没有溢出转) (3) 子程序调用指令 指令格式: CALL n ; n 是子程序入口地址 (4) 子程序返回指令 RET

2009 SCS-SWPU 计算机组成原理 作 业 课后作业: P184 2 3 4 5

第二章 自测练习 分析题:某机的指令格式如下所示 X为寻址特征位: X=00:直接寻址; X=01:用变址寄存器RX1寻址; 2009 SCS-SWPU 计算机组成原理 第二章 自测练习 分析题:某机的指令格式如下所示      X为寻址特征位: X=00:直接寻址; X=01:用变址寄存器RX1寻址; X=10:用变址寄存器RX2寻址; X=11:相对寻址     设(PC)=1234H, (RX1)=0037H, (RX2)=1122H (H代表十六进制数),请确定下列指令中的有效地址:      ①4420H    ②2244H    ③1322H    ④3521H

Thank You ! www.themegallery.com