第3章 指令系统.PPT.Convertor
第3章 指 令 系 统PPT课件
格式4:[ A16 ] = Rs 说明:把源寄存器Rs中的数据存储到A16 为地址的存储单元。 例如:R1=0x0011 //R1的值为0x0011
3.2 SPCE061A指令系统
3.2.1 数据传送指令
数据传送指令是把源操作数传送到指 令所指定的目标地址中,是一种复制操作, 指令执行后,源操作数不变,目的操作数 被源操作数代替。
数据传送指令的通用格式如下: <目的操作数>=<源操作数>
Page 17
下面按寻址方式介绍SPCE061A的数 据传送指令,表3-2给出了所有的数据传送 指令以及各个指令的格式、执行周期数、 指令长度及对标志位状态的影响。
R1=R2 //R1的值变为0xF001
Page 23
3.直接寻址
格式1:Rd = [ A6 ] 说明:把A6指定的存储单元中的数据读到 Rd寄存器。 格式2:Rd = [ A16 ] 说明:把A16指定的存储单元中的数据读 到Rd寄存器。 格式3:[ A6 ] = Rs 说明:把源寄存器Rs中的数据送到A6为地 址的存储单元。
Page 21
格式1:Rd = IM16 说明:16位立即数送入目标寄存器Rd。 格式2:Rd = IM6 说明:6位立即数扩展为16位送入目标寄存 器Rd。 例如:R1=0xF001 //R1的值变为0xF001
Page 22
2.寄存器寻址
格式1:Rd=Rs 说明:将源寄存器Rs的数据送到目标寄存 器Rd。 例如:R2=0xF001 //R2的值为0xF001
(3)寄存器寻址:操作数包含在寄存器中, 由指令指定寄存器的名称。 (4)寄存器间接寻址:寄存器中存储的是 操作数的地址,书写指令时,寄存器需要 用“[ ]”括起来。
《指令系统 》课件
在人工智能领域的应用
指令系统在人工智能领域中也有 着广泛的应用。人工智能算法的 实现需要大量的计算和数据处理 ,而指令系统可以提供高效的运 算能力和数据处理能力,为人工 智能算法的运行提供支持。
总之,指令系统作为一种底层技术,在各个领域都有着广泛的应用前景,为各行业的发展提供了重要 的技术支持。
05 指令系统的未来发展
指令系统的发展趋势
指令系统向更高效能发展
01
随着技术的进步,指令系统将不断优化,提高执行效率和性能
。
指令系统向更智能化发展
02
人工智能技术的引入将使指令系统具备更强的自适应和学习能
指令系统还可以用于人工智能领 域的模型优化和算法加速,如通 过优化指令系统实现深度学习模 型的快速推理和训练,提高人工 智能应用的性能和效率。
此外,指令系统还可以用于人工 智能领域的安全性和隐私保护, 如通过加密指令或硬件安全模块 等手段保护用户隐私和数据安全 。
在其他领域的应用
除了计算机系统和人工智能领域,指令系统在其他领域也有着广泛的应用。如通信领域中,指令系统 可以用于信号处理和调制解调等操作;在图形处理领域中,指令系统可以用于图像处理和渲染等操作 ;在科学计算领域中,指令系统可以用于数值计算和模拟等操作。
研究如何将人工智能技术应用于指令系统,使其具备更强的智能化 能力。
未来指令系统的发展前景
01
广泛应用于云计算、大数据等领域
随着云计算、大数据等技术的普及,指令系统将在这些领域发挥重要作
用。
02
成为人工智能技术的关键组成部分
随着人工智能技术的发展,指令系统将成为实现人工智能的重要工具。
第三章指令系统1PPT课件
一条指令中,只能有一个存储器操作数,或者源操 作数,或者目的操作数,在指令书写中,约定用方括号 内容表示存储器操作数的偏移地址 ,如[2300H]。
4 . 直接寻址方式
第三章 8086/8088指令系统
机器指令:是CPU仅能识别的指令的二进制代码,也称机器码;
程序:程序是一组指令有序的集合,是为完成特
定任务而设计的。
指令执行的具体操作
一般指令的格式:
操作码
操作数
指令操作的对象,即操作数的来源或操作结果的去向
每条指令的第一字节一定是操作码。
第三章 8086/8088指令系统
常见的指令格式有如下几种:
(BX) 有效地址 = (SI)
(DI) (BP)
物理地址计算方法:
段寄存器为DS 段寄存器为SS
物理地址 PA = (DS)* 16地址 PA = (SS)* 16 + (BP)
第三章 8086/8088指令系统
例:MOV AX,[BX] ; 若已知(DS)=1000H , (BX)=0040H,则执行的操作如下:
两地址指令是最常见的指令格式,如 ADD AX , BX
第三章 8086/8088指令系统
3.1.2 寻址方式
指令的主要组成部分之一是操作数,指令中的操作数部分指 明了参与操作的数据本身或是规定了操作数的地址,操作数通常 保存在:①指令字节中,称为立即数;② CPU的寄存器中; ③ 存储器单元中; ④ I/O接口寄存器中。
1.隐含寻址
指令中不指明操作数,但操作数隐含在操作码中。 例:
MUL CL ; (AX) ←(AL)×(CL) DIV BL ; (AL) ←(AX)/(BL)的商
第3章指令系统
h
19
例:设BX=0 158H,
DI=10A5H, 位移量=1B57H, DS=2100H, 各种寻址方式下,有效地址和物理地址如 下:
① 直接寻址:MOV AX,[1B57H] 有效地址=1B57H 物理地址=21000H+1B57H=22B57H ② 寄存器间接寻址(寄存器为BX):
MOV AX, [BX] 有效地址=0158H 物理地址=21000H+0158H=21158H
③ BX寄存器相对间接寻址: MOV AX, [BX+1B57H] 有效地址=0158H+1B57H=1CAFH 物理地址=21000H+1CAFH=22CAFH ④ 变址寻址(寄存器为DI): MOV AX, [DI] 有效地址=10A5H 物理地址=21000H+10A5H=220A5H
⑤ DI寄存器相对变址寻址: MOV AX, [DI+1B57H] 有效地址=10A5H+1B57H=2BFCH 物理地址=21000H+2BFCH=23BFCH ⑥ 基址加变址的寻址(BX为基址寄存器,DI为
第3章 16位和32位微处理器的指令系统
本章要点
汇编语言的寻址方式 8086的传送指令尤其是堆栈操作指令、交换指令
和换码指令的用法 算术运算指令涉及的规则和各种算术运算指令的
使用 逻辑运算指令和移位指令的用法
5条串操作指令的特点和使用方法,尤其是串操 作指令和DF标志的关系
控制转移指令特别是段内转移指令、带参数的返 回指令和循环控制指令的用法
(4) 将BX、BP和SI、DI寄存器组合起来进行间接 寻址——基址加变址的寻址
MOV AX,[BX+SI]
寄存器相对寻址
三章指令系统-PPT精选文档
例如,IBM370机就是采用这种定长操作码格式。 IBM 370机(字长32位)的指令可分为三种不同的 长度,不论指令的长度有多少位,其中的操作码字 段一律都是8位。
特点:字段规整、译码简单。
6
IBM 370机的指令格式
8 4 4 4 4 4 4 4 12
RR 型 RX 型 RS 型 SI 型 SS 型
15
零地址指令
格式:
OP
零地址指令只有操作码,而没有地址码。 例如下面的情况不需要地址码: 指令不需要操作数,例如停机指令就没有操作数. 操作数隐含约定在累加器AC中。 操作数隐含指定在堆栈中,例如堆栈计算机,零 地址指令的操作数从堆栈中获得。
16
简化地址结构与减少地址码字段的位数
13
二地址指令
格式:
OP
A1
A2
执行的操作: (A1) OP (A2) → A1 A1为目的操作数地址,兼做存放结果的地址; A2为源操作数地址。(A1原先的值无需保存) A1、A2可以是内存中的单元地址,也可以是运 算器中的通用寄存器。如果是内存中的单元地址, 则执行一条二地址指令至少要访问4次主存.
扩展窗口
1111 1111 1110 XXXX
…
1111 1111 1111 0000 1111 1111 1111 1111
…
1111 1111 0000 XXXX
…
1111 0000 XXXX YYYY
15条二地址指令
15条一地址指令
16条零地址指令
11
3、地址码
根据一条指令中有几个操作数地址,可将该指令 称为几地址指令。 一般的指令有被操作数、操作数以及操作结果这 三个数,因而就形成了三地址指令格式,这也是 早期计算机指令的基本格式。 在三地址格式的基础上,后来又发展成了二地址 格式、一地址格式和零地址格式。
《指令系统》幻灯片PPT
通常指令中不出现DS段存放器名称,这种情况叫做默认段存放器〔或叫缺省 段存放器〕。但是也允许段超越,即允许操作数在代码段或堆栈段或附加段中, 只是必须在指令中指明。
【例】MOV AX, SS:[2500H]
指令的执行:AX<--〔SS:2500H〕
该指令将SS指明的堆栈段中偏移量为2500H的字单元的内容送到AX中。
【例】MOV CH,BL
指令的执行:CH<---BL
如果指令执行前,CH=64H,BL=58H,那么指令执行后 CH=58H,BL保持不 变。
立即寻址和存放器寻址指令,执行速度最快,后面要讲到的存储器寻址指令 执行速度较慢。
3、直接寻址方式
直接寻址方式中,操作数一般在内存数据段中,而操作数的有效 地址直接包含在指令中。 操作数的物理地址是由数据段存放器DS 的值乘以16再加上这16位的有效地址得到。
假设初始条件为DS=2000H,SI=1000H,那么该指令源操作数的物理地址为: 2000H×10H+1000H=21000H
指令中也可以不使用缺省的段存放器,而另指定其它的段存放 器,这就是段超越。指令指令中写眀段超越前缀从而指定其它的段 存放器。如指令:
MOV AX, ES:[BX] 原来BX默认的是DS段存放器,现在用段超越前缀指定ES段存放
寻址方式可分为数据的寻址方式和转移地址的寻址方式两种。
3.1.1 数据的寻址方式
1、立即寻址方式 立即寻址方式即操作数直接存放在指令中,紧跟在操作码以后,作为指令的
一局部存放在代码段区域中。这种操作数称为立即数。它只能用于源操作数字段, 不能用于目的操作数字段. 【例】MOV AL,42H
指令的执行:AL<--42H 42H为8位立即数,它是指令的一个组成局部。 指令执行后,AL=42H。 【例】MOV DX,2345H ; 指令的执行:DX<--2345H 2345H为16位立即数,它是指令的一个组成局部。 指令执行后,DX=2345H。
第3章指令系统0917-PPT课件
解: MOV A,#60H(×) 解: MOV A,60H (√)
MOV R0,60H (×) MOV A,R0 MOV R0,#60H (√) MOV A,R0
3.3 指令分类介绍
1.立即数送累加器A和内部数据存储器(Rn,内部RAM,SFR)
共5条指令:
MOV A,#data
;A ← #data
E
45H
2000 H2A:INC A
F
46H
2019 2019 2019 2019
MOVC A,A+PC RET DB 30H DB 31H
外部ROM
...
2012H 46H
...
2019
DB 32H
2005H 32H
……
2004H 31H
2019
DB 45H
2003H 30H
PC
2019
设指令执行前 (A)=09H,(DPTR)=2000H,存储器单元
内容如图所示。执行指令后,
(A)= ?12H (DPTR)= ?2000H
2019H 89H 2009H 12H
3.2 指令格式和寻址方式
(6)位寻址方式:
指令给出位地址。一位数据在存储器位寻址区。
(1)内部RAM中的位寻址区:字节地址为20H~2FH;
1. DPTR作间接寻址寄存器:
2.
MOVX A,DPTR ;A←((DPTR))
(读)
MOVX DPTR,A
;(DPTR)←(A) (写)
2. Ri作间接寻址寄存器(了解):
MOVX A,Ri
;A←((P2Ri)) (读)
MOVX Ri,A ;(P2Ri)←A
(写)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章指令系统§3.3 89C51指令系统§3.1 汇编语言§3.2 寻址方式§3.4 思考题与习题§3.1 汇编语言§3.1.1 指令和程序设计语言§3.1.2 指令格式§3.1.1 指令和程序设计语言指令:是CPU根据人的意图来执行某种操作的命令。
程序设计语言:是实现人机交换信息的基本工具,分为机器语言、汇编语言和高级语言。
机器语言:用二进制编码表示每条指令,是计算机能直接识别和执行的语言。
汇编语言:是用助记符、符号和数字等来表示指令的程序设计语言。
它与机器语言指令是一一对应的。
§3.1.2 指令格式89C51汇编语言指令格式操作码[目的操作数][,源操作数][;注释]汇编语言指令对应的二进制代码格式单字节指令双字节指令三字节指令单字节指令1、指令码中隐含着对某一种寄存器的操作如:指令“INC DPTR”的指令代码格式为:A3H= 1 0 1 0 0 0 1 1 2、由指令中的rrr三位的不同编码指定某一寄存器如:指令“MOV A,Rn”的指令代码格式为:1 1 1 0 1 r r r双字节指令用一个字节表示操作码,另一个字节表示操作数或操作数所在的地址。
格式为:操作码立即数或地址三字节指令一个字节操作码,两个字节操作数。
格式为:操作码立即数或地址立即数或地址§3.2 寻址方式什么是寻址方式:如何找到存放操作数的地址,把操作数提取出来的方法。
1、7种寻址方式:2、寻址空间及符号注释:BACK1、7种寻址方式:1)寄存器寻址2)直接寻址3)立即数寻址4)寄存器间接寻址5)变址寻址6)相对寻址7)位寻址1)寄存器寻址寄存器寻址:由指令指出寄存器组R0~R7中的某一个或其他寄存器(A,B,DPTR等)的内容作为操作数。
例如:MOV A,R0;(R0)→AMOV P1,A;(A)→P1口ADD A,R0;(A)+(R0)→A2)直接寻址直接寻址方式:在指令中直接给出操作数所在存储单元的地址。
指令中操作数部分是操作数所在地址。
直接寻址方式可访问片内RAM的128个单元以及所有的SFR。
对于SFR,既可以使用它们的地址,也可以使用它们的名字。
例如:MOV A,3AH;(3AH) →AMOV A,P1;(P1口) →A或:MOV A,90H;90H是P1口的地址3)立即数寻址立即数寻址:指令操作码后面紧跟的是一字节或两字节操作数,用“#”号表示,以区别直接地址。
例如:MOV A,3AH;(3AH)→AMOV A,#3AH;3AH→AMOV DPTR,#2000H;2000H→DPTR;(DPH)=20H;(DPL)=00H4)寄存器间接寻址寄存器间接寻址:操作数的地址事先存放在某个寄存器中,寄存器间接寻址是把指定寄存器的内容作为地址,由该地址所指定的单元内容作为操作数。
89C51规定R0或R1为间接寻址寄存器,它可寻址内部地址RAM 低位的128B单元内容。
还可采用DPTR作为间接寻址寄存器,寻址外部数据存储器的64KB空间。
例如例如:将片内RAM 65H单元内容47H送A,可执行指令“MOV A,@R0”。
其中R0内容为65H。
如图所示:65H47HR0A数据存储器地址┋┋65H①②以指令中所指定的R0内容(65H)为指针将片内RAM 65H单元内容47H送A5)变址寻址(基址寄存器+变址寄存器间接寻址)变址寻址:以某个寄存器的内容为基地址,在这个基地址的基础上加上地址偏移量形成真正的操作数地址。
89C51中采用DPTR或PC为变址寄存器,A的内容为地址偏移量。
变址寻址只能访问程序存储器,访问范围为64KB。
例如例如:MOVC A,@A+DPTR;((A)+(DPTR))→A如图所示0302HROMDPTRAA02F1H11H1EH+①②DPTR内容与A的内容之和为程序存储器地址程序存储器内容送A6)相对寻址相对寻址:是以当前的PC值加上指令中规定的偏移量rel而形成实际的转移地址。
相对寻址只出现在相对转移指令中。
当前的PC值是指执行完相对指令后的PC值;相对转移指令操作码所在地址称为源地址;转移后的地址称为目的地址。
目的地址=源地址+相对转移指令字节数+relrel为补码表示的有符号数。
7)位寻址位寻址:采用位寻址方式的指令的操作数是8位二进制数中的某一位,指令中给出的是位地址。
位地址在指令中用bit表示。
例如:CLR bit;位地址的两种表示方法:直接使用位地址,如D3H;直接用寄存器名字加位数,如PSW.3。
位寻址区域:片内RAM的20H-2FH的16个单元中的128位;字节地址能被8整除的SFR。
2、寻址空间及符号注释1)寻址空间:见表3-1。
2)符号注释:表3-2 操作数寻址方式和有关空间符号注释Rn(n=0~7):当前选中的工作寄存器组R0~R7。
Ri(I=0,1):作为地址指针的两个工作寄存器R0,R1。
#data:8位立即数。
#data16:16位立即数。
direct:8位片内RAM单元(包括SFR)的直接地址。
addr11:11位目的地址,用于ACALL和AJMP指令中。
addr16:16位目的地址。
用于LCALL和LJMP指令中。
rel:补码表示的8位地址偏移量。
范围:-128~+127D。
bit:片内RAM或SFR的直接寻址位地址。
@:间接寄存器的符号。
/:位操作指令中对该位先取反再参与操作,不影响原值。
(×):×中的内容。
((×)):×指出的地址单元中的内容。
→:指令操作流程方向。
概述:89C51指令系统由111条指令组成。
其中,单字节指令49条,双字节指令45条,三字节指令17条。
从指令执行时间看,单周期指令64条,双周期45条,只有乘、除指令为4个周期。
§3.3 89C51指令系统89C51 指令系统可分为五大类[1] 数据传送指令:28条[2] 算术运算指令:24条[3] 逻辑运算及移位指令:25条[4] 控制转移指令:17条[5] 位操作指令(布尔操作):17条§3.3.1 数据传送指令1.以累加器A为目的操作数的指令(4条,即4种寻址方式) ◆2.以寄存器Rn为目的操作数的指令(3条)◆3.以直接地址为目的操作数的指令(5条)◆4.以间接地址为目的操作数的指令(3条)◆5.十六位数据传送指令(1条)◆6.查表指令(2条)◆7.累加器A与片外RAM传送指令(4条)◆8.栈操作指令(二条)◆9.交换指令(5条)◆1.以累加器A为目的操作数的指令(4条,即4种寻址方式)例:MOV A,#30H ;(A)=30HMOV A,30H ;(A)=11HMOV A,@R1 ;(A)=11HMOV A,R1 ;(A)=30H例:起始30H单元内容为11H,R1中为30H2 、以寄存器Rn为目的操作数的指令(3条)这组指令的功能是把源操作数所指定的内容送到当前工作寄存器组R0-R7中的某个寄存器。
源操作数有寄存器寻址、直接寻址和立即数寻址三种方式。
如:(A)=78H,(R5)=47H,(70H)=F2H,执行指令:MOV R5,A ;(A)→R5,(R5)=78HMOV R5,70H ;(70H)→R5,(R5)=F2HMOV R5,#A3H;A3H→R5,(R5)=A3H注意:在89C51指令系统中没有“MOV Rn,Rn”传送指令。
3 、以直接地址为目的操作数的指令(5条)这组指令的功能是把源操作数所指定的内容送入由直接地址direct 所指出的片内存储单元中。
源操作数有寄存器寻址,直接寻址,寄存器间接寻址和立即寻址等方式。
4 、以间接地址为目的操作数的指令(3条)(Ri)表示Ri中的内容为指定的RAM单元。
汇编格式机器码格式操作注释MOV @Ri,A; 1111 011i (A)→(Ri) 将累加器A中内容传送到间接寻址(Ri为R0或R1)所得的片内RAM单元中。
MOV @Ri,direct; 0101 011i (direct)→(Ri) 将直接寻址得的片内RAM direct 单元内容或特殊功能寄存器中内容传送到间接寻址(Ri为R0或R1)所得的片内RAM单元中。
MOV @Ri,#data; 0111 011i #data→(Ri) 将立即数传送到间接寻data 址(Ri为R0或R1)所得的片内RAM单元中。
MOV指令在片内存储器的操作功能如图3.2-1示。
图3.2-1 传送指令在片内存储器的操作功能@RidirectRn#dataACC5、十六位数据传送指令(1条)这条指令的功能是把16位常数送入DPTR。
DPTR由DPH和DPL 组成。
例:MOV DPTR #1000H;(DPTR)=1000H,(DPH)=10H,(DPL)=00H6 、查表指令(2条)例如上述两条指令的操作过程如图3.2-2所示。
基地址寄存器+变址寄存器间接寻址@PC+A(程序存储器0-64K)基地址寄存器+变址寄存器间接寻址@DPTR+A(程序存储器0-64K)A寄存器图3.2-2 程序存贮器传送执行下面程序段后结果如何?MOV DPTR, #2000H ;(DPTR)=2000HMOV A , #0AH ;(A)=0AHMOVC A, @A+DPTR ;(A)=(200AH)=11H例2:若初始ROM内容为:100FH 01H1010H 02H1011H 03H1012H 04H所以,最后结果为:(A)=01 (R0)=01 (PC)=1004执行下面程序后的结果如何?1000H 74 0D MOV A, #0DH;(A)=0DH1002H 83 MOVC A, @A+PC;(PC)=1002+1=1003H,(A)=((A)+(PC))=(0D+1003)=(1010H)(A)=01H1003H F8 MOV R0, A;(R0)=(A)=01H7、累加器A与片外RAM传送指令(4条)在89C51指令系统中,CPU对片外RAM的访问只能用寄存器间接寻址的方式,且仅有四条指令:第2,4两条指令以DPTR为片外数据存储器16位地址指针,寻址范围达64KB。
其功能是DPTR所指定的片外数据存储器与累加器A之间传送数据。
第1,3两条指令是用R0或R1作低8位地址指针,由P0口送出,寻址范围是256字节。
这两条指令完成以R0或R1为地址指针的片外数据存储器与累加器A之间的传送数据。
上述四条指令的操作如图3.2-3所示:例如A寄存器寄存器间接寻址@R1.@R0片内RAM 0-255寄存器间接寻址@DPTR片外RAM 0-64K例: 若片内RAM (30H)=01H,片外RAM (30H)=02H,执行下面程序段后的结果如何。