第四章 指令系统

合集下载

第四章 指令系统[一]

第四章  指令系统[一]

译码开始
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

第4章 指令系统和寻址方式

第4章 指令系统和寻址方式
操作码 MOD REG R/M* DISP-L DISP-H DATA-L DATA-H
4
第4章 8086CPU指令系统 4.1.4 操作数的寻址方式
在指令中,指定操作数或操作数存放位置的方法称为寻址方 式。 8086/8088CPU指令系统的操作数的来源有以下4种:立即数、 寄存器操作数、存储器操作数、端口操作数。 微机系统中除端口操作数外,有七种基本的操作数寻址方式: 立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接 寻址方式、寄存器相对寻址方式、基址加变址寻址方式、相对 基址加变址寻址方式,后五种寻址方式是确定存储器操作数有 效地址的计算方法。
第4章 8086CPU指令系统
5. 寄存器相对寻址(Register Relative Addressing)
操作数的有效地址EA 是8位或16位的位移量 (DISP8/16)与基址寄存器BX或基址指示器BP或某个变
址寄存器(DI或SI)之和,即
EA=(BX或BP或SI或DI)+DISP8/16。 MOV AX,[BX+10H]指令操作示意图如图4.6所示。
7
第4章 8086CPU指令系统
在存储器操作数的五种寻址方式中,数据都存放于存储单元
中,在指令操作过程中需要 BIU 通过一个总线周期的访问,才 能获得操作数。因此,存储器操作数的寻址方式是怎么根据给 出的操作数地址因子,计算出操作数的有效地址 EA(Effective Address)。有效地址EA是以下三个地址因子的组合,由CPU的 执行单元EU计算出来。
13
第4章 8086CPU指令系统
代码段 10000H 1000H:0000H
操作码 BX 20H 00H 操作码
1000H:0100H

微机原理 第四章 微型计算机指令系统

微机原理 第四章 微型计算机指令系统

例: 已知: DS=2000H; SI=1000H 指令: MOV [SI+disp],AX
青岛理工大学琴岛学院
寄存器间接相对寻址过程示意图
CPU
寄存器间接相对 SI=1000H
MOV [SI+20H] 程序 ,AX
CS 偏移1000H
DS
SS
ES
位移20H
青岛理工大学琴岛学院
寄存器相对寻址过程示意图
真正数据所在的地址
青岛理工大学琴岛学院
错误指令举例: 6)基址变址寻址: MOV [BX+CX],AX ; CX不能做变址寄存器 MOV [BX+BP],AX ; BP不能作为变址寄存器 操作数的有效地址 EA等于一个基址寄存器( BX或 MOV [BX+DI],ARRAY; BP)与一个变址寄存器( SI或DI)的内容之和;
总时间=基本执行时间+计算EA的时间+执行总线读/写周期的时间
指令的基本执行时间随指令类型的不同差异很大,访问存 储器既要执行总线的读/写周期,又要计算操作数的有效地址 EA,计算EA的时间又与指令的寻址方式有关。
青岛理工大学琴岛学院
4.2 8086/8088指令系统
数据传送类指令
算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理器控制类指令
21000H 20 位 物 理 地 址 真正数据所在的地址 Memory DS … 20000H

78H 21000H 56H
青岛理工大学琴岛学院

4)寄存器间接寻址:
此方式的操作数存放在存储器单元中,指令给出的 16位寄存器值就是该操作数所在存储单元的EA。

例: 已知: (DS)=2100H,(DI)=2000H 指令: MOV AX,[DI] ;(AX) ((DI)) 注:使用BX、SI、DI,操作数在DS段;BP时在SS段 其中寄存器只能是BX、SI、DI、BP

MCS-51单片机的指令系统

MCS-51单片机的指令系统

