第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 指令格式
操作码字段:用来说明该指令所要完成的操作。 地址码字段:用来描述该指令的操作对象。一般是直接给 出操作数,或者给出操作数存放的寄存器编号,或者给出操作 数存放的存储单元的地址或有关地址的信息。 根据地址码字段所给出地址的个数,指令格式可分为零地 址、一地址、二地址、三地址、多地址指令。大多数指令需要 双操作数,分别称两个操作数为源操作数和目的操作数,指令 运算结果存入目的操作数的地址中去。这样,目的操作数的原 有数据将被取代。
第5章 指令系统

第五章指令系统操作系统:DOS,WINDOWS,UNIX,......程序设计语言服务程序:KV300,PCTOOLS,...机器语言:汇编语言:高级语言解释执行编译执行PASCAL易教好学FORTRAN 计算C 长于计算控制BASIC易学好记COBOL事务管理应用软件:WORD,EXCEL,ACCESS,DBASE,......二进制,CPU直接执行的指令系统把源程序汇编成机器语言目标程序计算机系统软件5.1 指令系统概述计算机系统中运行的软件有系统软件和应用软件两种。
系统软件对整个计算机系统进行调度、管理、监视、服务,为用户提供使用方便,扩大机器功能,提高机器使用效率。
应用软件是用户针对某种领域实际应用需求而开发的软件。
许多通用商品化的应用软件现已成为系统软件,如Word 等。
前述所有各种软件的设计基础就是计算机的指令系统。
名词解释:指令:命令计算机直接进行某种基本操作的二进制代码串,也叫机器语言代码。
每条指令可以完成一个独立的算术运算或逻辑运算操作。
从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令。
微指令是微程序级的命令,它属于硬件;宏指令是由若干条机器指令组成的软件指令,它属于软件;而机器指令则介于微指令与宏指令之间。
指令系统:一台计算机能直接理解与执行的全部指令的集合称为该机的指令系统,也叫机器语言。
指令系统是进行计算机逻辑设计和编制程序的基本依据。
它直接说明了这台计算机的功能.不同类型CPU的指令系统是不能混用与兼容的,但同一系列的CPU一般升级后指令都有扩充,并可兼容。
复杂指令系统计算机(CISC)和精简指令系统计算机(RISC)5.2指令格式5.2.1 指令的结构指令字:代表指令的一组二进制代码信息;指令长度:指令字中二进制代码的位数;1、典型的指令格式OP A操作码OP——指明操作性质的命令码,提供指令的操作控制信息。
操作对象A——说明操作数存放的地址,有时则就是操作数本身。
第五章 指令系统习题

第五章指令系统一、选择题1、采用直接寻址,操作数在中。
A、主存B、寄存器C、硬盘D、光盘2、为了缩短指令中某个地址段的位数,有效的方法是采取。
A、立即寻址B、变址寻址C、间接寻址D、寄存器寻址3、指令系统采用不同寻址方式的目的是。
A、实现存储程序和程序控制B、缩短指令长度,扩大寻址空间,提高编程灵活性C、可以直接访问外存D、提供扩展操作码的可能,并降低指令译码难度4、假设寄存器R中的数值为200,主存地址为200和300的地址单元中存放的内容分别是300和400,则方式下访问到的操作数为200。
A、直接寻址200B、寄存器间接寻址(R)C、存储器间接寻址(200)D、寄存器寻址R5、输入输出指令的功能是。
A、进行算术运算和逻辑运算B、进行主存和CPU之间的数据传送C、进行I/O设备和CPU之间的数据传送D、改变程序执行的顺序6、下列关于RISC的描述中,不正确的是。
A、只选用简单的,使用频率高的指令,所以采用RISC的CPU的性能较差,不能运行复杂的指令B、指令长度固定,指令格式和寻址方式少C、采用硬布线逻辑,提高指令执行的速度D、采用指令流水线技术,大部分指令都能在一个机器周期中完成。
7、间接寻址是指。
A、指令中直接给出操作数地址B、指令中直接给出操作数C、指令中间接给出操作数D、指令中间接给出操作数的地址8、基址寻址方式中,操作数的有效地址等于。
A、基址寄存器的内容加上形式地址(偏移量)B、变址寄存器的内容加上形式地址(偏移量)C、程序计数器的内容加上形式地址(偏移量)D、堆栈寄存器的内容加上形式地址(偏移量)8.通常指令编码的第一个字段是__ __A.操作B.指令C.操作码D.控制码9.堆栈常用于 _A.程序转移B.输入输出C.数据移位D.保护程序现场10.在堆栈中保持不变的是_ _A.栈指针B.栈底C.栈顶D.栈中数据11.设寄存器R=1000,地址1000处的值为2000,2000处为3000,PC的值为4000,用相对寻址方式,-2000(PC)的操作数是__ __A.4000 B.3000C.5000 D.700012.直接转移指令的功能是将指令中的地址代码送入__ __A.PC B.累加器C.存储器 D.地址寄存器13.以下的 D 不能支持数值处理。
第五章指令系统

