自动控制--第3章3.3.2算术运算类指令

合集下载

算数运算指令

算数运算指令
LOGO
算数运算指令
机电教研室 李大勇
§4.6.4 算数运算指令
算术运算指令可完成整数、长整数及实数的加、减、 乘、除、求余、求绝对值等基本算数运算;以及32位浮点 数的平方、平方根、自然对数、基于 e 的指数运算及三角 函数等扩展算数运算。 基本算术运算指令 扩展算术运算指令
Your site here
LOGO
示例3:带CC1位的循环移位指令RRDA,RLDA
特点: 只移动一位
Your site here
LOGO
1.有符号右移指令格式
Your site here
返回上级
LOGO
2.字移位指令格式
Your site here
返回上级
LOGO
3.双字移位指令格式
Your site here
返回上级
Your site here
返回本节
LOGO
字逻辑运算指令格式
Your site here
返回上级
LOGO
§4.6.6 移位指令
移位指令有 2 种类型:基本移位指令可对无符号整数、 有符号长整数、字或双字数据进行移位操作;循环移位指 令可对双字数据进行循环移位和累加器 1 带 CC 1 的循环 移位操作。
将累加器1,2中的浮点数相乘,浮点数乘积在累加器1中
累加器2中的浮点数除以累加器1中的浮点数,商在累加器1,余数丢掉 取累加器1中的浮点数的绝对值 求浮点数的平方 求浮点数的平方根 求浮点数的自然指数 求浮点数的自然对数 求浮点数的正弦函数 求浮点数的余弦函数 求浮点数的正切函数 求浮点数的反正弦函数 求浮点数的反余弦函数 求浮点数的反正切函数
Your site here
返回上级

微机原理期末重点总结

微机原理期末重点总结

第一章1.微型计算机(Microcomputer):采用微处理器为核心构造的计算机2.微处理器(Microprocessor):微型机的运算和控制核心,称为中央处理单元(CPU:Central Processing Unit),将控制器和运算器集成在一片或几片芯片上构成3.微型计算机(MicroComputer)是指以微处理器为核心,配上存储器、输入/输出接口电路等所组成的计算机。

4.微型计算机系统(Micro Computer System)是指以微型计算机为中心,配以相应的外围设备、电源和辅助电路(统称硬件)以及指挥计算机工作的系统软件所构成的系统。

5.总线:计算机中各功能部件间传送信息的公共通道,是微型计算机的重要组成部分。

5.1地址总线AB:在对存储器或I/O端口进行访问时,通过地址总线传送由CPU提供的要访问存储单元或I/O端口的地址信息。

(单向总线)数据总线DB:从存储器取指令或读写操作数,对I/O端口进行读写操作时,指令码或数据信息通过数据总线传输。

(双向总线)控制总线:各种控制或状态信息通过控制总线传输6. 基数(Radix):一个数制所包含的数字符号的个数,被称为基数,记为r。

7.在二进制计数系统中,最高位表示符号位,“0”表示正数,“1”表示负数,其余表示数值。

7.1补码:反码末位(包括小数)加17.2由原码直接求补码:二进制数低位(包括小数)的第一个1右边保持不变(包含此1),左边依次求反8.BCD码用4位二进制数表示1位十进制数,只取十个状态,而且每四个二进制码之间是“逢十进一”。

(常使用8421码:即0000~1001)8.1“0~9”的ASCII码是30H~39H“A~Z”的ASCII码是41H~5AH“a~z”的ASCII码是61H~7AH第二章1.总线接口单元BIU:取指令时,BIU负责从内存的指定地址处取出指令,送到指令队列流中排队,执行指令中需要操作数时,也由BIU从内存的指定地址中取出,送给EU参加运算。

MCS-51_第03章 MCS-51的指令系统

MCS-51_第03章 MCS-51的指令系统

