第五章指令系统
AVR单片机指令系统

第五章AVR单片机指令系统计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。
计算机只能识别和执行机器语言的指令。
为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。
汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。
AVR单片机指令系统是RISC 结构的精简指令集,是一种简明易掌握﹑效率高的指令系统。
SL-DIY02-3 开发实验器使用AT90S8535 单片机,有118 条指令, 而我们所做的11 个实验程序仅用了34 条指令, 我们重点讲这34 条指令, 其余指令就可自学了。
AVR 器件( 指令速查表) 118 条指令器件AT90S2313/2323/2343/2333 ,AT90S4414/4433/4434/8515,AT90S8534/8535 算术和逻辑指令BRCC k C 清零转位指令和位测试指令ADD Rd,Rr 加法BRSH k ≥转SBI P ,b 置位I/O 位ADC Rd,Rr 带进位加BRLO k 小于转(无符号) CBI P ,b 清零I/O 位◇ADIW Rdl,K 加立即数BRMI k 负数转移LSL Rd 左移SUB Rd,Rr 减法BRPL k 正数转移LSR Rd 右移SUBI Rd,Rr 减立即数BRGE k ≥转(带符号) ROL Rd 带进位左循环SBC Rd,Rr 带进位减BRLT k 小于转(带符号) ROR Rd 带进位右循环SBCI Rd,K 带C 减立即数BRHS k H 置位转移ASR Rd 算术右移◇SBIW Rdl,K 减立即数BRHC k H 清零转移SWAP Rd 半字节交换AND Rd,Rr 与BRTS k T 置位转移BSET s 置位SREG ANDI Rd,K 与立即数BRTC k T 清零转移BCLR s 清零SREG OR Rd,Rr 或BRVS k V 置位转移BST Rr,b Rr 的b 位送T ORI Rd,K 或立即数BRVC k V 清零转移BLD Rd T 送Rr 的b 位EOR Rd,Rr 异或BRIE k 中断位置位转移SEC 置位CCOM Rd 取反BRID k 中断位清零转移CLC 清零CNEG Rd 取补数据传送指令SEN 置位NSBR Rd,K 寄存器位置位MOV Rd,Rr 寄存器传送CLN 清零NCBR Rd,K 寄存器位清零◇LDI Rd,K 装入立即数SEZ 置位ZINC Rd 加1 ◇LD Rd, X X 间接取数CLZ 清零ZDEC Rd 减1 ◇LD Rd, X+ X 间接取数后+SEI 置位ITST Rd 测试零或负◇LD Rd,-X X 间接取数先-CLI 清零ICLR Rd 寄存器清零◇LD Rd,Y Y 间接取数SES 置位SSER Rd 寄存器置FF ◇LD Rd,Y+ Y 间接取数后+CLS 清零S 条件转移指令◇LD Rd, –Y Y 间接取数先-SEV 置位V RJMP k 相对转移◇LDD Rd,Y+q Y 间接取数+q CLV 清零V◇IJMP 间接转移(Z) ◇LD Rd, Z Z 间接取数SET 置位T RCALL k 相对调用◇LD Rd, Z+ Z 间接取数后+CLT 清零T◇ICALL 间接调用(Z) ◇LD Rd, –Z Z 间接取数先-SEH 置位H RET 子程序返回◇LDD Rd, Z+q Z 间接取数+q CLH 清零HRETI 中断返回◇LDS Rd,K 从SRAM 装入NOP 空操作CPSE Rd,Rr 比较相等跳行◇ST X ,Rr X 间接存数SLEEP 休眠指令CP Rd,Rr 比较◇ST X+ ,Rr X 间接存数后+WDR 看门狗复位CPC Rd,Rr 带进位比较◇ST –X,Rr X 间接存数先-90 条指令为CPI Rd,K 与立即数比较◇ST Y ,Rr Y 间接存数Attiny11/12/15/22=SBRC Rr,b 位清零跳行◇ST Y+ ,Rr Y 间接存数后+□+89 条基本指令是SBRS Rr,b 位置位跳行◇ST –Y,Rr Y 间接存数先-AT90S1200SBIC P ,b I/O 位清零跳行◇STD Y+q ,Rr Y 间接存数+qSBIS P ,b I/O 位置位跳行ST Z ,Rr Z 间接存数BRBS s,k SREG 位置位转◇ST Z+ ,Rr Z 间接存数后+ 118 条指令器件= BRBC s,k SREG 位清零转◇ST –Z,Rr Z 间接存数先- ◇+ 90 条指令器件BREQ k 相等转移◇STD Z+q ,Rr Z 间接存数+qBRNE k 不相等转移◇STS k,,Rr 数据送SRAM说明: SL-DIY02-3 开发实验器的 11 个实验程序例子 , 仅用 34 条指令( 以红色表示 )1. 不带进位加法ADD 一不带进位加说明:两个寄存器不带进位 C 标志加,结果送目的寄存器 Rd 。
第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章指令系统习题

