第04章 指令系统
微机原理与接口技术复习题(本)
微机原理与接口技术复习题(本)第1章概论1. 什么是程序和指令?2. 洪。
诺依曼计算机的核心原理是什么?3. 存储程序的概念是什么?4. CPU由那三部分组成?主机由那几部分组成?5. CPU对内存有那两种操作?6. 325.625D=- B= H234D= BCD7. 已知X=-1110011B,试求[X]原、[X]反、[X]补。
8. 已知X=-1110111B ,Y=+1011010B,求[X+Y]补。
9. 已知X=-1101001B ,Y=-1010110B 计算X-Y。
第2章微型计算机基础1. 微处理器内部由那三部分组成?2. 控制器有那些功能?3. 8086由那两部分组成?其功能是什么?4. 熟悉8088最小模式下的主要引脚功能。
5. 指令队列有什么功能?6. 8088的8个通用寄存器是什么?4个段寄存器是什么?两个控制寄存器是什么?7. 什么是逻辑地址和物理地址,有什么关系什么?8. 4个段寄存器中那一个段寄存器用户程序不用设置。
9. 什么是总线?10. 总线周期中,什么情况下要插入TW等待周期?11. 8088CPU中标志寄存器包含那些标志位什么?第3 章、第4章8088指令系统与汇编语言程序设计1. 什么是寻址方式? 8088CPU有那些寻址方式?2. 试说明MOV SI ,[BX ] 与LEA SI , [BX]两条指令的区别。
3. 设DS=212AH ,CS=0200H ,IP=1200H, BX=0500H , DATA=40H,[217A0H]=2300H, [217E0H]=0400H ,[217E2H]=9000H ,试确定下列指令的转移地址:(1) JMP BX(2) JMP WORD PTR [BX](3) JMP DWORD PTR [BX]4. 设SP=2300H ,AX=50ABH ,BX=1234H ,执行PUSH AX 后SP=?在执行PUSH BX ,POP AX后SP=?,AX=?,BX=?.5. 已知AL=7BH ,BL=38H ,试问执行ADD AL ,BL 后的6个状态标志是什么?6. 试判断下列程序执行后AX中的内容是什么。
第4章 80C51系列单片机指令系统
§4.2 指令系统分类与速解 一、指令分类图解
1、数据传送类指令图解
⑷数据交换与数据交换指令 ●数据交换是指两个数据空间的数据交换操作。
●数据交换通过累加器A进行操作。
●交换指令有:
△整字节交换XCH。 △半字节交换XCHD。
XCH
XCHD
△高低半字节自交换SWAP。SWAP
§4.2 指令系统分类与速解 一、指令分类图解
三、MCS-51单片机寻址方式
5、变址寻址方式
●变址寻址是以DPTR或PC作基址寄存器,以累加器A 作变址寄存器,两者的内容相加形成 16位地址--作为操作数地址。 如: (A) = 54H ◑例:MOV A,@A+DPTR (DPTR)=3F21H 执行后A的内容是7FH (3F75H)=7FH ●变址寻址只能对程序存储器寻址。
●rel--相对转移指令中的偏移量,为8位带符号补码数。
●DPTR----数据指针。
●bit----内部RAM(包括专用寄存器)中的直接寻址位。 ●A ----累加器。 ●ACC----直接寻址方式的累加器。
§4.1 指令系统基础
二、指令格式和符号约定
3、汇编指令中的符号约定
● B----寄存器B。
1、数据传送类指令图解
⑷数据交换与数据交换指令 XCH ●数据交换指令图 @Ri XCHD A SWAP
direct
XCH
Rn
XCH A,Rn
;Rn寄存器与A中数据全交换
XCH A,@Ri ;Ri间接地址中数据与A中数据全交换
XCH A,direct ;直接地址中数据与A中数据全交换 XCHD A,@Ri ;Ri间接地址中低4位数据与A中低4位数据交换
§4.1 指令系统基础
微机原理第04章(寻址方式和传送指令)
2、指令组成 计算机中指令由操作码字段和操作数字段两部分组成。 一条可以由1~7个字节组成。 操作码字段-----―指示计算机要执行的操作, 操作数字段-----―指出在指令执行操作过程中所需要的操作数; 可以是操作数本身;可以是操作数地址或是地址的一部分;可以 是指向操作数地址的指针或其他有关 操作数的信息。
+ 1 1 SS 1000H 0 0 0 BP 3000H 0 ...
3 0 0 0 3 AH 12H 0 0 AL 34H 0
13000H
执行前: (SS)=1000H ,
(BP)=3000H , (AX)=1234H 执行后:PA=13000H (13000H)=1234H
34H 12H
堆 栈 段
55H
代 码 段
... 50000H 55040H ... 48H 55H ... 堆 栈 段
指令执行后:EA=5040H PA=55040H (55040H)=5548H (AX)=5548H
寄存器相对寻址方式 MOV AX,COUNT[BP]
用途:这种寻址方式同样用于表格处理。 表格首地址COUNT 修改基址或变址寄存器来取得表格中的值。 例:某数据表的首地址为COUNT 欲读取表中第10个数据,存放到(AL)中。
演示
;AX←DS:[SI+06H]
8086/8088 CPU 中有两个变址寄存器 : 源变址寄存器 SI ; 目的变址寄存器 DI 。
操作数一般在内存的数据段中,但允许段跨越。 除有段跨越前缀之外,形成物理地址有二种方式:
(BX) PA=16d ×(DS)+ (SI) (DI) + 16位位移量 8位位移量
段内偏移量为适应各种数据结构的需要,可以有几个部分组 成,所以也把它称为有效地址EA。
ch04-指令系统
据相互交换。 (5条)
– – – – – XCH A, Rn XCH A, @Ri XCH A, direct XCHD A, @Ri SWAP A
堆栈操作指令
– PUSH direct • 先将堆栈指针SP的内容加1, 然后将direct 所指字节单元的内容送入SP所指内部RAM 单元;
40
逻辑与指令
用法(格式):ANL Dest , Source
– ANL A, Rn
– – – – – ANL ANL ANL ANL ANL A, direct A, @Ri A, #data direct, A direct, #data
A
B
Y
0
0 1
0
1 0
0
0 0
功能:Dest Dest & Source。
程序存储器数据传送指令
(1)指令格式 – 格式:MOVC A,[源字节] – MOVC A, @A+DPTR – MOVC A, @A+PC (2)操作数:目的操作数只能是累加器
A,源操作数则采用变址寻址方式。寄存 器 间 接 地 址 只 能 是 @A+DPTR 和 @A+PC 。
数据交换类指令
内部RAM之间的数据传送指令
共5条: – MOV direct1, direct2 – MOV direct , Rn – MOV Rn , direct – MOV direct ,@Ri – MOV @Ri ,direct
与累加器A有关的数据传送指令
共6条: – MOV A,Rn – MOV Rn , A – MOV A,direct – MOV direct , A – MOV A,@Ri – MOV @Ri , A
单片机作业
第一章1、写出下列二进制数的原码、反码和补码(设字长为8位)。
(1)001011 (2)-0010112、微型计算机由那几部分构成?3、什么叫单片机?它有何特点?1、(1)原码:00001011 反码:00001011 补码:00001011(2)原码:10001011 反码:11110100 补码:111101012、微型计算机由微处理器、存储器和I/O接口电路构成。
各部分通过地址总线(AB)、数据总线(DB)和控制总线(CB)相连。
3、单片机就是在一块硅片上集成了CPU、RAM、ROM、定时器/计数器和多种I/O口(如并行、串行及A/D变换器等)的一个完整的数字处理系统。
单片机主要特点有:品种多样,型号繁多;存储容量大;频率高,速度快;控制功能强,集成度高;功耗低;配套应用软件多。
第二章2.1 说明ROM,EPROM,EEPROM和Flash之间的主要特点和区别?2.3某ROM芯片中有12根地址输入端和8个数据输入端,该芯片的存储容量是多少位?2.4说明动态RAM和静态的主要区别,使用时应该如何选用。
2.6现有若干片2K*8位的RAM芯片,主控制器的地址线为20根,若用线选法组成片外存储器,有效的寻址范围最大是多少?若用3-8译码器来产生片选信号,则有效的寻址范围最大有是多少?若要将寻址范围扩展到64KB,应选用什么样的译码器来产生片选信号?2.8如图2.22所示,若用1K*8位的芯片来扩展3K*8位RAM,试计算各片的地址范围。
2.1.)1. 掩模工艺ROM(固定式ROM):用来存储计算机用的某些标准程序和固定的数据表格,因为制造出来已经被固定了,所以只能读,不能写。
2. 可擦除可编程存储器EPROM:具有可擦除功能,擦除后可进行再编程,但是擦除需要紫外线照射,平时保存要避免阳光直射。
3. 可电擦除可编程只读存储器EEPOM:用电信号进行擦除,具有ROM的非易失性,又有RAM的随机读写,但是写入速度比较慢,重编程时间较长,有效重编程次数较低。
第四章槽类零件加工数控车床编程
二、选择刀具及确定切削用量
1. 刀具选择 PCLNR2020K12机夹外圆车刀和CFMR 2020K04机夹切槽车刀。
刀具参数表
2. 确定切削用量
数控加工刀具及切削用量选择
3.程序编制
(下一页续表)
2. 确定切削用量
数控加工刀具及切削用量选择
三、程序编制
(下一页续表)
ቤተ መጻሕፍቲ ባይዱ
续表 (下一页续表)
续表
在FANUC 0i系统加工该零件。
零件图
加工该零件槽,用G00、G01、G04指令编写精加工程序。
零件图
车槽加工
加工示意图
二、径向车槽循环指令——G94
G94 X(U) Z(W) F ; 在指令使用时,如果设定Z值不移动或设定W值为零时,就可 用来进行车槽加工。
毛坯为φ30mm的棒料,采用G94编写加工程序。
零件图
等距直槽
实物图
车槽刀与切断刀的安装和加工方法
四、子程序调用
1. 指令格式
在FANUC-0i系统中,子程序的调用可通过辅助功能代码M98 指令进行,且在调用格式中将子程序的程序号改为P。 常用的子程序调用格式有两种。 M98 P××××L××××; 如 M98 P00100 L5或M98 P50010 都表示连续5次调用0010号 程序。
2. 指令功能
刀具参数表
车槽刀图
切断刀图
刀具参数表
2. 确定切削用量
数控加工刀具及切削用量选择
三、程序编制
(下一页续表)
续表
车削外槽时产生废品的原因及预防方法 (下一页续表)
PLC第04章2 S7200基本编程指令
传送字节立即写(BIW)指 令,将从输入端(IN)指定字 节地址的内容写入输出端( OUT)指定字节地址的物理输 出点(QB)。
BIR
IN,OUT
BIW
IN,OUT
传送字节立即读
传送字节立即写
字节交换
SWAP EN IN ENO
STL:
SRW OUT, N SLW OUT, N
双字左移,双字右移
SHR_DW EN ENO IN N OUT
SHL_DW EN ENO IN N OUT
STL:
SRD OUT, N SLD OUT, N
字节循环左移,字节循环右移
ROR_B EN ENO IN N OUT
ROL_B EN ENO IN N OUT
双字与 双字或 双字异或
ANDD (双字与) 指令对两个输入双字按位与得到一 个双字结果(OUT) ORD (双字或) 指令对两个输入双字按位或得到一 个双字结果(OUT) XORD ( 双字异或) 指令对两个输入双字按位异或得 到一个双字结果(OUT)
WAND_DW EN ENO IN1 IN2 OUT WOR_DW EN ENO IN1 IN2 OUT WXOR_DW EN ENO IN1 IN2 OUT
EN ENO IN1 IN2 OUT +R IN1,OUT
+I
IN1,OUT
2.减法指令
SUB-I SUB-DI SUB-R
EN ENO IN1 IN2 OUT
EN ENO IN1 IN2 OUT -D IN2,OUT
EN ENO IN1 IN2 OUT -R IN2,OUT
04第四章CortexM3的异常处理
4.6.2 Local 故障和升级
当允许时,Local 故障处理程序处理所有一般故障。 当遇到以下几种情况时 Local 故障将升级到硬故障: ➢ 一个 Local 故障处理引起了一个与之所服务的故障类型
相同的故障; ➢ 一个 Local 故障处理引起了一个相同或更高优先级的故
将其保存在 TCB(线程控制块)中; c. 使用 MSR 指令为下个线程设置 SP,通常是
Process_SP; d. 如果需要,为新的当前线程设置 MPU; e. 返回到新的当前线程。
例子:显示如何利用 PSP在 ISR 中修改 EXC_RETURN 的值,用于返回。
例子:显示如何使用 PSP 完成切换线程后 的内容切换。
Cortex-M3的一些特性(二)
中断的数目可以配置,从 1 到 240; 为 Handler 和 Thread 模式分别提供独立的栈
和访问特权等级; ISR 调用采用 C/C++标准ARM 体系结构过程
调用标准(AAPCS); 可屏蔽优先级以支持临界区。
这些特性提高了处理异常的效率并降低了时间 的延迟。
优先级分组
异常处理中与优先级相关的操作
异常激活等级
当没有异常发生时,处理器处在 Thread 模式。
当进入中断处理(ISR)或故障处理激活时,处 理器将进入 Handler 模式。
不同类型异常处理所对应的处理器工作模式、访 问级别以及栈的使用是有所不同的,也就是激活 等级不同。
不同激活等级下的特权和栈
BFARVALID 位和 MFARVALID 位是互斥的。
例 1,纯粹 Sleep-on-exit
指令 习题
第4章8086/8088CPU指令系统1.请指出以下各指令的源、目的操作数所使用的寻址方式。
(1)MOV SI,2100H (2)SBB DISP[BX],7 (3)AND [DI],AX (4)OR AX,[609EH] (5)MOV [BX+DI+30H],CX (6)PUSH ES:[BP](7)CALL [DI]DISP(8)JNZ Short_ label答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:(带位移量的)基址寻址(3)源操作数:寄存器寻址;目的操作数:变址寻址(4)源操作数:直接寻址;目的操作数:寄存器寻址(5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的基址寻址;目的操作数:隐含寻址(7)只有一个操作数,为(带位移量的)变址寻址(8)只有一个操作数,为相对寻址2.请指出下列各条指令的错误,并改正。
(1)MOV DS,1000H(2)MOV [100],23H(3)ADD AX,[BX+BP+6] (4)PUSH DL(5)IN AX,[3FH](6)OUT 3FFH,AL(7)LES SS,[SI](8)POP [AX](9)IMUL 4CH (10)SHL BX,5(11)INT 300(12)XCHG DX,0FFFH (13)MOV AH,BX(14)MOV [BX],ES:AX (15)MOV AX,OFFSET [SI] (16)MOV CS,AX(17)MOV DS,ES答:(1)不允许直接向段寄存器送立即数,可改为:MOV AX,1000HMOV DS,AX(2)该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTE PTR或WORD PTR说明,否则汇编程序会因不能确定操作数长度而指示出错。
可改为:MOV BYTE PTR [100],23H(3)不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:ADD AX,[BX+DI+6](4)堆栈操作应以字为单位进行,而DL是一个字节。
chapter_4
4.1 ARM处理器寻址方式
• 寻址方式分类——寄存器移位寻址
寄存器移位寻址是ARM指令集特有的寻址方式。 当第2个操作数是寄存器移位方式时,第2个寄存器 操作数在与第1个操作数结合之前,选择进行移位操 逻辑左移3位 作。寄存器移位寻址指令举例如下: MOV R0,R2,LSL #3 R2 0x01 ;R2的值左移3位,结果放入R0, 0x08
向上生长:向高地址方向生长,称为递增堆栈
向下生长:向低地址方向生长,称为递减堆栈
周立功单片机
4.1 ARM处理器寻址方式
• 寻址方式分类——堆栈寻址
堆栈压栈 SP栈顶 0x12345678 栈底
栈区
向上 增长
堆栈存 储区
向下 增长
栈区
栈底 0x12345678 堆栈压栈
栈顶SP
周立功单片机
LDR R1,[R2] ;将R2指向的存储单元的数据读出
SWP
R1,R1,[R2]
R2 0x40000000 ;保存在R1中 R0 0xAA 0x55
;单元的内容交换
;将寄存器R1的值和R2指定的存储
LDR
R1,[R2]
周立功单片机
4.1 ARM处理器寻址方式
• 寻址方式分类——基址寻址
基址寻址就是将基址寄存器的内容与指令中给 出的偏移量相加,形成操作数的有效地址。基址寻 址用于访问基址附近的存储单元,常用于查表、数 0x4000000C 0xAA 组操作、功能部件寄存器访问等。基址寻址指令举 例如下: 将R3+0x0C作 R3 0x40000000 LDR 为地址装载数 R2,[R3,#0x0C] ;读取R3+0x0C地址上的存储单元 R2 0xAA 0x55 据 ;的内容,放入R2
计组课后习题答案
计算机组成原理习题参考答案仅供参考,与考试无直接关联第一章计算机系统概论习题参考答案1.比较数字计算机和模拟计算机的特点。
解:模拟计算机的特点:数值由连续量来表示,运算过程是连续的;数字计算机的特点:数值由数字量(离散量)来表示,运算按位进行。
两者主要区别见P1 表1.1。
2.数字计算机如何分类?分类的依据是什么?解:分类:数字计算机分为专用计算机和通用计算机。
通用计算机又分为巨型机、大型机、中型机、小型机、微型机和单片机六类。
分类依据:专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。
通用机的分类依据主要是体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格等因素。
3.数字计算机有那些主要应用?(略)4.冯. 诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分?解:冯. 诺依曼型计算机的主要设计思想是:存储程序和程序控制。
存储程序:将解题的程序(指令序列)存放到存储器中;程序控制:控制器顺序执行存储的程序,按指令功能控制全机协调地完成运算任务。
主要组成部分有:控制器、运算器、存储器、输入设备、输出设备。
5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?解:存储容量:指存储器可以容纳的二进制信息的数量,通常用单位KB、MB、GB来度量,存储容量越大,表示计算机所能存储的信息量越多,反映了计算机存储空间的大小。
单元地址:单元地址简称地址,在存储器中每个存储单元都有唯一的地址编号,称为单元地址。
数据字:若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。
指令字:若某计算机字代表一条指令或指令的一部分,则称指令字。
6.什么是指令?什么是程序?解:指令:计算机所执行的每一个基本的操作。
程序:解算某一问题的一串指令序列称为该问题的计算程序,简称程序。
7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?解:一般来讲,在取指周期中从存储器读出的信息即指令信息;而在执行周期中从存储器中读出的信息即为数据信息。
指令系统
19
2.1 数据传送指令(29条) 数据传送指令(29条 ——16位数据传送指令(1条) 16位数据传送指令(
MOV DPTR,#data16
——外部数据传送指令(4条) 外部数据传送指令(4条 数据传送指令(4
MOVX >,<源操作数> <目的操作数>,< >,< >
A MOVX
A
@DPTR , @DPTR @Ri @Ri
17
义
表示当前选定寄存器组的工作寄存器R 表示当前选定寄存器组的工作寄存器R0~R7
#data16 表示16位立即数,即0000H~FFFFH 16位立即数 #data16 表示16位立即数, 0000H
2、MCS-51的指令 MCS-51的指令
2.1 2.2 2.3 2.4 2.5 2.6 数据传送指令(29条) 数据传送指令(29条 算术运算指令(24条) 算术运算指令(24条 逻辑运算指令(24条 逻辑运算指令(24条) 控制转移指令(17条 控制转移指令(17条) 位操作指令(17条 位操作指令(17条) 常用伪指令(17条 常用伪指令(17条)
18
2.1 数据传送指令(29条) 数据传送指令(29条 ——8位数据传送指令(15条) 数据传送指令(15 (15条
MOV >,<源操作数> <目的操作数>,< >,< > A Rn MOV A Rn MOV A,#20H ,
目的地址
A
源地址
数 据
20H
direct1 , direct2 @Ri @Ri #data
PUSH direct POP direct
2)低半字节交换指令(1条 2)低半字节交换指令(1条) 低半字节交换指令(1
微处理器4指令格式和寻址方式
第4章 指令格式和寻址方式
指令系统
➢ 指令是能被计算机识别并执行的代码,它规定了 计算机能完成的某一操作。
➢ 指令系统是计算机所具有的各种指令的集合。指 令系统表明了一台计算机所具有的功能,是CPU 硬件逻辑设计的基础。
➢ 当CPU执行一条指令时,它要对数据完成某种特 定操作,这些数据称为操作数。它可能是指令的 一部分,也可能是CPU内部寄存器中的内容;这 些操作数可能存于存储器某单元中,也可能存在 于某I/O端口内。
1. 操作码字节
72 1 0
Op- D W Code
2. 寻址方式字节 7 6 5 4 3 2 10 MOD REG R/M
3. 位移量 4. 位移量 5.立即数
低字节 高字节
低字节
Disp-L Disp-H (Imm-L) (Imm-H)
Imm-L
6.立即数 高字节
Imm-H
字节1:操作码字节 Op-Code:指令操作码。 D:D=1寄存器为目的操作数,D=0寄存器为源操作数。 W:W=0字节操作,W=1字操作。
压栈
SP栈顶 0x12345678 SP栈顶
满堆栈 栈底
0x12345678 压栈
SP栈顶 SP栈顶 0x12345678
栈底
空堆栈
寻址方式
(4)堆栈寻址
LD : load 加载,出栈操作 ST : store 存储,入栈操作 M : multi 多次 F: full 满栈 E: empty 空栈 D: descending 递减 A: ascending 递增
指令的格式和编码
一条指令通常由两个部分组成:操作码和地址码。 操作码Op-Code(Operation Code):
PLC的基本指令系统
MPS、MRD、MPP指令
MPS、MRD、MPP指令
MPS、MRD、MPP指令
7、MC、MCR指令
MC(Master Control):主控指令。用于公共串联 触点的连接。
MCR(Master Control Reset):主控复位指令。 用于公共串联触点的清除。
操作元件为X、Y、M、S、T、C的接点
OR、ORI指令
LDI
4、ORB指令
ORB(Or Block):串联电路块并联连接 指令。
串联电路块:两个或两个以上触点串联连接 称串联电路块;
该指令无操作元件;当串联电路块和其它电 路并联时,使用ORB指令。该电路块分支 起点用LD或LDI指令,分支结束用ORB指 令。
第四章 PLC的基本指令系统
本章学习目标 •27条基本指令 •梯形图和指令表的互换 •学会应用基本指令编程(重、难 点)
第一节 概述
• PLC五种语言表达方式
1、顺序功能图(Sequential function chart-SFC)
2、梯形图(Laddet diagram--LD) 3、功能块图(Function block diagram--
用。
第二节 FX系列PLC的基本指令
• FX2N系列共有27条基本指令。仅用基本指令就可编制 出开关量控制系统的用户程序。
1、LD,LDI,OUT指令 2、AND、ANI指令 3、OR、ORI指令 4、ORB指令 5、ANB指令 6、MPS、MRD、MPP指令 7、MC、MCR指令 8、SET、RST指令 9、PLS、PLF指令 10、NOP指令 11.INV 12、END指令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如
出
如
CPU 的寄存器 端口地址
OUT n, AX
OUT n, AL OUT DX, AL OUT DX, AX
字符串指令
字符串传送 MOVSB / MOVSW 字符串比较 CMPSB / CMPSW 字符串查询 字符串转换
其它
停机指令、等待指令、空操作指令、开/关中断指令、 置条件码指令 特权指令:只能用于操作系统或其它系统软件
平均长度= 2
指令字长
操作码的长度 指令字长决定于 操作数地址的长度 操作数地址的个数
指令字长 固定
指令字长 = 存储字长 指令字长 可变 按字节的倍数变化
小结
当用一些硬件资源代替指令字中的地址码字段后
• 可扩大指令的寻址范围 • 可缩短指令字长
• 可减少访存次数
当指令的地址字段为寄存器时 三地址 二地址 OP R1, R2, R3 OP R1, R2
... 指令地址寻址方式
1000 1001 1200 7 2000 2001
2500 1100
顺序寻址 顺序寻址 顺序寻址
跳跃寻址 顺序寻址
数据寻址
操作码 寻址特征
形式地址 A
形式地址 (A) 约定
指令字中的地址
有效地址 (EA) 操作数的真实地址 指令字长 = 存储字长 = 机器字长
立即寻址
存储器
寄存器
LOAD MOVE POP
存储器
存储器
MOVE
例如
置“1”,清“0”
算术逻辑操作
加、减、乘、除、增 1、减 1、求补、浮点运算、十进制运算 与、或、非、异或、位测试、位清除、位求反 如 8086 ADD SUB MUL DIV INC DEC CMP NEG
AAA AAS AAM AAD AND OR NOT XOR TEST
16 位操作码
1111 1111 1111 0000 1111 1111 1111 0001 1111 1111 1111 1111 … … …
… …
A2
…
A3
15条一地址指令
… …
…
A3
16条零地址指令
指令译码逻辑图
指令寄存器 × × × × 4:16 译码器 译码开始 × × × × 4:16 译码器 × × × × 4:16 译码器 × × × × 4:16 译码器
形式地址 A 就是操作数
立即寻址特征 OP # A 立即数 可正可负 补码
向量指令:对整个向量或矩阵进行求和、求积运算
寻址方式
指令寻址 数据寻址
寻址方式 确定 本条指令 的 操作数地址
下一条 欲执行 指令 的 指令地址 指令寻址 寻址方式 数据寻址
指令寻址
顺序 跳跃
PC +1
( PC ) + 1 PC
由转移指令指出
指令地址 0 1 1 2 2 3 3 4 5 6 7 8 9 指令 LDA ADD DEC JMP LDA SUB INC STA LDA
…
15 条三地址指令
…
14 条二地址指令
…
31 条一地址指令
…
16 条零地址指令
例:假设指令字长为16位,操作数的地址码为6位;指 令有零地址、一地址和二地址三种格式。 (1) 设操作码固定,若零地址指令有P种,一地址指令有 Q种,则二地址指令最多有多少种? (2) 采用扩展操作码技术,若二地址指令有X种,零地址 有Y种,一地址指令最多有多少种?
I/O设备故障 运算结果溢出
一般不提供给用户直接使用
在出现事故时,由 CPU 自动产生并执行(隐指令)
设置供用户使用的陷阱指令 如 8086 INT TYPE 软中断 提供给用户使用的陷阱指令,完成系统调用
输入输出
入 端口地址 CPU 的寄存器
IN AX, n IN AL, n IN AL, DX IN AX, DX
0 4
0 4
1 5
2 6
3 7
字地址 为 低字节 地址
字地址 为 高字节 地址
小端法和大端法 Little Endian vs. Big Endian
小端法:最低有效字节在最前面 大多数源自以前的DEC公司(现在 是Compaq公司的一部分),以及 Intel的机器 大端法:最高有效字节在最前面 IBM、Motorola和Sun Microsystems的大多数机器
第四章 指令系统
大纲
机器指令 操作数类型和操作类型 寻址方式 指令格式举例 指令格式设计 RISC 技术
机器指令
指令的一般格式 指令字长
指令的一般格式
操作码字段 地址码字段
(1) 操作码
(2) 操作数的地址
(3) 操作结果的存储地址
(4) 下一条指令的地址
地址码
如 IBM 370和VAX-11
便于硬件设计,译码时间短 操作码分散在指令字的不同字段中 (2) 长度可变 如 PDP-11和Intel 8086/80386 有效压缩操作码的平均长度
(3) 扩展操作码技术
操作码的位数随地址数的减少而增加
OP
4 位操作码 基本操作码 0000 0001 1110 … … … …
(1) 四地址
8 6 6 6 6
OP A1 A2 A3 A4
A1 第一操作数地址 A2 第二操作数地址 A3 结果的地址 A4 下一条指令地址
设指令字长为 32 位 操作码固定为 8 位
4 次访存
寻址范围 26 = 64 若 PC 代替 A4
(A1) OP (A2) A3
(2) 三地址
8 8 8 8
地址(十进制)
0 4 8 12 16 20 24 28 32 36
边界未对准
字( 地址2) 半字( 地址0)
地址(十进制)
0 4 8
字节( 地址7)
字节( 地址6)
字( 地址4)
半字( 地址8)
半字( 地址10)
操作类型
数据传送
源
目的
寄存器
寄存器
MOVE
寄存器
存储器
STORE MOVE PUSH
OP
A1
A2
A3
4 次访存 寻址范围 28 = 256
(A1) OP (A2) A3
若 A3 用 A1 或 A2 代替
(3) 二地址
8 12 12
OP 或
A1
A2
(A1) OP (A2) A1 (A1) OP (A2) A2 3次访存
4 次访存
寻址范围 212 = 4 K
若结果存于 ACC
移位操作 算术移位 逻辑移位
循环移位(带进位和不带进位) 转移
(1) 无条件转移 JMP (2) 条件转移 零标志位(Z),负标志位(N),溢出标志位(V),
进位标志位(C),奇偶标志位(P) 结果为零转 (Z = 1) JZ 结果溢出转 (O = 1) JO 如 结果有进位转 (C = 1) JC 300
完成触发器
跳过一条指令 SKP BRO X ;结果溢出跳转至X BRC Y ;最高位有进位跳转至Y
305 SKP DZ D = 0 则跳 306 307
…
(3) 调用和返回
地址 2000 2100 2101 主程序 CALL SUB1
子程序可被多次调用 允许子程序嵌套
子程序SUB1 2400 2500 2501 2560 2561 CALL SUB2
(4) 一地址
8
若ACC 代替 A1(或A2)
24
OP
A1
2 次访存
寻址范围 224 = 16 M
(ACC) OP (A1) ACC
(5) 零地址
无地址码
空操作(NOP),停机(HLT) 子程序返回(RET),中断返回(IRET)
操作码
反映机器做什么操作
(1) 长度固定 用于指令字长较长的情况 操作码 8 位 RISC
存储器中的数据存放(存储字长为 32 位)
边界对准
字(地址 0) 字(地址 4) 字节(地址11) 字节(地址10) 字节(地址9) 字节(地址8) 字节(地址15) 字节(地址14) 半字(地址18) 半字(地址22) 双字(地址24)▲ 双字 双字(地址32)▲ 双字 字节(地址13) 字节(地址12) 半字(地址16) 半字(地址20)
15条三地址指令
8 位操作码
1111 0000 1111 0001 1111 1101 … …
… … … …
…
1111 1110 0000 A3 1111 1110 0001 A3 1111 1110 1111 16 位操作码 …
1111 1111 0000 A3 1111 1111 0001 A3 …
解: (1) 16 – P – Q
(2) 采用扩展操作码技术,操作码的位数可变。 二地址、一地址和零地址的操作码长度分别为4位、10 位和16位。 二地址指令操作码每减少一种,就可多形成26种一地址 指令操作码;一地址指令操作码每减少一种,就可多构 成26种零地址指令操作码。 二地址指令有X种 一地址指令最多有(24–X) 26种 若一地址指令有M种,零地址指令最多有 [(24 – X) 26 – M] 26 种 即Y = [(24 – X) 26 – M] 26 求得M = (24 – X) 26 – Y 2–6
操作码扩展的重要原则
使用频度高的指令应分配短的操作码;使用频度低 的指令相应地分配较长的操作码 缩短操作码在程序中的平均长度,节省存储器空间 缩短经常使用的指令的译码时间,提高程序的运行 速度