指令系统

合集下载

第四章 指令系统[一]

第四章  指令系统[一]

译码开始
4:16译码器 : 译码器
4:16译码器 : 译码器
4:16译码器 : 译码器
4:16译码器 : 译码器

15条三地址指令 15条三地址指令

14条二地址指令 14条二地址指令

31条一地址指令 31条一地址指令

16条零地址指令 16条零地址指令
图4.1 指令译码逻辑图

注意事项: 注意事项: • 短操作码不能与长操作码 的前面代码部分相同; 的前面代码部分相同; • 各指令的操作码一定不能重复,而且各类指令的 各指令的操作码一定不能重复, 格式安排应统一规整. 格式安排应统一规整.
例1(P151.题2):假设某计算机指令长度为20位,具有双操作 1(P151.题2):假设某计算机指令长度为20位 假设某计算机指令长度为20 单操作数、无操作数三类指令形式, 数、单操作数、无操作数三类指令形式,每个操作数地址 规定用6位表示, 规定用6位表示,问: 若操作码字段固定为8 现设计出m条双操作数指令,n 若操作码字段固定为8位,现设计出m条双操作数指令,n 固定为 条无操作数指令,在此情况下, 条无操作数指令,在此情况下,这台计算机最多可以设计出 多少条单操作数指令? 多少条单操作数指令? 解 : 2 8 - m - n条
(1) 三个容易混淆的基本概念
• 指令字长:一条指令中包含二进制代码的位数. 指令字长:一条指令中包含二进制代码的位数. • 存储字长:存储单元中二进制数的位数. 存储字长:存储单元中二进制数的位数. • 机器字长:计算机能直接处理的二进制数据的 机器字长: 位数,通常与主存单元的位数一致. 位数,通常与主存单元的位数一致.
例:设某机器的指令字长为16位,包括基本操作码4位 设某机器的指令字长为16位 包括基本操作码4 16 和三个地址字段,每个地址字段长4 其格式为: 和三个地址字段,每个地址字段长4位,其格式为: 15 12 11 A1 OP 8 7 A2 4 3 A3 0

第5章 指令系统

第5章  指令系统

1.立即寻址方式
寻找的操作数紧跟在指令操作码之后,也就是说 地址码字段存放的不是操作数的地址,而是操作 数本身。 立即寻址方式的特点是:指令执行的时间很短, 因为不需要访问存储器获取操作数,从而节省了 访问存储器的时间;立即寻址方式的使用范围很 有限,主要用于给寄存器赋初值。 【例5-1】 MOV AX,67 指令执行后,(AX)=67。
操作的示意图如下图所示,这条指令的执行结果为 (AX)=3412H。

存储器 操作码 操作码 AX 00H 代码段 位 移 DISP 量
01H 20000H
201A0H 12H 34H
数据段
6.基址变址寻址

操作数的偏移地址是一个基址寄存器(BX、BP) 和一个变址寄存器(SI、DI)的内容之和。基址 变址寻址方式的格式表示为:[基址寄存器名][变 址寄存器名]或[基址寄存器名+变址寄存器名]。操 作数默认位于那个段中,是由指令中使用的基址 寄存器决定的,如果指令中指定的基址寄存器是 BX,则操作数默认在数据段中,取DS寄存器的 值作为操作数的段地址值;如果指令中指定的基 址寄存器是BP,则操作数默认在堆栈段中,取SS 寄存器的值作为操作数的段地址值,从而计算得 操作数的20位物理地址,继而访问到操作数。
每条指令由两部分组成:操作码字段和地
址码字段。格式如图5-1所示:操作码操作 数(地址码)
操作码 操作数(地址码)
图5-1 指令格式
操作码字段:用来说明该指令所要完成的操作。 地址码字段:用来描述该指令的操作对象。一般是直接给 出操作数,或者给出操作数存放的寄存器编号,或者给出操作 数存放的存储单元的地址或有关地址的信息。 根据地址码字段所给出地址的个数,指令格式可分为零地 址、一地址、二地址、三地址、多地址指令。大多数指令需要 双操作数,分别称两个操作数为源操作数和目的操作数,指令 运算结果存入目的操作数的地址中去。这样,目的操作数的原 有数据将被取代。

