计算机组成原理4.1 指令系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3) 指令字长度
机器指令的二进制序列的位数。
定长指令变长操作码
变长指令定长操作码
a. 定长指令变长操作码
该种形式是将操作码的设计与地址码的 设计作为一个整体考虑,以形成高效合理的 指令编码。 例:某机指令系统,指令字为16位固定长, 要求有3地址指令、2地址指令、1地址指 令和0地址指令,每个地址码4位。应如何 设计?
操作码

存储器地址 操作数 内 存 储 器
存储器地址为操作数在 存储器中的地址。或转移 指令等用到的指令地址。
例:MOV R1,[0800] 操作码 0001 不用
0000100000000000
特点是什么? 简单直观,执行速度快。
编程不灵活,访问空间有限。
2)寄存器寻址
指令地址码字段给出某一通用寄存器的 编号(地址),且所需的操作数就在这个寄存 器中,这就是寄存器寻址方式。
Code segment assume CS: Code, DS:Data Main endp Code ends Main:mov ax,data mov ds,ax end main mov ax, a
(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
汇编语言指令
MVRR R0,R1
机器指令代码
1000100111011000
程序员
ADD R0,R3 … …
汇编程序
… … …
执行
(翻译)
用汇编语言编写程序及执行的过程
高级语言
汇编语言虽然较机器语言直观,但仍然烦 琐难懂。于是人们研制出了高级程序设计语言。
高级程序设计语言接近于人类自然语言的语法
第4章 指令系统和控制器部件
4.1 指令系统 4.2 控制器部件
指令:
是指示计算机执行基本操作的命令。 指令也是用户使用计算机的最小功能单 位。 从计算机组成的层次结构来说,计 算机的指令有微指令、机器指令和宏指 令之分。
微指令:是微程序级的命令,它属于硬件; 宏指令:是由苦干条机器指令组成的软件指令, 它属于软件; 机器指令:则介于微指令与宏指令之间,通常 简称为指令。每一条指令可完成一个独立的算 术运算或逻辑运算操作。 本章所讨论的指令是机器指令。
Rj
Rj Rj
OP(13) OP(16)
变长操作码的特点
优点:可方便扩充指令系统有利于缩短指令 操作码的平均长度。 缺点:指令译码的控制复杂,硬件电路复杂。
2) 地址码的设计和安排
按照指令中地址码字段给出的地址的个 数的不同, 无地址指令(零地址指令) 一地址指令(单地址指令)
有四种情况: 双地址指令
单字指令仅用一个指令字。
双字指令要用两个指令字, 此时第二个指 令字的内容可能是立即数、一个绝对地址或 一个变址位移量。
Th-union的机器指令 0000000000010010 0000000100010010 0000100100110000 1000100000010000 0000000001010101
操作码

寄存器编号
例如: 0000110010001001 0111010000110000
SUB R8,R9 INC R3
• 执行阶段不访存,只访问寄存器,执行速度快。 • 寄存器个数有限,可缩短指令字长。
3)间接寻址方式
a.通过寄存器的间接寻址方式 若寄存器中存放的是操作数在内存中所在 单元的地址,这就是寄存器间接寻址方式。 OP … Reg No
指令系统:
一台计算机支持(或称使用)的全部指令的 集合构成该计算机的指令系统。 由于指令与计算机的性能以及硬件结构密 切相关,所以不同系列、不同型号的计算机其 指令系统是不一样的。
4.1 指令系统
指令的基本格式 指令格式的优化 寻址方式 指令系统举例
Th-union汇编语言程序设计
一、指令的格式
汇编指令 ADD R1,R2 SUB R1,R2 INC R3 MVRD R1,0055
思考:
设某机型需设计 100条指令。试确定 以下两种操作码设计方案的操作码长度。
1)采用定长操作码格式。 2)采用扩展操作码法。(设10℅的指令使 用频度为90℅)
二、寻址方式
寻址方式:指的是确定本条指令的数据地址 及下一条要执行的指令地址的方法。 不同的计算机系统,使用数目和功能不 同的寻址方式,其实现的复杂程度和运行性 能也各不相同。
为了克服机器语言的缺点,人们采用助记 符表示机器指令的操作码,用符号代替操作数 的存放地址等,这样就形成了汇编指令。 例:机器指令: 0000011100100001
汇编指令: MVRR
R2,R1
用汇编指令编写的程序称为汇编源程序。
一条机器指令对应一条汇编指令。用汇编 指令编写程序就直观方便得多。
c. 双地址指令
格式:
操作码 地址码1 地址码2
地址码1既是源操作数的地址,也是目 的操作数的地址。 双操作数在运算类、传送类指令中使用 较多。 ADD DR, SR
d. 多地址指令
格式1: 格式2:
操作码 地址码1 地址码2 地址码3
操作码
地址码1
地址码2
地址码3
地址码4
特点:操作完成后源操作数的内容不被破坏, 用户编程方便。严重的缺点是指令字较长。
1、机器指令
任何一条机器指令由一组有意义的二进制 代码构成,称为一个指令字。
0000000000010010 0000000100010010
用机器指令编写的程序是计算机惟一能够 直接识别并执行的程序,称为机器语言程序。 机器语言程序被称为目标程序(目标代码)。
机器语言的特点
机器直接执行,速度快。 缺点:与机器硬件直接相关,通用性差; 编程不直观、难以记忆、使用很不方便。