解:在三地址指令中三个地址字段占3×3 = 9位。 剩下12-9=3位作为操作码,四条指令的操作码分 别为000、001、010、011。 在单地址指令中,操作码可以扩展到12-3=9 位,其中前3位的代码是上述四个操作码以外的4 个编码,即首位为1。编码范围是1xxxxxxxx。共 有28=256个编码,取其前254个,100000000~ 111111101。剩下2个作为扩展用。 对于零地址指令,全部12位指令代码都是操 作码,其中前9位剩下2个编码与后3位的8个编码 正好构成16个操作码。
指令字长为16位,每个地址码为6位,设计 14条二地址指令,100条一地址指令,100 条零地址指令.
0000 1101 1110 1111 1111 1111
ห้องสมุดไป่ตู้
****** ****** ****** ******(14条二指令) 000000 ****** 100011 ******(100条一地址指令) 100100 000000 100101 100011(100条零地址指令)
某微机的指令格式如下: 15…..10 9..8 7…..0
操作码 X D
其中D为偏移量,X为寻址特征,具体定义如下: X=00 直接寻址 X=01 用变址寄存器X1变址寻址 X=10用变址寄存器X2变址寻址 X=11相对寻址 (PC)=1234H,(X1)=0037H,(X2)=1122h,指出下 列指令的有效地址. A)4420H B)2244H C)1322H D)3521H E)6723H
在计算机系统中, 地址为20H的单元中存放内容为30H; 地址为30H的单元中存放内容为40H; 地址为40H的单元中存放内容为50H; 地址为50H的单元中存放内容为60H; 下列操作后,AX存放内容是什么? Mov ax,20H MOV AX,(20H); MOV AX,((20h)); MOV AX,30H; MOV AX,(30H); MOV AX,((30H))
第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 不能支持数值处理。
第五章 PLC的步进顺控指令系统

OUT Y 3 STL S 24
OUT Y STL STL S S
OUT Y
OUT Y 4
连续用STL 表示并行会合
当转换条件X1接通时,由状态器521分两路同时 进入状态器522和S24,以后系统的两个分支并 行工作。图5-8中水平双线强调的是并行工作, 实际上与一般状态编程一样,先进行驱动处理, 然后进行转换处理,从左到右依次进行。当两 个分支都处理完毕后,S23、S25同时接通,转 换条件X4也接通时,S26接通,同时S23、S25自 动复位。多条文路汇合在一起,实际上是STL指 令连续使用(在梯形图上是STL接点串联)。STL 指令最多可连续使用8次,即最多允许8条并行 支路汇合在—起。
第三节 选择性分支与汇合及其编程
一、选择性分支与汇合的特点
从多个分支流程 中选择某一个单 支流程,图。
分支选择条件X1和X4不能同时接通。在状态器 S2l时,根据X1和X4的状态决定执行哪一条分 支。当状态器S22或S24接通时,S2l自动复位。 状态器S26由S23或S25置位,同时,前一状态 器S23或S25自动复位。
下面以图5-2所示的机械手为例,进一步说 明状态转移图。机械手将工件从A点向B点移 送。机械手的上升、下降与左移、右移都是 由双线圈两位电磁阀驱动气缸来实现的。抓 手对物件的松开、夹紧是由一个单线圈两位 电磁阀驱动气缸完成,只有在电磁阀通电时 抓手才能夹紧。该机械手工作原点在左上方, 按下降、夹紧、上升、右移、下降、松开、 上升、左移的顺序依次运行。它有手动,自 动等几种操作方式。
图5-l是一个简单状态转 移图实例。状态器用框 图表示。框内是状态器 元件号,状态器之间用 有向线段连接。其中从 上到下、从左到右的箭 头可以省去不画,有向 线段上的垂直短线和它 旁边标注的文字符号或 逻辑表达式表示状态转 移条件。旁边的线圈等 是输出信号。
课件:软件工程--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 逻辑数 逻辑运算
三、寻址方式
确定 本条指令 的 操作数地址
数据寻址
下一条 欲执行 指令 的 指令地址 指令寻址 • 指令的寻址——简单
《计算机组成原理》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_8086指令系统08