内容相互交换。
3.2.3 算术运算类指令
表 3.2 算术运算指令
表 3.2 算术运算指令
表 3.3 影响标志位的指令
表 3 3 影 响 标 志 位 的 指 令
.
一、 加法指令 1. 普通加法指令 ADD A, Rn ADD A, direct ADD A, @Ri ADD A, #data
MOV R0 30H A, @R0 内部RAM
30H
20H
A 20H
5. 基址寄存器加变址寄存器间接寻址 这种寻址方式用于访问程序存储器中的数据表格, 它以 基址寄存器DPTR或PC的内容为基本地址, 加上变址寄存器 A的内容作为操作数的地址, 例如: MOVC A, @DPTR+A JMP @A+DPTR MOVC A, @ PC+A
3.2.2 数据传送类指令
图 3 –1 MCS -51传送指令示意图
表 3.1 数据传送类指令一览表
表 3.1 数据传送类指令一览表
1. 数据传送到累加器A的指令 MOV A, Rn MOV A, direct MOV A, @Ri MOV A, #data 这组指令的功能是:把源操作数的内容送入累加器A。 例如: MOV A, #10H, 该指令执行时将立即数 10H送入累 加器A中。
这组指令的功能是:把源操作数的内容送入内部RAM 单元或特殊功能寄存器。其中第三条指令和最后一条指令 都是三字节指令。第三条指令的功能很强, 能实现内部 RAM之间、特殊功能寄存器之间或特殊功能寄存条指令是将16位的立即
数送入数据指针寄存器DPTR。
4. 累加器A与外部数据存储器之间的传送指令 MOVX A, @DPTR MOVX A, @Ri MOVX @DPTR, A MOVX @Ri, A

PLC算术运算和逻辑运算指令 - plc

PLC算术运算和逻辑运算指令 - plc

PLC算术运算和逻辑运算指令 - plc 算术运算和逻辑运算指令加法指令ADD、减法指令SUB乘法指令MUL、除法指令DIV加1指令INC、减1指令DEC字逻辑运算指令(FNC26~FNC29)1、加法指令ADD、减法指令SUBADD指令是将指定的源元件中的二进制数相加,结果送到指定的目标元件中去。

每个数据的最高位作为符号位(0为正,1为负),运算是二进制代数运算。

减法指令SUB与ADD指令类似。

2、乘法指令MUL、除法指令DIVMUL指令是将两个源元件中的数据的乘积送到指定目标元件。

如果为16位数乘法,则乘积为32位,果为32位数乘法,则乘积为64位,如图5.25所示。

数据的最高位是符号位。

3、加1指令INC、减1指令DECINC、DEC指令操作数只有一个,且不影响零标志、借位标志和进位标志。

在16位运算中,32767再加1就变成了-32768。

32位运算时,2147483647再加1就变成-2147483648。

DEC指令与INC指令处理方法类似。