第六节 高级指令一、 高级指令的构成高级指令由高级指令功能号(F0~F165)、助记符和操作数三部分构成。
高级指令功能号用于输入高级指令。
编程时,高级指令前应加触发信号。
编程时,若多个高级指令连续使用同一触发信号,则不必每次都写出该触发信号。
DF )。
二、高级指令的类型1、数据传输指令这些指令可对16位或32位数据进行拷贝或交换。
F0 MV , WX0 , WR1注:[* ] 标志(特殊继电器)可用于该指令(根据情况通断);[ ] 空白标志(特殊继电器)不可用于该指令(保持原状态)。
2、BIN(二进制)算术运算指令这些指令可对16位或32位数据进行加、减、乘、除运算。
如表5.37所示。
3、BCD码算术运算指令这些指令可对BCD码数据进行加、减、乘、除运算。
4、数据比较指令这些指令可对16位或32位数据进行比较。
5、逻辑运算指令这些指令可实现逻辑(与、或、异或、同或)运算。
6、数据转换指令这些指令可对16位或32位数据按指定格式转换。
7、数据移位指令这些指令可将数据以字为单位或以十六进制数的位为单位移位。
8、可逆计数器和左/右移位寄存器指令这些指令可实现加/减计数和数据左/右移位。
9、数据循环移位指令这些指令可使数据向右或向左循环移位。
10、位操作指令这些指令以位为单位处理数据。
11、辅助定时器指令该指令是以0.01s 为单位的延时动作定时器。
号12、特殊指令这些指令执行特殊功能以控制FP1的运行。
13、高速计数器特殊指令这些指令执行高速计算器功能。
第 5 章 指令系统

2013-11-23
25
• 一地址指令长度短,指令执行速度快 (若A为存储器地址,只需一次访存取 数),对于字长较短的微、小型机,是 一种常用的指令格式。
2013-11-23
26
5.零地址指令
• 零地址指令中只有操作码而无地址码,其指令 格式为; OP
• 零地址指令有两种情况: • ① 不需操作数的控制型指令,如HALT、WAIT、 NOP等。 • ② 运算型零地址指令:操作数隐含在堆栈中。
2013-11-23 15
• 三地址指令格式:
OP A1 A2 A3
• • • • •
A1:第一源操作数的存储器地址或寄存器地址; A2:第二源操作数的存储器地址或寄存器地址; A3:存放操作结果的存储器地址或寄存器地址; 三地址指令功能为: (A1)OP(A2)→A3; PC 指示下条指令地址
2013-11-23
2013-11-23 29
2) 变长编码
• 变长编码的指令操作码:不同指令的操作码长度 不完全相同,操作码的位数不固定,分散地放在 指令字的不同位置上。 • 变长编码操作码的特点: • 可用较短的指令字长表示更多的操作类型,寻址 较大的存储空间。 • 操作码的位数不固定,且位置分散,增加了指令 译码与分析的难度,使硬件设计复杂化。 • 在早期的微、小型机中,由于指令字较短,均采 用变长编码的指令操作码。如Intel 8086、PDP一 11等机器。
2013-11-23 32
0000 xxxx xxxx xxxx 15条三地址指令 1110 xxxx xxxx xxxx 1111 0000 xxxx xxxx 15条二地址指令 1111 1110 xxxx xxxx 1111 1111 0000 xxxx 15条单地址指令 1111 1111 1110 xxxx 1111 1111 1111 0000 16条零地址指令 1111 1111 1111 1111 2013-11-23 33
第5章 8086的指令系统

图5.4
例5.16的执行情况
寄存器相对寻址可用于表格处理或访问一维数组中的元
素。把表格的首地址设置为位移量,利用修改间接寄存器的值
来存取表格中的任意一个元素。 表5.2列举了一些寄存器相对寻址方式所用的示例。
表5.2 寄存器相对寻址示例
指 令 二进制 位数 功 能 说 明 将 ES 附加段有效地址为 DI 加上 64H 中字的内容送入 AX 寄存器中 将数据段有效地址为 SI 加上偏移量中字节的内容送入 CL 寄存器中 将数据段有效地址为 EAX 加上 0AH 中字的内容送入 DI 寄存器中 将数据段有效地址为 EBX 加上偏移量中双字的内容送入 EAX 寄存器中
图5.2
例5.5的执行情况
【例5.8 】 MOV AX, 系统默认为 数据段)
这种寻址方法是以数据段的地址为基础,可在多达64KB 的范围内寻找操作数。 ② 8086中允许段超越(除默认的数据段DS以外),即允许 操作数在以代码段、堆栈段或附加段为基准的区域中。
寄存器寻址使用的寄存器类型要匹配,8位和16位,16
位和32位及8位和32位寄存器是决不能混用的。有些指令可 除外,如:SHL AX,CL。详细在后面讲。
除上述两种寻址方式外,以下各种寻址方式的操作数 均在代码段以外的存储区中,寻址方式通过不同的途径求 得操作数的偏移地址,即有效地址EA ( Effective Address)。 3.直接寻址(Direct Addressing)
第5章
INTEL 8080/8088 指令系统
5.1 概述
5.2 8086/8088的寻址方式
5.3 指令格式 5.4 8086 /8088指令系统 习题与思考题
5.1 概
述(p70)
《计算机组成原理》5-指令系统