• 指令中的操作数:
– 可以是一个具体的数值 – 可以是存放数据的寄存器 – 或指明数据在主存位置的存储器地址
6
双操作数指令
MOV dst, src ; (dst) (src) ↑ ↑ ↑ 助记符 目的 源操作数 操作数 例: MOV AH,BL MOV AX,1234H
ADD dst, src ; (dst) (dst)+(src) ↑ ↑ ↑ 助记符 目的 源操作数 操作数 例: ADD AL,36H ADD BX,CX 大多数运算型指令都是双操作数指令,对这种指令, 有的机器(大中型)使用“三地址”指令:除给出参加 运算的两个操作数外,还要指出运算结果的存放地址 7
18
寄存器寻址
19
特 点
(1) 操作数就在寄存器中,不需要访问存
储器来取得操作数(指令执行时,操作就在 CPU的内部进行),因而执行速度快。
(2)寄存器号比内存地址短 * 在编程中,如有可能,尽量使用这种寻址 方式的指令。 * 寄存器寻址方式既可用于源操作数,也可 用于目的操作数,还可以两者都用于寄存器寻 址方式(如 MOV BX , AX )
物理地址 = 16d (DS) +
BP (SS)
(SI)
(DI)
28
物理地址 = 16d (SS) + (BP)
例:
MOV AX, [BX] MOV ES:[BX] , AX MOV DX, [BP] • MOV AX , [BX] ;
设 ( DS) = 2000H ,(BX) = 1000H PA =20000H + 1000H =21000H 指令的执行结果为: (AX) = 50A0H *指令中也可以通过“段跨越前缀”取 得其他段中的数据, 例如: MOV AX,ES: [BX] PA = 16d (DS) + (BX) PA = 16d (ES) + (BX) PA = 16d (SS) + (BP)
第五章指令系统

教学内容安排•第一章绪论•第二章数码系统•第三章运算方法和运算器•第四章存储系统•第五章指令系统•第六章中央处理器•第七章输入输出设备•第八章输入输出系统第五章指令系统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。
PLC编程与应用第2版习题答案第5章 指令系统

第五章指令系统
1、S7-1200提供了哪些类型的定时器?
2、编写程序来记录一台设备的运行时间,其设计要求为:当输入I0.0为高电平,设备运行,当I0.0为低电平时,设备不工作。
3、编写程序实现以下控制功能:第一次扫描时将VB0清零,用定时中断0,每100ms将VB0加1,VB0=100时关闭定时中断,并将Q0.0立即置1,设计主程序和中断程序。
4、设计一个8位彩灯控制程序,要求彩灯的移动速度和移动方向可调。
6、将8个16位二进制数存放在VW10开始的存储区内,在I0.3的上升沿,用循环指令求它们的平均值,并将结果存放在VW0中。
7、设计一个圆周长的计算程序,将半径存放在VW10中,取圆周率为3.1416,用浮点数运算指令计算圆周长,运算结果四舍五入后,转换为整数,存放在VW20中。
8、S7-1200包括哪些中断指令?。
5第五章 应用指令及高功能指令简介