整理ppt
12
4.2 寻址方式
51汇编语言有42种操作码助记符,用来描述33种操作功 能。一种操作码可以使用一种以上的数据类型,又由于 助记符规定了其访问的存储器空间,所以一种功能可能 有几个助记符(如MOV、MOVX、MOVC)。功能助记 符与寻址方式组合,得到111条指令。
整理ppt
13
4.2 寻址方式
1)无操作数单字节指令
这类指令只有操作码字段,操作数隐含在操作码中。
例如:INC DPTR
指令码为 :
数据指针隐含其中
整理ppt
6
指令的组成及字节数
2)含有操作数寄存器号的单字节指令 单字节的指令码由操作码字段和指示操作数所 在寄 存器号的字段组成。 例如;MOV A,Rn 指令码为:
其中,rrr为寄存器Rn的编号
整理ppt
2
4.1 指令和指令程序
“指令”: CPU能直接识别和执行的命令。 指令系统:CPU所能执行的全部指令的集合。
与CPU的能力、使用的方便灵活性密切相关。 指令的记忆问题?指令本身是二进制代码。
例如以下的51单片机指令:
把10放到累 740AH 加器A中 为பைடு நூலகம்便于记忆 指令助
A加20,结 果仍在A中
整理ppt
8
指令的组成及字节数
3.三字节指令(17条)
这条指令的指令码的第1字节为操作码;第2和第3字节为 操作数或操作数地址,有如下3类。 1)16位数据 例如:MOV DPTR,#26ABH 指令码为:
整理ppt
9
指令的组成及字节数
2)8位地址和8位数据 例如:MOV 74H,#0FFH 指令码为:
在MCS-51指令中,若操作数是以R0~R7来表示操作数时, 就属于寄存器寻址方式。

第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. 寄存器间接寻址方式
指令给出寄存器号,寄存器中存放着操作数的地址。
优点:寄存器的位数 较长(一般为机器字 长),足以访问整个 内存空间,这样既有 效地压缩了指令长度, 又解决了寻址空间太 小的问题。
主存单元 例: ADD (R1),(R2) R0 1000H 1000H 3A00H
R1
2C00H+ 3B00H → 3000H单元 R2
计 算 机 组 成 原 理
指令扩展举例 1
16位指令字 三地址指令范围 xxxx
0000 1110 1111 1111 1111 1111 1111 1111
xxxx xxxx xxxx
A1 A1 0000 1110 1111 1111 1111 1111 A2 A2 A1 A1 0000 1110 1111 1111 A3 A3 A2 A2 A1 A1 0000 1111
2.变长操作码,定长指令码。
操作码长度不固定,但指令码的长度固定。这种设计当操作码变 长时,地址码就缩短(地址个数变少),但指令字总长不变。 〔例〕 设某机器的指令长度为16位,包括基本操作码4位和三个 地址字段,每个地址字段长4位,其格式为: 15 14 13 12 OP 11 10 9 8 AD1 7 6 5 4 AD2 3 2 AD3 1 0
第四章
§4.1 指令格式
指令系统
(P148)
§4.2
寻址方式
§4.3 指令类型 §4.4 § 4.5 CISC和RISC 实验模型机的指令系统汇总表
§4.1 指令格式
计算机指令是计算机硬件能够识别并直接执行的操作命令,又称为 机器指令。
一、指令格式
一条指令应包括两方面的信息:操作码信息和地址码信息。 操作码OP 地址码AD

第4章 指令系统

第4章  指令系统
度和数据长度有一定的关系,以方便处理和
存取。
二、对指令系统性能的要求三
4、兼容性:
系列机各机种之间具有相同的基本结 构和共同的基本指令集,因而指令系统是 兼容的,即各机种上基本软件可以通用。但 由于不同机种推出的时间不同,在结构和性 能上有差异,做到所有软件都完全兼容是不 可能的,只能做到“向上兼容”,即低档机 上运行的软件可以在高档机上运行。
a、CISC:70年代后,大多数计算机的指 令系统多达几百条。我们称这些计算机 为复杂指令系统计算机(CISC)。
b、RISC:但是如此庞大的指令系统难以 保证正确性,不易调试维护,造成硬件 资源浪费。为此人们又提出了便于LSI技 术实现的精简指令系统计算机(RISC) 返回
二、对指令系统性能的要求一
4.4、指令和数据的寻址方式
一、指令的寻址方式 二、操作数寻址方式
三、寻址方式举例
一、指令的寻址方式一
1、寻址方式:形成操作数有效地址或指令 有效(偏移)地址的方式。 2、寻址方式分为两类,既指令寻址方式和 数据寻址方式。 3、指令的寻址方式有两种,一种是顺序寻 址方式,另一 种是跳跃寻址方式。 4、操作数或指令在存储器中的地址:某个 操作数或某条指令存放在某个存储单元 时,其存储单元的编号就是地址。请看 图示
答案:
退 出 上一页 下一页 上一节 下一节 返回节目录
例三答案:
三、低级语言与硬件结构的关系
高级语言 低级语言
Visual c++、foxpro、java
与软件结构和指令系统无关 编写的程序可在不同机器上 运行
汇编语言、二进制语言
与机器、指令系统密切相关 编写的指令系统不同,不同
机器用不同汇编语言编写程 序,机器唯一可识别的是二
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 4 章 指 令 系 统
4.1 指令系统概述 操作数类型 寻址方式 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3 字符串操作指令 转移指令 处理器控制指令 输入输出指令 中断指令
4.1.1 4.1.2 4.2
8086指令系统 数据传送指令 算术运算指令 逻辑运算指令 移位指令
存储器操作数
●操作数在内存数据区中,指令中 的操作数部分给出此操作数地址的 计算方法,称为存储器操作数。
4.1.2 寻址方式 计算机可以对存储器、寄存器中的数据进行各种操 作,如取数、存数、加运算、减运算等,这就需要找到 数据的存放地址,再对其中的数据执行相应的操作,最 后将运算结果送往指定的地址单元或寄存器。指令的寻 址方式就是寻找指令操作数所在地址的方式,以确定数 据的来源和去处。熟练地掌握寻址方式对学习指令系统 和汇编语言程序设计具有重要作用。下面介绍 8086/8088的几种寻址方式。
4.寄存器间接寻址
寄存器间接寻址情况一
若以SI、DI、BX间接寻址,操作数通常在现行数据段中,即DS中的值 左移四位加上SI、DI或BX中的有效地址即为操作数的物理地址。
【例4-5】
MOV
AX,[SI]