第4章 指令系统

第4章 指令系统

3. 规整性
规整性包括指令系统的对称性,匀齐性,指令 格式和数据格式的一致性.对称性是指:在指 令系统中所有的寄存器和存储器单元都可同等 对待,所有的指令都可使用各种寻址方式.匀 齐性是指:一种操作性质的指令可以支持各种 数据类型.
4.兼容性 兼容性
系列机各机种之间具有相同的基本结构和共 同的基本指令集,因而指令系统是兼容的,即 各机种上基本软件可以通用.但由于不同机种 推出的时间不同,只能做到"向上兼容" .
目前在指令操作码设计上主要采用以下两 种编码方式 1. 固定长度操作码 操作码的长度是固定的,且集中放在 指令字的一个字段中,指令的其余部分全 部用于地址码.例如IBM370机和VAX-11系 列机,操作码的长度均为8位,可表示256 种不同的操作. 2. 可变长度操作码
4.2.2 地址码
地址码用于指定操作数和存放运算结果的地址, 通常称为操作数.操作数可以是一个直接的数或者 是一个数据所在的地址,它以空格与操作码分开.
例如: MOV AX,[SI]
假如用户用高级语言编程,根本不用 考虑寻址方式,因为这是编译程序的事,但 若用汇编语言编程,则应对它有确切的了解, 才能编出正确而又高效的程序.此时应认真 阅读指令系统的说明书,因为不同计算机采 用的寻址方式是不同的,即使是同一种寻址 方式,在不同的计算机中也有不同的表达方 式或含义. 思考:设计指令系统时,数据的寻址方式 越多越好吗?为什么?
4.直接寻址 指令中的形式地址A就是操作数的真实 地址EA,这种寻址方式称为直接寻址方式, 又称为绝对寻址方式.如图5-3所示.
OP 寻址特征 A 主存 A 操作数
图5-3 直接寻址方式
例如: MOV AL,[0080H] MOV AX,[1000H]

《计算机组成原理》教程第4章指令系统

《计算机组成原理》教程第4章指令系统

4
二 指令的格式
即指令字用二进制代码表示的结构形式
包括 操作码:操作的性质 操作码 地址码:操作数(operand)的存储位置,即参加操作的 operand , 地址码 数据的地址和结果数的地址
操作码域(op) 地址码域(addr)
5
1.操作码 操作码
指令的操作码表示该指令应进行什么性质的操作。 组成操作码字段的位数一般取决于计算机指令系统的 规模。 固定长度操作码:便于译码,扩展性差 . 可变长度操作码:能缩短指令平均长度 操作码的的位数决定了所能表示的操作数,n位操 作码最多表示2n种操作
(2). 堆栈工作过程 .
(一)进栈操作 ① 建立堆栈,由指令把栈顶地址送入SP,指针 指向栈顶。 ② 进栈:(A)→Msp, (sp)-1→SP ;Msp:存储 器的栈顶单元 (二)出栈操作 (SP)+1→SP, (Msp)→A
22
五.指令类型
一个较完善的指令系统应当包括: 数据传送类指令: 例)move、load、store等 算术运算类指令: 例)add、sub、mult、div、comp等 移位操作类指令: 例) shl,shr,srl,srr 逻辑运算类指令: 例)and、or、xor、not等 程序控制类指令: 例)jump、branch、jsr、ret、int等 输入输出指令: 例)in、out等 字符串类指令: 例)如alpha中cmpbge、inswh、extbl等 系统控制类指令: 例)push、pop、test等
18
10) *段寻址方式 段寻址方式 Intel 8086 CPU中采用了段寻址方式(基址寻址的特例)。 由16位段寄存器和16位偏移量产生20位物理地址 11)*自动变址寻址 自动变址寻址 指在变址方式中,每经过一次变址运算时,都自动改变变址寄存 器的内容,以后在PDP-11中详讲.