◆ CPU中设置程序计数器(PC)对指令的顺序号进行计 数。PC开始时存 放程序的首地址,每执行一条指令,PC 加”1”,指出下条指令的地址, 直到程序结束。
跳跃寻址 Leabharlann 转移指令指出AA22AA33
…
…
…
…
1111 1110 A2 A3
12 位操作码
1111 1111 0000 1111 1111 0001
AA33
…
…
…
…
1111 1111 1110 A3
16 位操作码
…
…
1111 1111 1111 0000 1111 1111 1111 0001 1111 1111 1111 1111
24
双字
28
双字(地址32)▲
32
双字
36
边界未对准
地址(十进制)
字( 地址2)
半字( 地址0)
0
字节( 地址7) 字节( 地址6)
字( 地址4)
4
半字( 地址10)
半字( 地址8)
8
5.2.2 数据类型
2、数据在计算机中存放方式
存储字长内部字节的次序
例: 12345678H如何存储? 12 34 56 78H
5.3.1指令寻址
指令寻址----计算指令有效地址的方法
指令地址
指令
指令地址寻址方式
PC +1
0 LDA
11 ADD 22 DEC 33 JMP
4 LDA
5 SUB 6 INC
77 STA 88 LDA
第五章指令系统

教学内容安排•第一章绪论•第二章数码系统•第三章运算方法和运算器•第四章存储系统•第五章指令系统•第六章中央处理器•第七章输入输出设备•第八章输入输出系统第五章指令系统5.1 基本概念5.2 指令格式5.3 寻址方式5.4 指令的种类5.5 指令系统的发展教学重点和难点•寻址方式第五章指令系统 5.1 基本概念•指令(Instruction):计算机的硬件(CPU)设计好以后它能直接识别并执行的基本操作。
•指令系统(Instruction Set)或指令集:某个CPU能够直接识别并执行的所有指令的集合。
•指令字长:指令的二进制代码的位数。
注意:指令系统均针对特定的CPU而言,不同的CPU它们的指令系统可能不相同或不完全相同。
第五章指令系统5.1 基本概念5.2 指令格式5.3 寻址方式5.4 指令的种类5.5 指令系统的发展教学重点和难点•寻址方式第五章指令系统 5.2 指令格式任何一条机器指令是机器语言的一个语句,它由一组二进制代码构成。
包括两部分:•操作码•地址码第五章指令系统 5.2 指令格式根据地址码所给出的地址的个数,可以把指令分为零地址指令,一地址指令,二地址指令,三地址指令,和多地址指令。
第五章指令系统 5.2 指令格式指令字长与机器字长•指令的长度取决于操作码的长度和地址码的长度。
任何一条指令构成一个指令字。
•一个指令字中所包含的二进制数码的位数称为指令字长度。
•机器字长是指计算机的运算部件一次能直接处理的二进制数据的位数。
•指令长度与机器字长没有固定的关系,指令长度可以小于或大于机器的字长。
如单字长,半字长,双字长甚至4字长指令都是可取的。
•例如Intel8086的机器字长是16位,而指令字长最短的有8位,最长的有48位。
第五章指令系统 5.2 指令格式8086 微处理器的存储器管理•Intel 8086是字长16位的处理器,地址线20根,按字节编址,最大存储容量为1MB。
地址范围是00000H-FFFFFH。
指令系统

3. 60年代出现了系列(series)计算机。 原因:为了继承已有的软件,减少软件的开发费用. 系列计算机:是指基本指令系统相同,基本体系结构相同 的一系列计算机。 如IBM370系列,VAX—11系列,IBMPC(XT/AT/286 /386/486/Pentium)微机系列等。 优点:在旧机种上运行各种软件可以不加任何修改地在 新机种上运行。(向下兼容)
二 .地址码结构
计算机执行一条指令所需要的全部信息都必须包含在指令 中,对于一般的指令来说,除去操作码(OP)之外,指令还应 包含以下信息: (1)第一操作数地址,用A1表示 (2)第二操作数地址,用A2表示 (3)操作结果存放地址,用A3表示 (4)下条将要执行指令的地址,用A4表示 这些信息可以在指令中明显给出,称为显地址,也可依照 某种事先的约定,用隐含方式给出,称为隐地址。 下面介绍几种指令格式。
为了解决这个问题,在70年代末人们提出了便于VLSI实现 的精简指令系统计算机,简称RISC(精简指令系统计算机)。 CISC:Complex instruction set computer RISC: reduced instruction set computer
5.2 指令格式
计算机的指令格式与机器的字长、存储器的容量 及指令的功能都有很大的关系。
指令的长度与机器的字长没有固定的关系,
它既可以小于或等于机器的字长,也可以大于机器 的字长。前者称为短格式指令,后者称为长格式指 令,一条指令存放在地址连续的存储单元中。 在同一台计算机中可能既有短格式指令又有长 格式指令,但通常是把最常用的指令( 如算术逻辑运 算指令、数据传送指令 ) 设计成短格式指令,以便节 省存储空间和提高指令的执行速度。
例.(方法一) 指令字长16位,可含有3、2、1或 0个地址,每个地址占4位。(见教材P130~131) 操作码 地址码
计算机组成原理第五章指令系统(含答案)