4、字逻辑运算指令(FNC26~FNC29字逻辑运算指令包括WAND(字逻辑与)、WOR(字逻辑或)、WXOR (字逻辑异或)和NEG(求补)指令。

使用方法如图所示。

案例一:假设有一汽车停车场,最大容量只能停车50辆,为了表示停车场是否有空位,试用plc来实现控制。

一、硬件的实现1、I/O分配表2、外部连线根据上述模块的学习,再依据图中的标示,同学们可以自己画出输入及输出端口的分配,在这不加深述。

二、软件的编程案例二:某控制程序中要进行以下算式的运算:38X/255+2 式中“ X ”代表输入端口 K2X0 送入的二进制数,运算结果需送输出口K2Y0 ; X020 为起停开关。

一、硬件的实现1、I/O的分配2、硬件连线根据上述模块的学习,再依据图中的标示,同学们可以自己画出输入及输出端口的分配,在这不加深述。

二、软件的实现。

算术逻辑运算类指令

算术逻辑运算类指令

RR
A
移位指令
累加器带进位循环左移指令
RLC
A
累加器带进位循环右移指令
RRC
A
移位指令
累加器半字节交换指令
SWAP
A
将A中内容左移3位
SWAP A
RR
A
1.4 累加器清零指令
CLR
A
以下3种指令都可将累加器内容清零
CLR
A
MOV
A, #0
MOV
ACC, #0
但是它们的指令长度和执行时间不同
1.2 逻辑运算指令
逻辑与运算指令
ANL
A, #data
ANL
A, direct
ANL
A, Rn
ANL
A, @Ri
ANL
direct, A
ANL
direct, #data
逻辑运算指令
逻辑或运算指令
ORL
A, #data
ORL
A, direct
ORL
A, Rn
ORL
A, @Ri
1.5 累加器内容取反指令
CPL
A
当A中保存有从外部输入的数据,但信号逻辑与CPU或其他电 路相反时,可用这条指令将其改为一致的形式,然后再进行处 理
单片机原理与应用
算术运算指令
加法的BCD调整指令
DA
A
对先前两个压缩BCD数的加法结果(保存在累加器A中)进行调整, 在A中产生合法的两位BCD数。任何使用ADD或ADDC指令执 行的BCD数的加法指令,后面必须是加法的BCD调整指令
加法的BCD调整
如果累加器低4位大于9,或者AC标志为1,则低4位加6调整。 内部调整操作可能会使CY为1,但如果CY已经置位,不会将 CY清零

第3章 80868088指令系统3(算术运算指令)PPT课件

第3章 80868088指令系统3(算术运算指令)PPT课件

INC SI
;(SI)+1
DEC CX
;(CX)-1
JNZ LL
;若(CX)0,则转LL
思考:若最高位有进位,如何改?
11
ADD/ADC指令对条件标志位(CF/OF/ZF/SF)的影响:
SF=
1 结果为负 0 否则
ZF=
1 结果为0 0 否则
CF=
1 0
和的最高有效位有向高位的进位 否则
OF= 1 两个操作数符号相同,而结果符号与之相反
无符号数 有符号数
0000 1000
8
+8
+1111 1101 10000 0101
结果5
+253 261 CF=1
+(-3) +5
OF=0
③ 有符号数溢出
0000 1000
8
+8
+0111 1101 +125 +(+125)
1000 0101 133
+133
结果-123
CF=0
OF=1
(补码表示)
2
• 两个8位数相加时有4种情况:
无符号数范围0~255 带符号数范围-128~127 ①无符号数和有符号数均不溢出
二进制相加 0000 1000 +0001 1110 0010 0110
无符号数加 8
+ 30 38
有符号数加 +8
+ (+30) +38
结果38
CF=0
OF=0
3
② 无符号数溢出
作用类似于C语言中的”--”操作符。
格式:DEC opr 操作:opr←(opr)-1

微机原理第3章指令

微机原理第3章指令

第3章指令系统机器指令:能指示计算机完成基本操作的二进制代码指令系统:CPU可执行的机器指令的集合。

为了方便编程,人们又把完成特定操作的机器码用特定的符号表示,这就产生了符号表示的机器指令-------指令助记符。

第3章8086指令系统机器指令由二进制代码组成,一条指令包括操作码和操作数(或地址)两部分,操作码指明该指令进行何种操作,操作数用来说明操作对象。

个别指只有操作码没有操作数。

由于不同的指令所表达的信息不尽相同,因此指令的长度即机器码字节数也有长有短。

8086指令系统的指令是可变长指令(1~6个字节)3.18086CPU寻址方式重点是存储器寻址存放在存储器中的数据称为存储器操作数。

指令中需要确定存储单元的段地址、偏移地址(亦称有效地址EA),以及存储器操作数的类型。

段地址存放在段寄存器中,确定段地址实际上就是确定段寄存器,采用的方法是默认或添加段超越前缀。

生成存储器有效地址有多种方法,这些方法形成了对存储器操作数的多种寻址形式。

确定数据类型的方法是源操作数和目的操作数类型一致原则或附加类型说明。

立即寻址方式中操作数也在存储器中,但立即寻址中的立即数包含在指令中,随程序存放在代码段,CPU在取指令时就获得操作数。

这里所说的存储器操作数是存放在数据段、附加段或堆栈段中,取指令时也不会被立即取到。

段超越前缀变量的定义在第四章详细介绍直接寻址:MOV AX,[2000H];寄存器间接寻址:MOV ES:[DI],AH基址寻址:MOV BYTE PTR[BX+1200H],10变址寻址:MOV DL,[SI+2AH]基址加变址寻址:MOV CL,[BX+SI+5]MOV AX,[BP+DI]MOV CL,[BX+SI+5]的等价形式:MOV CL,5[BX][SI]、MOV CL,5[BX+SI]、MOV CL,[BX][SI+5]MOV CL,[BX+SI-5]等价于MOV CL,[BX+SI+65531] MOV CL,[BX-SI]MOV CL,[SI+DI]错误!MOV[BX+DI],1000H正确吗?3.2.1数据传送类指令传送指令把数据从一个位置传送到另一个位置使用MOV指令应注意1.立即数只能作为源操作数2.无存储器之间直接传送与交换的指令3.没有用立即数对段寄存器直接赋值的指令4.段寄存器之间无传送指令5.两个操作数的类型要一致6.要能确定是字节还是字操作mov ah,al mov bvar,ch mov ax,bx mov ds,ax mov al,[bx]下列MOV指令正确吗?MOV AL,050AHMOV SI,DLMOV[BX+SI],255MOV DS,100HMOV[BX],[SI]MOV[BX+SI],bvarbvar是一个已定义过的字节变量 MOV CS,[SI]将数据段中偏移地址为2000H、2001H、2002H的3个字节的存储单元置数FFH。

第3章__S7-200_PLC的基本指令

第3章__S7-200_PLC的基本指令
逻辑入栈(Logic Push,LPS)指令 复制栈顶的值并将其压入栈的下一层,栈 中原来的数据依次向下一层推移,栈底值 被推出丢失,如图3-4所示。
图3-4 栈操作
逻辑读栈(Logic Read,LRD)指令 将栈中第2层的数据复制到栈顶,第2~7层 的数据不变,但是原栈顶值消失。
逻辑出栈(Logic Pop,LPP)指令使 栈中各层的数据向上移动一层,第2层的数 据成为栈新的栈顶值,栈顶原来的数据从 栈内消失。
3.1.2 置位与复位指令
1.置位与复位指令
置位/复位指令则是将线圈设计成置位 线圈和复位线圈两大部分,将存储器的置 位、复位功能分离开来。
S(Set)指令是置位指令,R(Reset) 指令是复位指令,指)指令时, 从指定的位地址开始的N个连续的位地址 都被置位或复位,N=1~255。当置位、复 位输入同时有效时,复位优先。置位/复位 指令的应用如图3-8所示,图中N=1。
保持(记忆),使能端再次接通有效时, 在原记忆值的基础上递增计时。TONR采 用线圈的复位指令进行复位操作,当复位 线圈有效时,定时器当前值清零,输出状 态位置为0。
保持型接通延时定时器应用程序如图 3-12所示。
图3-12 保持型接通延时定时器应用程序
(3)断电延时定时器
使能端输入有效时,定时器输出状态 位立即置1,当前值复位为0。使能端断开 时,开始计时,当前值从0递增,当前值达 到设定值时,定时器状态位复位置0,并停 止计时,当前值保持。
3.1.3 其他指令
1.边沿触发指令
边沿触发指令分为正跳变触发(上升 沿)和负跳变触发(下降沿)两种类型。
正跳变触发是指输入脉冲的上升沿使 触点闭合1个扫描周期。负跳变触发是指输 入脉冲的下降沿使触点闭合1个扫描周期, 常用作脉冲整形。边沿触发指令格式及功 能如表3-4所示。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例: INC AX; INC BYTE PTR [SI];
INC BYTE PTR [BX+DI+2];
将 SI 内 容 为 偏 移地址的存储 单元的内容加1, 结果送回该单 元中