执行过程如图4-4所示。
DS +) SI 2000 1000 21000 H
代码段
操作码
数据段
7.基址加变址寻址 【例4-9】 MOV AX,[BX+SI+250H]

操作码 操作码 代码段 偏移量50 偏移量02 +) +) +) 30H 20H
执行过程如图4-8所示。
DS BX SI
3 000
1000 2000 0250 33250 H

33250H 33251H AX
数据段

20
30
【例4-3】
MOV
AX,[22A0H]
… 操作码
执行过程如图4-3所示。
DS 3000 22A0 3 2 2A0 H
+)
代码段
偏移量A0H 偏移量22H
… 32H 48H …
数据段
322A0H 322A1H AX
48 32
图4-3 直接寻址方式示意图
注意
● ( 1)
直接寻址方式的操作数所在存储单元的 段地址一般在数据段寄存器DS中。 ● (2) 如果操作数在其他段,则需要在指令中 用段超越前缀指出相应的段寄存器名。 例: MOV AH, ES∶ [2000H] 将附加段寄存器ES的内容乘16,再加上2000H作 为操作数所在存储单元的地址,取出该存储 单元的内容送到寄存器AH中。
图4-8
基址加变址寻址方式示意图
8.数据串寻址 ●数据串寻址用于数据串操作指令。
【例4-10】 MOVSB SI←SI±1 DI←DI±1
执行后: [DI] ←[SI]
用于数据串操作指令。规定变址寄存器SI中的内容是 源数据串的段内偏移地址,而变址寄存器DI中的内容 是目标数据串的段内偏移地址。 源数据串的段地址规定是数据段DS,目标数据串的 段地址规定是附加段ES。指令执行后SI和DI的内容自 动增量(或减量),增(或减)值为1或2。
A0H 50H

图4-4 寄存器间接寻址方式示意图

21000H
21001H AX 50 A0
4. 寄存器间接寻址
寄存器间接寻址情况二
若以BP间接寻址,则操作数在堆栈段中,即操作数的物理 地址位堆栈段寄存器SS中的值左移四位与BP相加。
【例4-6】
MOV
AX,[BP]

执行过程如图4-5所示。
SS +) BP
10. 隐含寻址
●这种寻址方式中,操作数是隐含的。指令中没有 明显给出操作数。
【例4-12】ຫໍສະໝຸດ AAA即对AL中的内容进行十进制加法调整,并把调整后的 结果放入AH和AL中。这条指令的隐含操作数是AH和AL。
例:设BX=0 158H, DI=10A5H, 位移量=1B57H, DS=2100H,求各寻址方式下,有效地址和物理地址。 ① 直接寻址:
4.1 指令系统概述
4.1.1 操作数类型
立即数 ●操作数包含在指令中,即指令中 的操作数部分直接给出操作数本身, 操作数随指令一起从存储器中取出 来后就可以参加运算,称为立即数。
操 作 数
寄存器操作数
●操作数在CPU的某个寄存器中,由指 令给出寄存器的编码来指出操作数在哪 个寄存器中,称为寄存器操作数。
段寄存器 CS DS ES SS 立即数 存储器 图3-9 数据传送方向示意图
4.1.2 寻址方式
1. 立即寻址
寻找指令中操作数所在地址的方法
立即寻址的操作数是一个立即数,它直接包含在指令中。立即 数可为8位或16位数,它们放在指令代码的操作码后。 立即寻址主要用于给存储器或寄存器赋初值。
【例4-1】
MOV