第五章指令系统5.1 指令系统概述及指令格式随堂测验1、下列关于指令(机器指令)的描述中,正确的是()(多选)A、是计算机系统中硬件与软件之间的接口B、是程序员操作计算机硬件的接口C、是冯诺依曼结构计算机实现“程序控制”原理的载体D、是指挥计算机指令特定操作的命令2、下列关于指令的描述中,正确的是()(多选)A、指令的操作码定义了指令的功能B、指令的地址码字段是不可缺少的C、单地址指令只能处理一个数据D、指令的地址码字段可以表示一个地址,也可以表示一个数据3、下列关于指令格式的描述中,正确的是()(多选)A、对采用定长操作码的计算机而言,若需要支持65条指令,则其操作码字段最少需要7位B、若指令中每个地址字段位均为4位,则对RR型指令而言,可以使用16个寄存器C、指令字长确定的情况下,指令的地址字段越多,则其位数就越少D、计算机硬件是影响指令格式设计的因素之一5.2 寻址方式及指令寻址随堂测验1、直接寻址的无条件转移指令执行的效果是将将指令地址送入()(单选)A、程序计数器PCB、地址寄存器MARC、数据缓冲寄存器MDRD、偏移地址累加器2、下列关于寻址方式的描述中,正确的是()(多选)A、包括指令寻址方式和数据的寻址方式B、形成指令和数据所在虚拟存储器地址的方法C、形成指令和数据所在主存地址的方法D、形成指令和数据在Cache地址的方法3、下列关于指令寻址方式的描述中,正确的是()(多选)A、指令的有效地址通过指令中形式地址字段给出B、程序中有条件和无条件转移采用的就是跳跃寻址C、指令的不同寻址方式需要通过寻址方式特征位来标识D、顺序结构中CPU依次访问不同指令采用的就是顺序寻址4、某计算机字长64位,采用单字长指令,下列描述中,正确的是()(多选)A、指令字长为64位B、指令字长为16位C、顺序寻址时,PC <- (PC) + 1D、顺序寻址时,PC <- (PC) + 85.3 操作数寻址方式随堂测验1、在数据寻址方式中,获取操作数最快的寻址方式是( ) ( 单选)A、寄存器寻址B、立即数寻址C、直接寻址D、间接寻址2、若指令的形式地址中给出的是操作数的有效地址, 该指令采用的寻址方式是( ) ( 单选)A、直接寻址B、立即数寻址C、寄存器寻址D、变址寻址3、假定计算机字长64位,采用单字长指令, 某指令采用间接寻址,则取操作数至少需要访问主存的次数为( ) (单选)A、1B、2C、3D、44、相对寻址方式中,指令所提供的相对地址是( ) (单选)A、本条指令在内存中的首地址为基准位置的偏移量B、本条指令的下条指令在内存中的首地址为基准位置的偏移量C、本条指令的上条指令在内存中的首地址为基准位置的偏移量D、本指令操作数的直接有效地址5、下列关于操作数的寻址方式的描述中,正确的是()(多选)A、直接寻址方式下,地址字段的位数影响数据的寻址范围B、间接寻址方式下,地址字段的位数影响数据的寻址范围C、立即数寻址方式下,地址字段的位数影响立即数的大小D、寄存器寻址方式下,地址字段的位数影响立即数的大小5.4 指令格式设计随堂测验1、采用将操作码字段扩展到没有使用的地址码字段的指令格式设计方案的主要目的是()(单选)A、减少指令长度B、充分利用地址字段,提高指令效率C、保持指令长度不变,增加指令数量。
第五章 PLC基本指令系统----计数器+典型案例

1L
Q0.0 Q0.1
Q0.2
Q0.3
S7200 CPU 222
1M
I0.0
I0.1
M L+
DC 24V
停止按钮SB1 启动按钮SB2
脉冲的上升沿(由0到1)信号时,计数器的当前值减1。当计数器当前值等于或大于设定值 (PV)时,该计数器位被置1。当复位输入端(R)有效或用复位指令(R)对计数器执行复 位操作时,计数器被复位,即计数器位为0,且当前值清零。
《第5章 PLC基本指令系统》
五、S7-200 PLC的基本指令
11. 计数器指令
《第5章 PLC基本指令系统》
六、典型控制环节的PLC程序设计 2、大功率电动机的星-三角减压起动控制程序
输入信号
停止按 I0.0 钮SB1
起动按 I0.1 钮SB2
输出信号 接触器 Q 0.1 KM1
接触器 Q 0.2 KM2
接触器 Q 0.3 KM3
FR
KM1
KM2
KM3
~
KM3
KM2
1L
Q0.0 Q0.1
《第5章 PLC基本指令系统》
五、S7-200 PLC的基本指令
12. 比较指令
比较指令是将两个数值或字符串按指定条件进行比较,比较条件成立时,比较触点就闭合。 所以比较指令实际上也是一种位指令。
类型: 按两个操作数的数据类型分:字节比较、整数比较、双字整数比较和实数比较。 比较指令的运算符有6种: ==(等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于) 和 <>(不等于)。
C21当前值 0
C21位
//计数值为0时接通Q0.0
第5章 指令系统

