590 likes | 770 Views
第6章 控制器部件. 指令:. 是指示计算机执行基本操作的命令 。. 指令也是用户使用计算机的最小功能单位。. 指令系统:. 一台计算机支持(或称使用)的全部指令构成该计算机的指令系统。. 由于指令与计算机的性能以及硬件结构密切相关,所以不同系列、不同型号的机器其 指令系统 可能是不一样的。. 本章主要介绍. 指令的基本格式 简单的寻址方式及应用 指令系统举例 控制器的基本组成. 操作数地址码. 操作码. 6.1 指令的格式. 1、机器指令和汇编指令. 任何一条机器指令由一组有意义的二进制代码构成,称为一个指令字。.
E N D
第6章 控制器部件 指令: 是指示计算机执行基本操作的命令。 指令也是用户使用计算机的最小功能单位。
指令系统: 一台计算机支持(或称使用)的全部指令构成该计算机的指令系统。 由于指令与计算机的性能以及硬件结构密切相关,所以不同系列、不同型号的机器其指令系统可能是不一样的。
本章主要介绍 • 指令的基本格式 • 简单的寻址方式及应用 • 指令系统举例 • 控制器的基本组成
操作数地址码 操作码 6.1 指令的格式 1、机器指令和汇编指令 任何一条机器指令由一组有意义的二进制代码构成,称为一个指令字。 其基本格式可划分成二个部分:
TEC-2的机器指令 0000010000010010 0000110000010010 0111010000110000 0010110000010000 用机器指令编写的程序是计算机惟一能够直接识别并执行的程序,称为机器语言程序。机器语言程序被称为目标程序(目标代码)。
机器语言的特点: • 机器直接执行。 • 其缺点是:与机器硬件直接相关,通用性差;编程不直观、难以记忆、使用很不方便。
以下两段程序一样吗? 101100000000000000000011 000001010000000000110000 001011000000000000000101 101100000000000000000011 001001010000000000110000 001011000000000000000101
为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用符号代替操作数的存放地址等,这样就形成了汇编指令。为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用符号代替操作数的存放地址等,这样就形成了汇编指令。 例:机器指令:0010110000100001 汇编指令:MOV R2,R1 用汇编指令编写的程序称为汇编源程序。
机器指令与汇编指令的关系 一条机器指令对应一条汇编指令。 用汇编指令编写程序就直观方便得多。 TEC-2的机器指令 汇编指令 0000010000010010ADDR1,R2 0000110000010010SUBR1,R2 0111010000110000 INCR3 0010110000010000MOVR1,0055 0000000001010101
汇编语言指令 机器指令代码 MOV R0,05 ADD R0,R3 … … 1000100111011000 … … … 程序员 汇编程序 执行 (翻译) 用汇编语言编写程序及执行的过程
汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。 汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。 机器语言、汇编语言、高级语言
目前广泛应用的高级语言有很多种 如: BASIC FORTRAN PASCAL C 等。 用高级语言编译的语句一般会产生多条机器指令。
例如:编程实现 123 加 456 → 求和
(1) 用C语言实现: Main () { int a, b, sum; a=123; b=456; sum=a+b }
(2) 用8086汇编语言 实现: a dw 123 b dw 456 sum dw ? Code segment assume CS: Code, DS:Code Main:mov ax,data mov ds,ax mov ax, a add ax, b mov sum , ax mov ax, 4c00h int 21h Main endp Code ends end main
(3) 用机器语言实现: 键入代码: -e cs:100 A1 0F 01 03 06 11 01 A3 13 01 B8 00 4C CD 21 为数据分配空间: -e ds:10F 7B 00 C8 01 00 00
操作数地址码 操作码 2、指令的基本格式 表明操作数存放的位 置,以便找到操作数完成指令的功能。 主要规定指令完成何种功能。
指令的操作码字段 指令的操作数字段 例如: TEC-2的机器指令 汇编指令 0000010000010010ADDR1,R2 0000110000010010SUBR1,R2 0111010000110000 INCR3 0010110000010000MOVR1,0055 0000000001010101 0055
(1)操作码 在指令系统中,每一条指令都有唯一确定的操作码。 分二种形式: 定长操作码 变长操作码
定长操作码形式 在指令字中,操作码字段的位数和位置是固定的。
例如: • TEC-2 机操作码是六位的: • 000000~111111 • 该指令系统最多可有多少条指令? • IBM 360/370 操作码是八位的: • 00000000~11111111 • 该指令系统最多可有多少条指令?
变长操作码形式 指令系统中,各指令的操作码字段位数不等长。
OP Mod Ri Mod Rj 四位 六位 六位 OP(7) Ri Mod Rj OP(10) Mod Rj OP(13) Rj 为增加操作码长度,采用 ——操作码逐段扩展技术 OP(16)
(2) 操作数地址码的设计 按照指令中地址码字段给出的地址个数的不同. 无地址指令(零地址指令) 一地址指令(单地址指令) 有四种情况: 二地址指令 多地址指令
TEC-2的机器指令 汇编指令 0000010000010010ADD R1,R2 0000110010001001SUB R8,R9 0111010000110000INC R3 0010110000010000 MOV R1,0055H 0000000001010101 000000XXXXXXXXXXNOP
6.2 指令的寻址方式 在指令的操作数地址字段,可能要指出: ① 运算器中的寄存器的编号或专用寄存器名称(编号)。 ② 输入/输出指令中用到的 I/O 设备的入出端口地址。 ③ 内存的一个存储单元(或一I/O设备)的地址 。
寻址方式:说明在指令中确定操作数地址的方法。寻址方式:说明在指令中确定操作数地址的方法。 不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程度和运行性能各不相同。
… 操作码寄存器编号 1、寄存器寻址 指令地址码字段给出某一通用寄存器的编号(地址),且所需的操作数就在这个寄存器中,这就是寄存器寻址方式; 例如: 0000110010001001SUBR8,R9 0111010000110000INCR3
2、存储器直接寻址 在指令的地址码字段直接给出所需的操作数(或指令)在存储器中的地址。 … 操作码存储器地址 操作数 内存储器 存储器地址为操作数在存储器中的地址。或转移指令等用到的指令地址。
操作码 0001 不用 0 0 0 01 0 0 00 0 0 00 0 0 0 存储器直接寻址举例: 例:MOV R1,[0800] 特点是什么?
3、寄存器间接寻址 若在寄存器中存放的是操作数在内存中所在单元的地址,这就是寄存器间接寻址方式
… 操作码寄存器号 例: 若寄存器号 = 5, 该寄存器中的内容为 7, 可记为 (R5) = 7 。 • 对寄存器寻址方式,操作数就是该寄存器的内容 7 。 • 对寄存器间接寻址方式,既从内存第7号单元中读出来的数才是操作数。
… 操作数 0000 … OP0101 … 0006 内存储器 0007 0008 0000 0000 0000 0111 R5 … 0 0 0 7 H … … … FFFF 寄存器间接寻址示意图
思考题 (1)寄存器寻址与寄存器间接寻址的不同点 操作数所在位置不同 指令执行的速度不同 (2)设计寄存器间接寻址的必要性 可有效缩短指令的长度 可方便程序处理的需要
4、立即数寻址 所需的一个操作数在指令的地址码部分直接给出。 … OPNum 则 Num 即为操作数的值。 适用于操作数固定的情况,提高了指令的执行速度。当该立即数的值限定为较小值(占用位数少)时,可在第一个指令字中直接给出,否则可在第二个指令字中给出。
0010110000010000 MOV R1,0055H 0000000001010101
6.3 指令的功能、类型 设计指令系统功能方面的基本要求: • 完整性:指令齐全,编程方便 • 高效性:占内存少,运行省时 • 兼容性:新旧机指令软件兼容
数据传送类指令 运算类指令 程序控制指令 输入输出指令 特权指令 指令系统的完整性应包含以下类型指令:
教学计算机TEC-2指令系统简介 • 数据传送类指令 • 运算类指令 • 程序控制指令 • 其他指令
数据传送类指令 (1)寄存器之间的传送 MOV DR,SR 例如: MOV R0,R9 ;将R9→R0 (2)寄存器与存储器之间的传送 MOV DR, [ADR] MOV DR, [SR] MOV [DR],SR MOV [ADR],SR
运算类指令 ADD DR,SR ;DR+SR→DR ADC DR,SR ;DR+SR+CF→DR SUB DR,SR ;DR-SR→DR SBB DR,SR ;DR+SR-CF→DR CMP DR,SR ;DR-SR ,影响标志位 INC DR ;DR +1→DR DEC DR ;DR-1→DR MUL SR ;无符号乘 DIV SR ;无符号除
汇编指令 功能 AND DR, SR ;DR←DR and SR OR DR, SR ;DR←DR or SR XOR DR, SR ; DR←DR⊕SR TEST DR, SR ;DR ﹠ SR
MOV R0,88 MOV R1,R0 MOV R2,0F AND R0,R2 OR R1,R2 XOR R2,R2 请思考:以上几条指令执行以后,R0、R1、R2的值是什么呢?
在TEC-2 中的移位指令有: SHL DR ; 将DR的内容逻辑左移一位 SHR DR ; 将DR的内容逻辑右移一位 ASR DR ; 将DR的内容算术右移一位 RCL DR ; 将DR的内容循环左移一位 RCL DR ; 将DR的内容循环右移一位 例: MOV R0, 0F MOV R1, R0 SHL R0 SHR R1 RCR R1 请思考:以上几条指令执行后,R0、R1以及CF的值是什么?
R0←0 R1←1 R2←10 R0+R1→R0 R1+1→R1 R2-1→R2 N R2=0? Y 结束 例题:计算 1+2+3+ …+10的和,并将结果保存在R0寄存器中。 800: MOV R0,0 802: MOV R1,1 804: MOV R2,A 806: ADD R0,R1 807: INC R1 ;R1+1→R1 808: DEC R2 ;R2-1→R2 809: JP NZ, 806 ;若R2不为0,则转806 80A: RET
一、控制器的功能 现代计算机工作的本质是什么? 执行程序,完成程序功能。 程序是什么? 依次排列起来的指令代码。 控制器是计算机系统的核心,它把运算器、存储器、输入输出设备等部件组成一个有机制整体,然后根据指令的要求指挥全机工作。 6.5 控制器的功能和组成概述
所以控制器的功能在于: • 对指令的控制:计算机的工作过程是连续执行指令的过程,控制器应能保证动态指令流的形成。 • 时序控制:产生固定的时序信号,以保证全机各部件有节奏的工作。 • 操作控制:依据指令内容、指令的执行步骤,形成并提供当前各部件本时刻要用到的全部控制信号。
总线 PC IR PSW MAR … ID 时序控 ALU 制电路 MDR 主存 … … A 暂存器 暂存器B 控制信号产生部件 R0 … : 部分 发往全机各 ︰ R15 中断逻辑 各主要部件连接框图
二、控制器的组成 1. PC:程序计数器(Programming Counter) 用来存放将要执行的指令的地址。其内容分两种情况: ① 顺序执行的情况,PC的值应自动修正,加一个增量。 PC+△→PC ② 转移执行的情况,将转移的目标地址送PC. 2. IR:指令寄存器(Instruction Register) 用来存放从存储器中取出的指令。