第4章 指令系统

第4章  指令系统
度和数据长度有一定的关系,以方便处理和
存取。
二、对指令系统性能的要求三
4、兼容性:
系列机各机种之间具有相同的基本结 构和共同的基本指令集,因而指令系统是 兼容的,即各机种上基本软件可以通用。但 由于不同机种推出的时间不同,在结构和性 能上有差异,做到所有软件都完全兼容是不 可能的,只能做到“向上兼容”,即低档机 上运行的软件可以在高档机上运行。
a、CISC:70年代后,大多数计算机的指 令系统多达几百条。我们称这些计算机 为复杂指令系统计算机(CISC)。
b、RISC:但是如此庞大的指令系统难以 保证正确性,不易调试维护,造成硬件 资源浪费。为此人们又提出了便于LSI技 术实现的精简指令系统计算机(RISC) 返回
二、对指令系统性能的要求一
4.4、指令和数据的寻址方式
一、指令的寻址方式 二、操作数寻址方式
三、寻址方式举例
一、指令的寻址方式一
1、寻址方式:形成操作数有效地址或指令 有效(偏移)地址的方式。 2、寻址方式分为两类,既指令寻址方式和 数据寻址方式。 3、指令的寻址方式有两种,一种是顺序寻 址方式,另一 种是跳跃寻址方式。 4、操作数或指令在存储器中的地址:某个 操作数或某条指令存放在某个存储单元 时,其存储单元的编号就是地址。请看 图示
答案:
退 出 上一页 下一页 上一节 下一节 返回节目录
例三答案:
三、低级语言与硬件结构的关系
高级语言 低级语言
Visual c++、foxpro、java
与软件结构和指令系统无关 编写的程序可在不同机器上 运行
汇编语言、二进制语言
与机器、指令系统密切相关 编写的指令系统不同,不同
机器用不同汇编语言编写程 序,机器唯一可识别的是二

计算机组成原理-第4章_指令系统

计算机组成原理-第4章_指令系统

7. 段寻址方式(Segment Addressing)
方法:E由段寄存器的内容加上段内偏移地址而形成。
应用:微型机采用段寻址方式,20位物理地址为16位 段地址左移四位加上16位偏移量。
分类:① 段内直接寻址; ② 段内间接寻址; ③ 段间直接寻址; ④ 段间间接寻址;
9 堆栈寻址方式
堆栈:是一组能存入和取出数据的暂时存储单元。
*** 指令字长度
概念 指令字长度(一个指令字包含二进制代码的位数) 机器字长:计算机能直接处理的二进制数据的位数。 单字长指令 半字长指令 双字长指令
多字长指令的优缺点
优点提供足够的地址位来解决访问内存任何单元的寻址问题 ; 缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的运 算速度,又占用了更多的存储空间。
*** 指令系统的发展与性能要求
*** 指令系统的发展
指令:即机器指令,要计算机执行某种操作的命令。
指令划分:微指令、机器指令和宏指令。
简单
复杂
指令系统:一台计算机中所有指令的集合;是表征
计算机性能的重要因素。
系列计算机:基本指令系统相同、基本体系结构相同 的一系列计算机。
*** 对指令系统性能的要求
(2)立即数只能作为源操作数,立即寻址主要用来给寄存 器或存储器赋初值。以A~F开头的数字出现在指令中时,前 面要加0。
(3)速度快(操作数直接在指令中,不需要运行总线周期)
(4)立即数作为指令操作码的一部分与操作码一起放在代 码段区域中。
(5)指令的长度(翻译成机器语言后)较长,灵活性较差。
【例】MOV AX, 10H 执行后(AX)=? 其中:这是一条字操作指令,源操作数为立即寻址 方式,立即数为0010H,存放在指令的下两个单元。

课件:软件工程--05指令系统