CP1H机型梯形图
CPM1A机型梯形图
2. MOVB和XFRB指令 和 指令
MOVB根据控制字C的控制,传送指定通道所指定的多个位到目的通道
例
XFRB指令是传送指定通道所指定的多个位 到目的通道
n: 传送位数
m:目的通道开始位 I:源通道开始位
例
3. MOVD和XFER指令 和 指令
例:使用一个按钮,接入0.00端,灯H1、H2、H3分别接入输
出端10.00、10.01、10.02。要求第一次按按钮,灯H1 亮, 再按一次按钮,灯H1、H2同时亮,第三次按按钮,三个灯 都亮,再按一次按钮,灯全灭,依次循环。
2. SFTR指令 指令
左右移位SFTR指令能将数据从低位移向高位,或反向移动。
第二节 数据传送指令
数据传送有: 数据传送有:
传送MOV 倍长传送MOVL 取反传送MVN 倍长取反传送MVNL 位传送MOVB 多位传送XFRB 数字传送MOVD 块传送XFER等。
上述指令在CPM1A和CP1H中基本一致。 上述指令在CPM1A和CP1H中基本一致。 CPM1A 中基本一致
1. MOV、MOVL和MVN、MVNL指令 、 和 、 指令
结果标志 符号地址 实际地址 实际地址 备注 CP1H CPM1A
> P_GT CF005 255.05
= P_EQ CF006, 255.06
< P_LT CF007 255.07
>= P_GE Cபைடு நூலகம்000
<> P_NE CF001
<= P_LE CF002
的数据大于5且小于 例: D1的数据大于 且小于 时,100.00有输出 的数据大于 且小于20时 有输出
5 CORTEX-M3指令系统

Thumb2指令集中有许多指令都可以产生16位编码或32位 编码。对于这类指令,可使用某种指令宽度后缀来强制指定特 定的指令宽度。
后缀.W:强制制定指令产生32位编码
指令宽度后缀
后缀.N:强制制定指令产生16位编码
例:ADDS.N R1,R2,#2 ADDS.W R1,R2,#2
;16位Thumb指令 ;32位Thumb指令
计算机系统原理
(综合性强,理论结合应用的一门学科基础课程)
学科拓展课程
2020/7/30 .
1
第五章 Cortex-M3 指令 系统
Cortex-M3指令结构 ARM基本寻址方式 Cortex-M3指令集
数据处理类指令 跳转类指令 特殊寄存器访问 存储器访问2020/7/30 . Nhomakorabea2
§5.1 Cortex-M3 指令结构
10
基本寻址方式
❖立即寻址
立即寻址又称为立即数寻址,指令中直接给出操作数,只要 取出指令也就取到了操作数,这个操作数称为立即数。
例如: MOV R0, #2 ADD R0,R0,#100 R0←R0+100
; R0←2 ;
以“#”为前缀的操作数即为立即数。 十六进制的立即数:在“#”后加上“0x”或“&” 二进制的立即数:在“#”后加上“0b” 十进制的立即数:在“#”后加上“0d”或缺省。
2020/7/30 .
9
§5.2 ARM基本寻址方式
寻址方式:指处理器根据指令中给出的数据地址信息,找出操作 数的物理地址,实现对操作数的访问。
指令中操作数给出的形式不同有多种寻址方式:
寻址方式
立即寻址 寄存器寻址 寄存器移位寻址 寄存器间接寻址 基址变址寻址 多寄存器寻址 相对寻址 堆栈寻址
第五章 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
MIPS指令详解