南京理工大学紫金学院计算机系 陈琳琳
3)间接寻址 )
指令字地址码部分给出的是操作数地址的地址 指 指令字地址码部分给出的是操作数地址的地址/指 操作数地址的地址 示操作数地址的地址指示字。 示操作数地址的地址指示字。
操作码 OPMOV 寻址方式 形式地址 AX, , 间接寻址 @1000H A 主存 A
10)其他寻址方式 ) 扩展寻址、页面寻址、堆栈寻址、相联寻址等。 扩展寻址、页面寻址、堆栈寻址、相联寻址等。
A1、A2均为寄存器地址的
寄存器-存储器型( 寄存器 存储器型(R-S型)指令 一个半地址指令 存储器型 型 指令/一个半地址指令
A1、A2中一个是寄存器地址,另一个是存储器地址 中一个是寄存器地址,
南京理工大学紫金学院计算机系 陈琳琳
一地址指令/ ④ 一地址指令/单地址指令
AC
OP OP A1
第一源操作 数的地址
南京理工大学紫金学院计算机系 陈琳琳
9)基址加变址寻址 )
指令字中的地址码部分所指定的基址寄存器的内 指令字中的地址码部分所指定的基址寄存器的内 变址寄存器的内容及指令字中的 指令字中的形式地址相 容、变址寄存器的内容及指令字中的形式地址相 形成操作数的有效地址。 加形成操作数的有效地址。
MOV AX, [BX+DI+100H] EA = (BX) +(DI) +100H
2. 操作数的寻址方式
形式地址——指令中给定的地址 指令中给定的地址 形式地址 有效地址EA——操作数在主存中的实际地址 操作数在主存中的实际地址 有效地址 操作数在 1)立即寻址——给寄存器 存储器单元赋值 )立即寻址 给寄存器/存储器单元赋值 给寄存器
指令所需的操作数在指令字的地址码部分直接给出 操作码 OP MOV 寻址方式 形式地址 AX, , 立即寻址 2000H D 取指令的同时取操作数, 取指令的同时取操作数,速度快 D的位数限制了数据范围 的位数限制了数据范围
计算机组成与体系结构

PUSH、POP指令 隐含寻址 管理堆栈:三个地址寄存器
堆栈指针(Stack Pointer) 堆栈基址(Stack Base) 堆栈界限(Stack Limit) 堆栈的典型应用: 表达式的解析 程序的递归嵌套 ……
操作数地址字段的位数决定了内存的规模 指令格式设计准则之一:在满足操作种类、寻址范 围和寻址方式的前提下,指令尽可能短。这是指令 功能完备性与有效性的统一。
指令长度=操作码的长度 +操作数地址的长度操作数地址个数
指令格式设计准则之二:指令长度为字节的整数倍。 指令的长度与机器的字长没有固定的关系
23
5.2 数据存储与寻址方式 5.2.2 寻址方式
寻址方式: 隐含寻址 立即寻址 直接寻址 间接寻址 寄存器寻址、寄存器间接寻址 相对寻址 基址寻址 变址寻址
指令系统所面临的主存空间: 逻辑空间 物理空间
24
5.2 数据存储与寻址方式 5.2.2 寻址方式
主存空间
A程序的逻辑地址空间
图5.8 Pentium寻址方式
SS 选择子 GS 选择子
FS 选择子 ES 选择子 DS 选择子 CS 选择子
+
×
有效地址
基地址寄存器 变址寄存器
堆栈(Stack):后入先出,Last In First Out
TOP
A
B
C
D
E
TOP
F
A
B
C
D
E
TOP A B C D E
TOP A*B C
D E
X BOTTOM
开始
X BOTTOM
PUSH
X BOTTOM
05 指令系统

复位定时器指令
青岛大学-西门子先进自动化技术联合实验室
23
第 5章
STEP 7中的S5计数器
STEP 7中的计数器有三类:加计数器CTU, 减计数器CTD和加减计数器CTUD。
青岛大学-西门子先进自动化技术联合实验室
24
第 5章
加计数器及其时序图
青岛大学-西门子先进自动化技术联合实验室 25
第 5章
47
第 5章
点对点指令
青岛大学-西门子先进自动化技术联合实验室
48
第 5章
点对点指令
青岛大学-西门子先进自动化技术联合实验室
49
第 5章
中断指令
附加和分离指令
青岛大学-西门子先进自动化技术联合实验室
50
第 5章
启动和取消延时中断指令
青岛大学-西门子先进自动化技术联合实验室
51
第 5章
禁用和启用报警中断指令
37
第 5章
字逻辑运算指令
青岛大学-西门子先进自动化技术联合实验室
38
第 5章
移位和循环指令
青岛大学-西门子先进自动化技术联合实验室
39
第 5章
[例] 通过循环指令实现彩灯控制。 编写程序如图5-30所示,其中I0.0为控制开关, M1.5为周期为1s的时钟存储器位,实现的功能为当 按下I0.0,QD4中为1的输出位每秒钟向左移动1位。 第1段程序的功能是赋初值,即将QD4中的Q7.0置 位,第2段程序的功能是每秒钟QD4循环左移一位。
青岛大学-西门子先进自动化技术联合实验室
15
第 5章
青岛大学-西门子先进自动化技术联合实验室
16
第 5章
青岛大学-西门子先进自动化技术联合实验室
计算机组成原理第5章