课件:软件工程--05指令系统

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
五、操作码编码
操作码的编码有两种方式 - Fixed Length Opcodes (定长操作码法) - Expanding Opcodes (扩展操作码编法)
ADD D + ( N -1 ) DIV # N STA ANS 共 N + 2 条指令
LDA # 0 LDX # 0 M ADD X, D INX CPX # N BNE M DIV # N STA ANS 共 8 条指令
X 为变址寄存器 D 为形式地址 (X) +1 X (X) 和 #N 比较 结果不为零则转
10. 堆栈寻址
(1) 堆栈的特点 硬堆栈
堆栈 软堆栈
多个寄存器 指定的存储空间
先进后出(一个入出口) 栈顶地址 由 SP 指出
进栈 (SP)– 1 SP 出栈 (SP)+ 1 SP
SP
1FFFH 2000 H
12F0F0F0 H
–1
进栈
栈顶 栈顶
SP
1FFFH 2000 H
12F0F00F HH
无条件转移;……
二、操作数类型
地址
无符号整数
数字 定点数、浮点数、十进制数 位、位串、字符和字符串 ASCII 逻辑数 逻辑运算
三、寻址方式
确定 本条指令 的 操作数地址
数据寻址
下一条 欲执行 指令 的 指令地址 指令寻址 • 指令的寻址——简单

计算机组成原理(白中英)第4章指令系统

计算机组成原理(白中英)第4章指令系统

计算机组成原理(白中英)第4章指令系统指令系统概述寻址方式指令系统20XX年3月15日10时45分概述指令:是指示计算机某种操作的命令。

微指令,机器指令,宏指令指令系统:一台计算机中所有机器指令的集合。

它是机器硬件设计的依据,也是软件设计的基础。

它决定了一台计算机硬件的主要性能和基本功能。

是硬件和软件间的界面。

系列计算机:有共同的指令集,相同的基本体系结构。

CISC和*****X年3月15日10时45分2一个完善的指令系统应满足:1.完备性:指令丰富,功能齐全,使用方便。

1.完备性:指令丰富,功能齐全,使用方便。

完备性 2.有效性程序占空间小,执行速度快。

有效性: 2.有效性:程序占空间小,执行速度快。

3.规整性对称性,匀齐性,规整性:3.规整性:对称性,匀齐性,指令格式和数据格式的一致性。

据格式的一致性。

4.兼容性兼容性:4.兼容性:向上兼容”----系列机中低档机上运行“向上兼容”----系列机中低档机上运行的软件可以在高档机上运行。

的软件可以在高档机上运行。

20XX年3月15日10时45分计算机语言与硬件结构的关系高级语言的语句和用法与具体机器的指令系统无关;低级语言分机器语言和汇编语言,他们和具体机低级语言分机器语言和汇编语言,器的指令系统密切相关。

器的指令系统密切相关。

汇编语言与硬件的关系密切,编写的程序紧凑、汇编语言与硬件的关系密切,编写的程序紧凑、占内存小、速度快,占内存小、速度快,特别适合与编写经常与硬件打交道的系统软件;打交道的系统软件;而高级语言不涉及机器的硬件结构,通用性强、编写程序容易,件结构,通用性强、编写程序容易,特别适合与编写与硬件没有直接关系的应用软件。

编写与硬件没有直接关系的应用软件。

20XX年3月15日10时45分4概述机器指令的要素C C C C 操作码源操作数目的操作数下一条指令的引用指令字(简称指令)即表示一条指令的机器字。

指令字(简称指令)即表示一条指令的机器字。

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

DI
PA SS 16 BP
例:
MOV AX,NUM [BX] MOV BX,CCC [BP]
位移量
;(DS×16+BX+NUM) →AX ;(SS×16+BP+CCC) →BX
23/192
例: MOV AX, COUNT[SI] 或 MOV AX, [COUNT+SI]
假设:DS=3000H, SI=2000H, COUNT=3000H
段寄存器名如何指定
段寄存器名可以缺省,这时使用默认约定的段寄存器 段寄存器名可以特别指定,用于跨越段访问,但也要遵循一定的规则
偏移地址如何指定
11/192
段基址和偏移量的约定情况
段寄存器名:偏移地址
操作类型
1.指令
2.堆栈操作
数 3.普通变量
据 4.字符串指令的源