计算机组成原理第五章指令系统5.6 MIPS指令详解1R 型指令000000R s R t shamt R d 6bits funct5bits 5bits 5bits 5bits 6bits R 型指令操作数和保存结果均通过寄存器进行;◆op :操作码,所有R 型指令中都全为0;◆rs :寄存器编号,对应第1个源操作数;◆rt :寄存器编号,对应第2个源操作数;◆rd :寄存器编号,据此保存结果;◆shamt :常数,在移位指令中使用;◆funct :功能码,指定指令的具体功能;1R型指令3寄存器R 型指令■R 型指令存在3种不同类型指令功能:$rd ← $rs op $rt指令[31:26][25:21][20:16][15:11][10:6][5:0]指令功能add 000000rs rt rd 00000100000寄存器加sub 000000rs rt rd 00000100010寄存器减and 000000rs rt rd 00000100100寄存器与or 000000rs rt rd 00000100101寄存器或xor000000rsrtrd00000100110寄存器异或1R 型指令1R型指令2寄存器R型指令指令[31:26][25:21][20:16][15:11][10:6][5:0]指令功能sll00000000000rt rd sa000000逻辑左移srl00000000000rt rd sa000010逻辑右移sra00000000000rt rd sa000011算术右移指令功能:$rd ← $rt shift sajr rs;1寄存器R 型指令指令[31:26][25:21][20:16][15:11][10:6][5:0]指令功能jr000000rs000000000000000001000寄存器跳转1R 型指令PC ← rs◆op :标识指令的操作功能;◆rs :第1个源操作数,是寄存器操作数;◆rt :目的寄存器编号,用来保存运算结果;◆imm :第2个源操作数,立即数;操作数中涉及立即数,结果保存到寄存器;OPRs R t6bits 立即数5bits 5bits 16bitsI 型指令2I 型指令指令[31:26][25:21][20:16][15:0]指令功能addi001000rs rt imm 寄存器和立即数“加”andi 001100rs rt imm 寄存器和立即数“与”ori 001101rs rt imm 寄存器和立即数“或”xori 001110rs rt imm 寄存器和立即数“异或”lw 100011rs rt imm 从存储器中读取数据sw 101011rs rt imm 把数据保存到存储器beq 000100rs rt imm 寄存器相等则转移bne 000101rsrt imm 寄存器不等则转移lui00111100000rt imm设置寄存器的高16位2I 型指令■I 型指令存在4种不同类型 面向运算的I 型指令指令[31:26][25:21][20:16][15:0]指令功能addi 001000rs rt imm 寄存器和立即数“加”andi 001100rs rt imm 寄存器和立即数“与”ori 001101rs rt imm 寄存器和立即数“或”xori001110rsrtimm寄存器和立即数“异或”addi/andi/ori/xorirt, rs, imm; # $rt ← $rs op E(imm)2I 型指令第一条指令是进行符号扩展,其余是0扩展面向访存的I 型指令指令[31:26][25:21][20:16][15:0]指令功能lw 100011rs rt imm 从存储器中读取数据sw 101011rs rt imm 把数据保存到存储器lw rt, imm(rs) # $rt ← mem[$rs+E(imm)]sw rt, imm(rs) # mem[$rs+E(imm)] ←$rtMIPS32中唯一两条访问存储器的指令(RISC)2I 型指令面向数位设置的I 型指令指令[31:26][25:21][20:16][15:0]指令功能lui 00111100000rt imm 设置寄存器的高16位lui rt, imm # $rt ← imm<<16(空位补0)2I 型指令面向条件转移(分支)的I 型指令指令[31:26][25:21][20:16][15:0]指令功能beq000100rs rt imm 寄存器相等则转移bne 000101rs rt imm 寄存器不等则转移beq rs, rt, immbne rs, rt, imm #if($rs==$rt) PC←PC+E(imm)<<2是标准的PC 相对寻址方式其中imm 要先“带符号扩展”成32位,再左移2位。
第5章S7-200PLC的指令系统-1

V0.0 VB0 VW0
BOOL BYTE WORD,INT
VD0
DWORD,DINT, REAL
2. 数据长度与数值范围
S7-200系列PLC的数据类型可以是字符串、 布尔型(0或1)、整数型和实数型(浮点数)。
布尔型数据指字节型无符号整数;整数型数包括
任何程序(主程序、子程序和中断程序)访问。 而局部变量只是局部有效,即变量只能在特定的 程序中使用。
(4) 局部变量存储器L
局部变量存储器L的地址格式:
位地址:L[字节地址]. [位地址]
如L1.5 字节、字、双字地址: L[数据长度] [起始位字节地址] 如LB21、LW44、LD55
(4) 局部变量存储器L
SM0.5 —周期为1秒钟,占空比为50%的时钟脉冲。
(7) 定时器存储器T
PLC所提供的定时器作用相当于继电器控制系 统中的时间继电器。每个定时器可提供无数对 常开和常闭触点供编程使用。其设定时间通常 由程序设置。 地址格式:T[定时器号] 如T37
有效地址范围:T(0~255)
16位符号整数(INT)和32位符号整数(DINT)。
2. 数据长度与数值范围
3. 常数
S7-200的许多指令中常会使用常数。常数的数
据长度可以是字节、字和双字。CPU以二进制的
形式存储常数,书写常数可以用二进制、十进 制、十六进制、ASCII码或实数等多种形式。书 写格式如下:
3. 常数
十进制常数:179 ; 十六进制常数:16#B3 ;
(2) 内部标志位存储器M
CPU224内部标志位存储器(M)的有效地址范 围:
M(0.0 ~31.7)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六节 高级指令
一、 高级指令的构成
高级指令由高级指令功能号(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、高速计数器特殊指令
这些指令执行高速计算器功能。