高级语言与计算机的硬件结构及指令系 统无关,在编写程序方面比汇编语言优越。 但是高级语言程序“看不见”机器的硬件结 构,不能用于编写直接访问机器硬件资源的 系统软件或设备控制软件。为此,一些高级 语言提供了与汇编语言之间的调用接口。用 汇编语言编写的程序,可作为高级语言的一 个外部过程或函数,利用堆栈来传递参数或 参数的地址。
字节数 0或1 指令 前缀 0或1 0或1 操作数 地址 段取代 长度取代 长度取代 0或1
(a) 前 缀
字节数 操作码 Mod 位数 2 0或1 Reg或 操作码 3 0或1 基址 比例 R/M S 变址I B 3 3 3 0、1、2、4 偏移量 0、1、2、4 立即数
(b) 指 令
指令的前缀是可选项,其作用是对其后的指令 本身进行显示约定。每个前缀占1个字节。 指令前缀:包括LOCK(锁定)前缀和重复前缀。 LOCK前缀用于多CPU环境中对共享存储器的排他 性访问。 重复前缀用于字符串的重复操作,以获得比软件循 环方法更快的速度。 段取代前缀:根据指令的定义和程序的上下文,一 条指令所使用的段寄存器名称可以不出现在指令格 式中,这称为段缺省规则。当要求一条指令不按缺 省规则使用某个段寄存器时,必须以段取代前缀明 确指明此段寄存器。
操 作 码
OP
2.单地址指令
单地址指令指的就是只有一个地址码的指令,也 称为单操作数指令。这种指令利用硬件来隐含地 提供另一个操作数和结果数的地址,如累加寄存 器(Accumulator,简称AC)。 Accumulator AC
操作码 地址码
OP
X
3.二地址指令
二地址指令有两个地址码字段X和Y,分别指明 参与操作的两个数在内存或运算器中通用寄存器 的地址,其中地址Y兼作存放操作结果的地址。
第5章指令系统-2

31
河南理工大学
14:05
第5章 S7-1200 基本指令
5.1 基本指令
例5-1:顺-SB1 (stop1) I0.1---SB2 (start1) I0.2---SB3 (stop2) I0.3---SB4 (start2) I1.2---FR1 I1.3---FR2 Q0.0—KM1(M1) Q0.1—KM2(M2) 一对启动和停止按钮,顺序启动多台电机之后能否顺序停止?
I0.0 Q0.3
Q0.4
Q0.5 Q0.6
21
河南理工大学
14:05
第5章 S7-1200 基本指令
5.1 基本指令 ----- 位逻辑指令
【例2-2】抢答器设计
有I0.0,I0.1 和I0.2三个抢答输入,对应输出分别为Q4.0, Q4.1和 Q4.2。 要求:三人任意抢答,谁先按动瞬时按钮,谁的指示灯优先亮,且只能亮一 盏灯,进入下一个问题时,主持人按复位按钮,抢答重新开始。
28
河南理工大学
14:05
第5章 S7-1200 基本指令
主要内容回顾
29
14:05
第5章 S7-1200 基本指令
三、边沿指令
例3-3 按动一次瞬时按钮I0.0,输出Q4.0亮,再按动一次按钮,输出Q4.0灭,
重复以上过程。
30
河南理工大学
14:05
第5章 S7-1200 基本指令
例3-4 若故障信号I0.0为1,使Q4.0控制的指示灯以1HZ的频率闪烁。操作
第5章 指令系统习题