(DS*16+BX+DI+2)+1
送入(DS*16+BX+DI+2)

24
INC指令例
• 例:设BX=1234H,执行指令 INC BX;
算术运算指令的执行大多会对状态标志位产生影响
3
1. 加法指令
加法指令ADD 带进位的加法指令ADC 加1指令INC
加法指令对操作数的要求与MOV指令相同,但段 寄存器不能作为加法指令的操作数;
INC指令的操作数只能是存储器或寄存器,单作为 存储器操作数时,需使用PTR说明操作数的字长。
4
1)普通加法指令ADD
算术运算类指令
1
• 算术运算指令(Arithmetic)包括加、减、乘、除和十进制调整指令 等五类,可实现有符号数和无符号数的字或字节运算。
• 算数运算结果是否溢出
• 有符号数运算,标志位OF=1表示结果溢出; • 无符号数运算,标志位CF=1表示结果溢出;
2
算术运算类指令分类
• 加法运算指令 • 减法运算指令 • 乘法指令 • 除法指令 • 十进制调整指令
• 格式:
• ADD dest,src
• 操作:
• src+dest
dest
ADD指令的执行对全部6个状态标志位都产生影响
5
说明:
• 目的操作数可以是通用寄存器或存储器,源操作数可以是通用寄存器、 存储器或立即数,但不能同时为存储器。 例: ADD [BX],[SI]
• ADD指令不区分两个加数是无符号数还是带符号数,运算结果的二进制 形式相同,影响状态标志位,但是相加的数必须是等字长的。 例:ADD AX,1200H ADD AL,BL
6
加法指令例1
执行 ADD AX,BX 设(AX)=1234H,(BX)=0F7C9H
7
加法指令例1
• FLAGS
• 标志寄存器,存放运算结果的特征
• 6个条件状态标志位(CF,SF,AF,PF,OF,ZF) • 3个控制状态标志位(IF,TF,DF)
15
11 10 9 8 7 6
4
2
0
OF DF IF TF SF ZF
• 操作:
• dest- src dest
• 对标志位的影响与ADD指令同
27
减法指令SUB例1
• 例:
28
减法指令SUB例2
执行指令:SUB AX,[BX] 设(AX)=578FH,(DS)=1000H, (BX)=2000H,(12000H)=7890H
指令执行后 (AX)=0DEFFH OF=0,SF=1,ZF=0, AF=0,PF=1,CF=1
29
减法指令SUB例3
• 例:执行指令 SUB DH,[BP+4]
设SS=4000H,BP=00E8H, 则物理地址PA=400ECH; 若执行前:DH=87H,(400ECH)=45H;
编写程序,求两个多字节无符号数 0107A379H+10067E4FH的和。
18
ADC指令例2
19
ADC指令例2
20
ADC指令例2
• ADC指令主要用于多字节加法运算。由于8086一次最多只能实现 两个16位数相加,所以对多于两个字节的数的加法,只能先加低 16位(或8位),再加高16位(或高8位),但在高位相加时,必 须要考虑低位向上的进位,这时就需要ACD指令。
AF
PF
CF
F
• CF(Carry Flag)
• 进位标志位。加(减)法运算时,若最高位有进(借)位则CF=1
• PF(Parity Flag)
• 奇偶标志位。运算结果的低字节中“1”的个数为偶数时PF=l
• AF(Auxiliary Carry Flag)
• 辅助进位标志位。加(减)操作中,若低半字节向高半字节有进位(借位), AF=1
21
3)INC指令
• 格式: INC OPRD
• 操作: OPRD+1
OPRD
不能是段寄存器 或立即数
22
常用于在程序中修改地址指针及循环次数; 指令中的操作数OPRD可以是寄存器或存储器, 但不能是段寄存器和立即数。
INC指令不影响CF标志位,但对其他5个状态标志 会产生影响。
23
INC指令例
结果:BX=1235H
25
2. 减法指令
减法指令SUB 带借位的减法指令SBB 减1指令DEC 比较指令CMP 求补指令NEG
SUB,SBB,CMP指令对操作数的要求及对标志位的影响 和ADD指令完全相同;
DEC,NEG指令则与INC指令有相同的要求;
26
1)减法指令SUB
• 格式:
• SUB dest,src
9
加法指令例1
• ZF(Zero Flag)
• 零标志位。当运算结果为零时ZF=1
• SF(Sign Flag)
• 符号标志位。当运算结果的最高位为1时,SF=l
• OF(Overflow Flag)
• 溢出标志位。当算术运算的结果超出了有符号数的可表达范围时,OF=l
10
加法指令例1
执行 ADD AX,BX 设(AX)=1234H,(BX)=0F7C9H
指令执行后 (AX)=09FDH, OF=0,SF=0,ZF=0, AF=0,PF=0,CF=1
11
ADD指令例2
MOV AL,78H ADD AL,99H 指令执行后6个状态标志位的状态
12
ADD指令例2
01111000 + 10011001
00010001
1
标志位状态: CF= 1 AF= 1 PF= 0
• ADC指令多用于多字节数相加,使用前要先将CF清零。 • ADC dest, src
• 指令的操作:
• dest+src+CF
dest
16
ADC指令例1
• 假定CF=1,写出下列指令执行后的结果。 MOV AL, 7FH ADC AL, 0A4H
执行指令后: (AL)=24H,且CF=1
17
ADC指令例2
SF= 0 ZF= 0 OF= 0
13
ADD指令例2
• 执行指令 ADD WORD PTR [BX],9F76H; 设DS=2000H,BX=1000H, 则目的物理地址PA=21000H; 若执行前(21000H)=88H, (21001H)=A9H;
14
ADD指令例2
15
2)ADC指令
• 指令格式、对操作数的要求、对标志位的影响与ADD指令完全一 样;
相关文档
最新文档