~ ~ ~
(3地址指令15条) (2地址指令15条)
8位操 作码
12位操 作码
(1地址指令15条)
(0地址指令16条)
16位操 作码
练习: 设某机为定长指令字结构,指令长度12位, 每个地址码占3位,试提出一种方案,使该系 统包含4条三地址指令,8条二地址指令, 180 条单地址指令。 另:能否构成三地址指令4条,单地址指 令 255条,零地址指令64条呢?
多地址指令
Th-union的机器指令 0000000000010010 0000000110001001 0000100100110000 1000100000010000 0000000001010101
汇编指令 ADD SUB INC MOV R1,R2 R8,R9 R3 R1,0055H
a. 无地址指令(零地址指令)
2500 1100 ...
跳跃寻址 顺序寻址
2、数据寻址
通常需要在指令中为每一个操作数专设一个地址字 段,用来表示数据的来源或去向的地址。
在指令中给出的操作数的地址被称为形式地址,使 用形式地址信息并按一定的规则计算出来的一个数值 才是数据(或指令)的实际地址。
操作码 寻址特征 形式地址 A
约定
指令字长 = 存储字长 = 机器字长
设计方案为:
三地址指令采用4位操作码 0000 ~ 1110 双地址指令采用8位操作码 11110000 ~ 11111110 一地址指令采用12位操作码 111111110000 ~ 111111111110 无地址指令采用16位操作码 1111111111110000 ~ 1111111111111111
b. 变长指令定长操作码
指令字的长度与机器字长没有固定的关系。 例:IBM360/370 指令的操作码是8位的, 指令字为16位、32位、48位。
TH-union
指令的操作码是8位的, 指令字为16位.
Th-union的指令格式
8位 操 作 码 4位 4位 目的寄存器 源寄存器 I/O 端口地址 条件转移指令的偏移量 直接数 / 内存地址 / 指令中变址偏移量
例如:
Th-union操作码是八位的: 00000000~11111111 该指令系统最多可有256条指令。 IBM 360/370 操作码是八位的: 00000000~11111111 该指令系统最多可有多少条指令? 256
IBM 360/370 计算机的指令格式
RR型 RX型 RS型
SI型 SS型 8 4 4 OPC R1 R2 8 4 4 4 OPC R1 X2 B2
三种语言编写程序占用字节数
程序设计语言
高级语言( C ) 汇编语言
可执行程序占用字节数
CSUM.EXE ASMSUM.COM MACHINE.COM
4330 21
机器语言
21
2. 指令的基本格式
任何一条机器指令由一组有意义的二进制 代码构成,称为一个指令字。 其基本格式可划分成二个部分:
操作码
操作数地址码
指令的操 作数字段 汇编指令 ADD R1,R2 SUB R1,R2 INC R3 MVRD R1,0055
0
0
5
5
1)操作码
在指令系统中,每一条指令都有唯一确定 的操作码。 定长操作码 分二种形式: 变长操作码
a. 定长操作码形式
在指令字中,操作码字段的位数和 位置是固定的。 早期的计算机一般采用定长操作码 的设计,控制简单,且对操作码的译码 实现容易。
格式: 操作码
指令不需要任何操作数。 有二种情况:
例:NOP、HALT
操作数为隐含的,或操作数 地址是默认的。
例:PUSHF、POPF
b. 一地址指令(单地址指令)
格式:
操作码 地 址 码
只有一个地址码,用于单操作数指令。 例:INC、SHL、JMP、CALL 或者双操作数指令,但其中一个操作数的 地址为默认值。 例:MUL、DIV
1、指令寻址
顺序 跳跃
PC +1
( PC ) + 1
由转移指令指出
指令地址
0 1 1 2 2 3 3 4 5 6 7 7 8 8 9
PC
指令
LDA ADD DEC JMP LDA SUB INC STA LDA 1000 1001 1200 7 2000 2001 指令地址寻址方式 顺序寻址 顺序寻址 顺序寻址
在指令的操作数地址字段,可能要指出:
运算器中寄存器的编号或专用寄存器名称(编号) 输入/输出指令中I/O 设备的输入输出端口地址
内存储器的一个存储单元(或一I/O设备)的地址
在计算机的指令系统中,会有多种基本寻 址方式和某些复合寻址方式,简介如下:
1)直接寻址
在指令的地址码字段直接给出所需的操作数 (或指令)在存储器中的地址。
习惯,与计算机硬件无关,易被用户掌握和使
用。
例如:编程实现 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 ?
add ax, b mov sum , ax mov ax, 4c00h int 21h
规定指令完成 何种功能。
表明操作数存放 的位置,以便找 到操作数完成指 令的功能。
指令的操 例如: 作码字段 Th-union的机器指令 0000000000010010 0000000100010010 0000100100110000 1000100000010000 0000000001010101
Ri:通用寄存器
12 D2 12 D
Xi:变址寄存器
Bi:基址寄存器 Di:位移量 I: 立即数 L: 数据的长度
8 4 4 4 OPC Rn Rm B
8 4 4 12 OPC I2 B1 D2 8 8 4 12 OPC L B1 D1
4 B2
12 D2
定长操作码的特点
优点:有利于简化硬件设计,提高 指令译码的速度和指令执行的速度。 缺点:限制了指令系统的扩充、 不 利于缩短指令的长度,存在有很大程度 的信息冗余 。
b. 变长操作码形式
指令系统中,各指令的操作码字段位数 不等长。 例:PDP-11小型机的指令系统 其指令长度为16位,操作码字段的长度 有4、7、10、13、16等不同的情况。
为增加操作码长度,采用
—— 操作码逐段扩展技术
OP
四位
Mod
六位
Ri
Mod
六位
Rj
OP(7)
OP(10)
Ri
Mod
Mod
4ຫໍສະໝຸດ Baidu操 作码
0000 XXXX XXXX XXXX 1110 XXXX XXXX XXXX 1111 0000 XXXX XXXX 1111 1110 XXXX XXXX 1111 1111 0000 XXXX 1111 1111 1110 XXXX 1111 1111 1111 0000 1111 1111 1111 1111
相关文档
最新文档