AX,080AH,其寻址如图4-1所示。
操作码 立即数低字节 高址
有效地址=1B57H 物理地址=21000H+1B57H=22B57H
② 寄存器间接寻址(寄存器为BX):
有效地址=0158H 物理地址=21000H+0158H=21158H
③ BX寄存器相对基址寻址:
有效地址=0158H+1B57H=1CAFH 物理地址=21000H+1CAFH=22CAFH
④ 变址寻址(寄存器为DI): • EA=10A5H • 物理地址=21000H+10A5H=220A5H ⑤ DI寄存器相对变址寻址: • EA=10A5H+1B57H=2BFCH • 物理地址=21000H+2BFCH=23BFCH ⑥ 基址加变址的寻址(BX为基址寄存器,DI为变址寄存 器 ): • EA=0158H+10A5H=11FDH • 物理地址=21000H+11FDH=221FDH ⑦ 相对的基址加变址的寻址(BX为基址寄存器,DI为变 址寄存器): • EA= 0158H+10A5H+1B57H=2D54H • 物理地址=21000H+2D54H=23D54H
4.2 8086的指令系统
指令系统包括九大类、133种基本指令,通过寻址 方式的变化与数据形式(字节、字型)的组合,可构 成上千条指令。指令系统按功能分为数据传送类、算 术运算类、逻辑运算与移位类、串操作类、控制转移 类、处理机控制类,本节将分别说明。
4.2 8086指令系统 4.2.1 数据传送指令
9. I/O端口寻址
I/O 端 口 寻 址
直接端口寻址
由指令直接给出输入 输出设备的端口地址。 规定端口地址为8位, 能寻址256个端口。
间接端口寻址
由寄存器DX给出输入输出 设备的端口地址。由于DX 是16位,因此能寻址64K 个端口。
【例4-11】 IN OUT AL,20H ;将地址为20H的外设的内容读入AL中 DX,AL ;将AL中内容输出给以DX的内容为地址的外设
指令类型 指令功能
数据传送指令
指令书写格式
通用数据传送
字节或字传送 字压入堆栈 字弹出堆栈 字节或字交换 换码指令
装入有效地址 装入DS寄存器 装入ES寄存器 将FR低字节装入AH寄存器 将AH内容装入FR低字节 将FR内容压栈 从堆栈中弹出一个字给FR
MOV目标,源 PUSH源 POP目标 XCHG目标,源 XLAT
0AH 08H AX AH AL
立即数高字节

图4-1
立即寻址示意图
注意
(1) 立即数寻址方式只能用于源操作数,主要用于 给寄存器赋值。 (2) 立即数寻址方式不执行总线周期,执行速度快。
2. 寄存器寻址
操作数在内部寄存器中。对16位操作数,寄存器可以是 AX、BX、CX、DX、SI、DI、SP或BP,而对8位操作数, 寄存器可以是AH、AL、BH、BL、CH、CL、DH、DL。 【例4-2】 MOV AX,BX 执行过程如图4-2所示。
4.2.1 4.2.2 4.2.3 4.2.4
80X86的增强型指令 80286增强和新增指令 80386增强和新增指令 80486新增指令
4.3.1 4.3.2 4.3.3
4.1
指令系统概述
指令:指令是计算机用以控制各个部件协调动作的命令。 指令系统:指令系统是计算机能够执行全部命令的集合,它取 决于计算机的硬件设计。指令系统因机而异, 没有通用性。
AX
BX
图 4-2
寄存器寻址示意图
注意
● ( 1)
寄存器寻址方式的指令操作在CPU内部
执行,不需要执行总线周期,执行速度快。
(2) 寄存器寻址方式既适用于指令的源操作 数,也适用于目的操作数,并且可同时用于源 操作数和目的操作数。
3. 直接寻址
操作数的有效地址(EA)直接包含在指令中,它与操作码一起存放在代 码段中。操作数存放的物理地址=DS×16 + 16位地址偏移量。
操作码 代码段 偏移量00 偏移量30 … 30H 20H …

数据段
图4-7 变址寻址方式示意图
• 例:DS=3000H,SI=1000H, COUNT=2000H • 指令: MOV AX,COUNT[SI] • 解:物理地址=16×DS+SI+16位偏移量 • =30000H+1000H+2000H=33000H • 指令执行结果是将33000H和33001H单元 的内容送入寄存器AX中。
LEA目标,源 LDS目标,源 LES目标,源 LAHF SAHF PUSHF POPF
目标地址传送
标志位传送
1. 通用数据传送指令
MOV指令
相关文档
最新文档