第5章指令系统〔习题5.1〕简答题(1)定长指令字和定长操作码是一回事吗?(2)什么是Load-Store指令集结构?(3)为什么将查找操作数的方法称为数据寻“址”方式?(4)是什么特点决定了目标地址的相对寻址方式应用最多?(5)堆栈的存取原则是什么?(6)IA-32处理器的INC,DEC,NEG和NOT都是单操作数指令,这个操作数应该是源操作数还是目的操作数?(7)IA-32处理器的乘除法运算针对无符号数和有符号数,有两种不同的指令。
只有一种指令的加减法如何区别无符号数和有符号数运算?(8)为什么判断无符号数大小和有符号大小的条件转移指令不同?(9)汇编语言的标识符大小写不敏感意味着什么?(10)为什么说RISC是计算机结构上的革新?〔习题5.2〕判断题(1)存储器寻址方式的操作数当然在主存了。
(2)堆栈的操作原则是“先进后出”,压入数据是PUSH指令、弹出数据是POP指令。
(3)空操作NOP指令其实根本没有指令。
(4)指令指针或者还包括代码段寄存器值的改变将引起程序流程的改变。
(5)JMP指令对应高级语言的GOTO语句,所以不应使用。
(6)IA-32处理器的条件转移指令Jcc要利用标志作为条件。
(7)处理器的传送指令MOV属于汇编语言的执行性语句。
(8)MASM汇编语言的注释用分号开始,但不能用中文分号。
(9)通常,RISC处理器只有“取数LOAD”和“存数STORE”指令访问存储器。
(10)RISC的指令条数少、指令简单、格式固定,所以编译程序也就容易实现,并且不需要优化。
〔习题5.3〕填空题(1)JMP指令根据目标地址的转移范围和寻址方式,可以分成四种类型:段内转移、__________,段内转移、__________和段间转移、__________,段间转移、__________。
(2)IA-32处理器将ESI寄存器内容压入堆栈的指令是__________,将堆栈顶部数据弹出到EDI寄存器的指令是__________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 16位数据传送指令
MOV DPTR, #data16 功能:将16位数据送入地址寄存器DPTR中, 其中数据的高8位送入DPH中,低8位送入 DPL中。
3 外部数据传送指令
MOVX MOVX MOVX MOVX A, @DPTR A, @Ri @DPTR, A @Ri, A
MOV MOV MOV MOV MOV
direct, A direct, Rn direct, direct direct, @Ri direct, #data
这组指令的目的字节都是直接寻址单元,功 能是把源操作数的内容送入内部RAM单元。
MOV @Ri, A MOV @Ri, direct MOV @Ri, #data
MCS-51单片机的指令系统设有位操作指令 集,与位处理器和可位寻址位构成一个完整 的位处理机,对于设计那些处理位变量的程 序十分有效,特别适用于逻辑控制应用。
二、寻址方式
寻址方式就是确定操作数或下一条指令的地 址的方法。 1 立即寻址 立即寻址就是指令中直接给出操作数的寻址 方式。 0 1 1 1 0 1 0 0 操作码 MOV A, #30H 0 0 1 1 0 0 0 0 立即数 立即数多为8位, A 只有1个指令立即 数为16位,如: MOV DPTR, #2000H
这组指令的目的字节都是寄存器间接寻址单 元,功能是把源操作数的内容送入内部 RAM单元。
例 5-1 分析程序的执行结果
设内部RAM中30H单元的内容为50H,分析: MOV 60H, #30H ;立即数30H送入60H单元 MOV R0, #60H ;立即数60H送入R0 MOV A, @R0 ;间接寻址,60H单元内容送入A MOV R1, A ;将A中的内容送入R1 MOV 40H, @R1 ; 将30H单元内容送入40H单元 MOV 60H, 30H ;30H单元的内容送入60H单元
特别提示:堆栈中数据的压入和弹出应遵循 “先进后出”的原则。
表 5.1 数据传送类指令一览表
二、算术运算指令
算术运算指令包括:加、减、乘、除、加1、 减1等指令。 加减法结果影响:PSW的C、 AC、 OV、P 乘除法结果影响:PSW的C、 OV、P 加1减1结果影响:PSW的P
1 加法指令
2102H 2177H 0 0 1 1 0 0 0 0
rel=75H ALU 2102H+75H=2177H
6 变址寻址 是指令中指定的变址寄存器和基址寄存器的 内容相加形成操作数的地址。以累加器A作为 变址寄存器,程序计数器PC或地址寄存器 DPTR作为基址寄存器。
一般在所谓的查表指令中采用,用于访问程 序存储器。
这些指令是将源字节单元的内容与累加器A 的内容相加,再加上进位C的内容,结果存 入累加器A中。
3 带借位的减法指令
SUBB SUBB SUBB SUBB A,Rn A,direct A,@Ri A,#data A← (A)-(Rn)-(C) A← (A)-(direct) -(C) A← (A)-((Ri)) -(C) A← (A)-data -(C)
数据存储器
A
这种方式以R0、R1和DPTR作为间接寻 址寄存器,可以访问内部数据寄存器 128个字节和外部数据存储器64KB空间, 但不能访问特殊功能寄存器。
5 相对寻址
是以当前的PC值加上指令中给出的相对偏移量 形成程序转移的目的地址。相对偏移量是有符 号的8位二进制数,用补码表示。 程序存储器 JC rel 2100H 0 1 0 0 0 0 0 0 2101H 0 1 1 1 0 1 0 0
addr11---表示11位地址
rel----8位带符号的地址偏移量,取值范围为128~+127 bit---内部RAM和特殊功能寄存器中的可寻址位 @---间接寻址寄存器或基址寄存器的前缀 ()---表示括号中单元的内容 (( ))---表示间接寻址的内容 ----表示数据的传送方向 ----表示数据的交换
功能:在累加器A与外部数据存储器RAM单元 之间进行数据传送。
例5-2 将累加器A中的内容送入外部数据存 储器60H单元。 解:根据题意编程如下: MOV R0,#60H ;地址送间址寄存器 MOVX @R0, A ; ((R0)) ← A 例5-3 将外部数据存储器的1F00H单元的内 容传送到内部数据存储器的60H单元。 解:MOV DPTR,#1F00H MOV R0, #60H MOVX A,@DPTR MOV @R0, A
如:MOV C, P1.0
三、指令中的常用符号
Rn----当前寄存器区的8个工作寄存器R0-R7
Ri-----当前寄存器区的2个工作寄存器R0-R1 direct---8位内部数据存储器单元的地址及特殊功 能寄存器的地址 #data---表示8位常数
#data16----表示16位常数
addr16---表示16位地址
MCS-51单片机共有111种指令。这些指令可分为: 1 按指令所占的字节数分类 (1)单字节指令(49条) (2)双字节指令(46条) (3)三字节指令(16条) 2 按指令执行时间的长短分类 (1)单周期指令(65条) (2)双周期指令(44条) (3)四周期指令(2条)
3 按指令的功能分类 (1)数据传输指令(29条) (2)算术运算指令(24条) (3)逻辑运算指令(24条) (4)控制转移指令(17条) (5)位操作指令(17条)
第五章 指令系统
本节内容:
MCS-51单片机指令系统概述; MCS-51单片机指令的寻址方式; MCS-51单片机指令系统用法。
本节重点: MCS-51单片机指令寻址方式;
MCS-51单片机指令系统。 本节难点: MCS-51单片机指令系统。
第一节 指令系统概述
一、MCS-51系列单片机指令的分类
A a3 a2 A a2 a3 A a1 a0 61H a2 a3 A a0 a1 60H a0 a1
6 堆栈操作指令
入栈指令: PUSH direct ; SP ←(SP)+1 (SP) ← (direct) (direct) ← (SP) SP ←(SP)-累加器A的内容减去源字节单 元的内容加,再减去进位C的内容,结果存 入累加器A中。
注意:
加减运算对PSW中状态标志位的影响:
加法运算的最高位有进位或减法运算的最高 位有借位时,进位位C置1,否则清0 。
加法运算低4位向高4位有进位,或减法运算 低4位向高4位有借位,辅助进位AC置1,否 则清0。
ADD ADD ADD ADD A,Rn A,direct A,@Ri A,#data A ←(A)+(Rn) A ←(A)+(direct) A ←(A)+((Ri)) A ←(A)+data
加法指令是将源字节单元的内容与累加器A 的内容相加,结果存入累加器A中。
2 带进位的加法指令
ADDC ADDC ADDC ADDC A,Rn A,direct A,@Ri A,#data A←(A)+(Rn)+(C) A← (A)+(direct) +(C) A← (A)+((Ri)) +(C) A← (A)+data +(C)
第二节 MCS-51单片机指令系统
一、数据传输指令
格式:MOV [目的字节], [源字节]
1 内部8位数据传送指令
汇编语言指令
MOV A, Rn MOV A, direct
机器语言指令
1110 1rrr
功能
A← (Rn)
1110 0101 direct
1110 011i 0111 0100 data
数据存储器 程序存储器
01110100
A 0011 0000 ALU
DPH
00100001 00000000
DPL
2130H 0 0 1 1 0 0 0 1
A=30H MOVC A, @A+DPTR
DPTR=21 00H
7 位寻址
位寻址是对内部RAM和特殊功能寄存器的可 寻址位的内容进行操作的寻址方式。
例5-4 将外部数据存储器的2000H单元的内 容传送到2100H单元。 解:MOV MOVX MOV MOVX DPTR,#2000H A, @DPTR DPTR,#2100H @ DPTR, A
4 查表指令
MOVC A, @A+PC MOVC A, @A+DPTR
PC= MCS-51提供了2条访问程序存储器的指令,可 1235 以用来访问其中的常数表格。称查表指令。 1232:MOV A, #30H 1234: MOVC A, @A+PC 1235: MOV 60H, A (A)+(PC)=1265 ...... 1265: 3FH
5 交换指令
SWAP A ;累加器低4位与高4位互换指令
例:设(A)=ABH,则SWAP A 后(A)=BAH
XCHD A, @Ri ;半字节交换指令,累加器 低4位Ri所指向的单元低4位互换互换指令。 例:设(A)=ABH,(R0)=30H,(30H)=12H,则 XCHD A,@R0后,(A)=A2H,(30H)=1BH
A ←(direct)
A ←(Ri) A ←(data)
MOV A, @Ri MOV A, #data
这组指令的功能是:把源操作数的内容送入累加器A。
MOV Rn, A
MOV Rn, direct MOV Rn, #data 这组指令的功能是: 把源操作数的内容 送入当前工作寄存器区的R0~R7中的某 一个寄存器。
C=0
OV=0 =1
AC=1
例5-8 设(A)=0C9H,(R2)=54H,(C)=1,执行指令