串地址
作 5.字符串指令的目
物理地址计算:
PA DS 16 BX
PA SS 16 BP
SI
DI
SI
DI
例:MOV AX,[BX][SI] 或MOV AX,[BX+SI] (DS×16+BX+SI) →AX
25/192
基址变址寻址方式执行情况
DS BX +
SI +
AL AH
26/192
[基址+变址*比例因子+位移量],同时有基址、变址、位
(3)变址(index)存放在变址寄存器中的内容
它通常用来指定数组中的某个元素或字符串中的某个字 符
(4)比例因子(scale factor)是386及其后继机
型新增加的寻址方式中的一个术语
其值可为1,2,4或8 在寻址中,可用变址寄存器的内容乘以比例因子来取得
变址值
这类寻址方式对访问元素长度1、2、4、8字节的数组特别有用
5/192
操作数通常保存在
(1) 指令中
MOV AX, 2000H
(2) CPU的寄存器中 MOV AX, BX
(3) 内存单元中
MOV AX, [2000H]
(4) I/O接口寄存器中 IN AH, 20H
6/192
3.1 80X86寻址方式
机器指令格式:
OP dst, src
OP 操作码 src 源操作数 dst 目的操作数
MOV AH, 3064H
AX
OP 64 30

8/192
2.寄存器寻址方式
寄存器寻址方式* —— 操作数在指定的寄存器中
MOV AL, BH MOV AX, BX MOV EAX, EBX
* 字节寄存器只有 AH AL BH BL CH CL DH DL * SRC 和 DST的字长一致
MOV AH, BX
再加上段基地址,得到操作数在内存中的物理地址 然后对存放在内存的操作数进行存取操作
定为数据段DS 物理地址计算公式: PA = DS × 16 + EA
如果数据存放在其他段如附加数据段ES(代码段CS,堆 栈段SS),偏移量XXXX处
操作数地址表示为ES:[XXXX]
对应的指令,如 MOV BX,ES:[100H]
操作数物理地址计算时也要采用ES段 物理地址计算公式如下: PA = ES × 16 + EA
CPU依靠机器指令来计算和控制系统 每款CPU在设计时就规定了一系列与其硬件电路相配合的指令集
指令系统决定了计算机能执行的全部基本操作。要使计 算机完成一个特定的任务,就要告诉计算机按照怎样的 顺序执行一个个基本操作(指令),这个具有约定顺序 的一条条指令构成程序
3/192
常见的指令格式
指令: 操作码 操作数1 ... 操作数n
若工作在实模式:段基址为段寄存器中的内容乘以16的值
段基地址= 段寄存器 × 16D
段基地址= 段寄存器 × 10H
若工作在保护模式:段基址通过段寄存器中的段选择子从描述符
中得到
16 位 段 地 址
0000
+
指令中给出的操作数逻辑地址格式为 段寄存器名:偏移地址
16 位 偏 移 地 址 20 位 物 理 地 址
第三章 指令系统和寻址方式
3.1 80X86寻址方式 3.2 80X86机器语言指令概况 3.3 80X86指令系统
1/192
本章目标
了解计算机的一般指令格式 掌握80X86CPU寻址方式 掌握80X86CPU指令系统 熟练掌握80X86CPU常用指令功能
2/192
计算机的一般指令格式
指令系统:一组指令集。计算机所能执行的所有指令的 集合就是指令系统
有效地址EA的四种成分: 基址、变址、比例因子、位移量
(1)位移量(displacement)是指令中指定 的一个8位、16位或32位的数,它不是立即数 而是一个地址的位移量
13/192
基址、变址、比例因子、位移量
(2)基址(base)是存放在基址寄存器中的内容
它是有效地址中的基址部分,通常用来指向数据段中数 组或字符串的首地址
14/192
段寄存器名:有效地址
有效地址的计算
有效地址的用下式计算
EA=基址+(变址*比例因子)+位移量
在这4个成分中,除比例因子是固定值外,其他3个成分的数值 都可正可负,以保证指针移动的灵活性。
注意:
8086/80286只能使用16位有效地址寻址 80386及其后继机型既可用32位有效地址寻址,也可用16位有
20/192
[基址+变址*比例因子+位移量],只有基址或变址情况 EA= [基址]或EA=[变址]
4.寄存器间接寻址方式
操作数存放在存储器单元中 16位的操作数偏移地址EA在指令指定的基址寄存器BX、
BP或变址寄存器SI、DI中 EA=指定寄存器内容
物理地址的计算如下:
PA = DS × 16 + BX (或者SI、 DI) PA = SS × 16 + BP
例: MOV dst, src 把src送到dst
7/192
3.1.1 与数据有关的寻址方式
存储器

1.立即寻址方式
OP
立即寻址方式 —— 操作数在指令中给出
AL
05
MOV AL, 5
指令
MOV AX, 3064H
操作数

MOV EAX, 88663064H (1) 立即
存储器

* 经常用于给寄存器赋初值 * 只能用于SRC字段 * SRC 和 DST的字长一致
21/192
例. MOV AX,[BP] ;(SS:[BP])→AX • 若SS= 2000H,BP=0080H 存储单元(20080H)= 12H 存储单元(20081H)= 56H • 则物理地址 = 10H ×SS+BP = 20080H • 该指令的执行结果是 AX= 5612H
22/192
[基址+变址*比例因子+位移量],基址或变址+位移量情况 EA=[基址+位移量]或EA=[变址+位移量]
5.寄存器相对寻址方式
操作数存放在存储器的单元中,操作数的偏移地址 由指令指定的寄存器BX、BP、SI、DI和指令中给定 的位移量相加得到
物理地址计算:
BX
PA
DS
16
SI
位移量
效地址寻址
15/192
表3.1:16/32位有效地址 寻址时有4种成分组成
16位寻址
32位寻址
位移量 基址寄存器
变址寄存器
比例因子
0,8位,16位 BX,BP
SI,DI

0,8位,32位
任何32位通用寄存器 (包括ESP)
除ESP以外的32位通用 寄存器
1,2,4,8
EA=基址+(变址*比例因子)+位移量
移量情况
EA=[基址+变址+位移量]
7.相对基址变址寻址方式
操作数存放在存储器的单元中,操作数的偏移地址由指令 指定的基址寄存器(BX、BP)和变址寄存器(SI、DI)以 及位移量相加
物理地址计算:
PA
DS 16 BX
SI
DI
位移量
PASS 16 BP源自SIDI位移量
MOV AX, MASK[BX][SI],MOV AX, MASK[BX+SI],
(35000H)=1234H 那么: EA = SI+COUNT=2000+3000 = 5000H

PA = 30000+5000 = 35000H AX=1234H
24/192
[基址+变址*比例因子+位移量],同时有基址和变址情况 EA=[基址+变址]
6.基址变址寻址方式
操作数存放在存储器的单元中,操作数的偏移地址由指 令指定的基址寄存器(BX,BP)和变址寄存器(SI、DI) 内容相加
* CS不能用MOV指令改变
MOV CS, AX
例1 MOV BX, AX
;BX ← AX
例2 MOV DI, 5678H ;DI ← 5678H
例3 MOV AL, 78H ;AL ← 78H
例4 MOV ECX, 7890ABCDH ;ECX ← 7890ABCDH
BX、AX、DI、AL、ECX均为寄存器寻址方式
标串地址
6. BP用作基址寄存器
约定段寄 允许指定的段寄
存器
存器
CS

SS

DS
ES、SS、CS
DS
ES、SS、CS
ES

SS
DS、ES、CS
相关文档
最新文档