第6章控制转移类指令

合集下载

单片机原理及应用第6讲逻辑运算指令及移位、转移指令

单片机原理及应用第6讲逻辑运算指令及移位、转移指令
只有它影响psw其余四个指影响incrnincdirectincriincdptr会影响psw寄存器中的标志位decrndecdirectdecri只有第一条指令影响psw十进制调整指令da影响psw中的标志位乘法指令mulab影响psw中的标志位ov1则结果超过了255除法指令divab影响psw中的标志位ov1则除数为零除法无意义31h单元编出一完整程序把两个数乘积的低位放入32h单元高放入33h单元org0100hmovr030hmovar0incr0movbr0mulabincr0movr0aincr0movr0bend逻辑运算指令anldirectanldirectorldirectorldirectxrldirectxrldirectdata内部数据存储单元30h有一个数试编程保留其低的低四位送入p1低四位p1口高四位不变外部ram30h中有一个数试编程把它的低四位取反内部ram30h中有一负数的补码循环移位指令rla7a0a7a0a7a0cycya7a0后两条指令影响标志位cy
• (2)带进位加法指令 • ADDC A,Rn • ADDC A, #data • ADDC A, direct • ADDC A, @Ri • 注意:影响PSW寄存器中的Cy 、AC、 OV、P标志位
• (3)加1指令 • INC A;只有它影响PSW,其余四个指 令不 影响 INC Rn INC direct INC @Ri INC DPTR
• • • •
4、累加器清零和取反指令 CLR A CPL A 用于对某个存储单元或累加器A中的数进 行清零和取反
• 例: • 1、内部数据存储单元30H有一个数,试 编程保留其低4位,高4位变为0 • 2、试编程把累加器A的低四位送入P1口 低四位, P1口高四位不变 • 3、外部RAM30H中有一个数,试编程把 它的低四位取反 • 4、内部RAM 30H中有一负数x,试编程 求x的补码

电气控制与PLC应用技术(中国电力出版,崔继仁)PPT 第6章 顺序控制指令

电气控制与PLC应用技术(中国电力出版,崔继仁)PPT  第6章 顺序控制指令

PLC的输入/输出地址分配如表所示。
输入/输出地址分配 编程元件 元件地址 10.0 数字量输入 DC24V 10.1 Q0.0 数字量输出 DC24V Q0.1 Q0.2 符号 Start Stop KM1 KM2 KM3 传感器/执行器 常开按钮 常开按钮 接触器,“1”有效 接触器,“1”有效 接触器,“1”有效 说明 启动按钮 停止按钮 控制电机M1 控制电机M2 控制电机M3
人 行 道 交 通 灯 时 序
车道时序
Q0.2
Q0.1
Q0.0
Q0.2
I0.0 I0.1
人行道时序
30s
10s
5s
20s
5s
5s
Q0.3
Q0.4
Q0.3
功能图
自助行人过街信号灯的设计 控制要求: (1)初始状态,车道绿灯亮,人 行道红灯亮; (2)若没有按下过街按钮,车道 绿灯以50秒为周期连续常亮; (3)若有人按下过街按钮,车道 绿灯保持最后一个50秒周期常亮, 周期结束后,车道红灯亮,人行道 绿灯亮,人行道绿灯保持25秒后, 车道绿灯亮,人行道红灯亮。
I0.0
M1 5s M2 10s M3
S0.1
S0.3
S0.5
I0.1
M3 10s M2 5s M1
S0.6
S0.7
S1.0
图6-9 电动机顺序启动/逆序停止控制示意图
该控制系统的功能图如图6-10所示。
图6-10 电动机顺序启动/逆序停止顺序功能图
第三节
顺序控制指令应用举例
当I0.0=1或I0.1=1时, 车道Q0.2=1保持,人 行道Q0.3=1保持; 30s后, Q0.2=0,Q0.1=1; 10s后, Q0.1=0,Q0.0=1; 5s后, Q0.3=0,Q0.4=1; 20s后, 绿灯闪烁(Q0.4=0、 1交替); 5s后, Q0.2=1,Q0.3=1

控制转移类指令.ppt

控制转移类指令.ppt
无条件地转移到其他代码段内标号所指定的目标地址处。 操作: 如果标号为其它代码段内定义的标号,则
(IP)←标号的偏移地址 (CS)←标号的段地址 如果标号为本代码段内定义的标号,则该指令同JMP NEAR PTR lable。 说明: ① 也可直接使用数值表达式来给出目标地址,这时可省略FAR属性说明。 JMP 2000H:0100H ② 机器指令代码直接提供了转向地址的段地址和偏移地址,属于直接转 移方式。 ③ 使用绝对地址来表示转移目标地址,因此属于绝对转移。
(2)条件转移指令分为以下四类。
① 单标志位测试转移指令 通过测试单个标志位的状态来决定是否转移的指令。 例:
ADD AX,BX JC LAB1 ;如果 CF = 1,转至 LAB1
CMP CX,DX JE LAB2 ;如果 ZF = 1,转至 LAB2
② 无符号数比较转移指令
该类指令将参与比较的两个数据看作是无符号数,并根据比较运算后 标志位CF和ZF的状态来判断它们之间的大小关系,从而决定是否转移。 例:
说明:
① 8位位移量是带符号数,因此跳转的范围为( -128 --- +127 )。
② 指令中的转移目标地址用相对于当前IP所指向指令的相对位移量来 表示,因此属于相对转移。
例1:
0000H EB 04 0002H B0 01 0004H B3 02 0006H B1 03

例2:
0000H B0 01 0002H B3 02 0004H B1 03 0006H EB F8 0008H B2 04
JBE/JNA 标 CF=1或ZF=1 号
JG/JNLE 标 SF⊕OF=0且

ZF=0
带符号数 比较转移
JGE/JNL 号

控制转移指令

控制转移指令
下面是一个含有无条件转移指令的简单程序的列表文件,它是由汇编语言源程序翻译后产生的。即:
;行号偏移量机器码程序
1 0000 CODE SEGMENT
2 ASSUME CS:CODE
3 0000 0405 PROG_S:ADD AL, 05H
4 0002 90 NOP
5 0003 EBFB JMP SHORT PROG_S
段内间接转移指令
这类指令转向的16位有效地址存放在一个16位寄存器或字存储单元中
用寄存器间接寻址的段内转移指令,要转向的有效地址存放在寄存器中,执行的操作是寄存器的内容送到IP中

JMP BX
若该指令执行前BX=4500H,则指令执行时,将当前IP修改成4500H,程序转到段内偏移地址为4500H处执行
返回地址的IP入栈
由于存放CALL指令的内存首地址为CS:IP=2000:1050H,该指令占3个字节,所以返回地址为2000:1053H,即IP=1053H.于是1053H被推入堆栈
根据当前IP值和位移量DISP计算出新的IP值,作为子程序的入口地址,即:
IP=IP+DISP=1053H+1234H=2287H
中断:INT—中断、INTO—溢出中断、IRET—中断返回
1、无条件转移和过程调用指令
1)JMP无条件转移指令
指令格式:JMP目的
指令功能:使程序无条件转移到指令中指定的目的地址去执行。
这类指令又分为两种类型:
第一种类型:段内转移或近(NEAR)转移,转移指令目的地址和JMP指令在同一代码段中,转移时仅改变IP寄存器的内容,段地址CS的值不变。
JMP DWORD PTR[SI+0125H]
设指令执行前,CS=1200H,IP=05H,DS=2500H,SI=1300H,内存单元(26425H)=4500H,(26427H)=32F0H.而指令中的位移量DISP=0125H,其中高位部分为DISP_H=01H,低位部分DISP_L=25H

控制转移类指令ppt课件(全)

控制转移类指令ppt课件(全)

(4)CJNE @Ri,#data,rel 该指令功能:若(( Ri ))≥ data,(CY)=0; 若(( Ri ))<data ,CY=1; 若(( Ri ))≠ data,则PC←(PC)+rel,转移; 若(( Ri ))=data,则程序顺序执行.
例:如果(A) ≠ 00H,转移到CX1;如果(R1) ≠ 10H, 转移到CX2;如果(A) ≠(60H),转移到CX3。程序段 如下:
(2)指令长短不一样。LJMP是3字节指令;AJMP、 SJMP是2字节指令;JMP是1字节指令。
(3)指令机器码构成不同。AJMP、LJMP、JMP后跟 的是绝对地址,而SJMP后跟的是相对地址。
(4)地址特点不同。LJMP、AJMP、SJMP的转移目标 地址是固定的,程序执行过程中不变;JMP的转移目 标地址随程序的执行是动态变化的。
1. 长跳转指令 LJMP (3字节) LJMP addr16 ; PC addr16
•执行该指令时, 将目标语句的16位地址addr16装入 PC, 程序无条件转向指定的目标语句执行。 •由于长跳转指令提供的是16位地址,对应64KB的程 序存储器地址空间,所以可跳转到64KB程序存储器 地址空间的任何地方。 •实际应用中长跳转汇编指令写作“LJMP 目标语句 标号”的形式,如“LJMP LOOP”。
• 指令对A、DPTR和标志位均无影响。
注意:以上四条指令结果均不影响程序状态 字寄存器 PSW 。
5.LJMP、AJMP、SJMP、JMP四条无条件转移指令的 区别:
(1)转移范围不一样。LJMP、JMP转移范围是64KB; AJMP转移范围是与当前PC值同一个2KB区间;SJMP 转移范围是相对当前PC值的-128B~+127B范围内。

微机原理6_控制转移类指令

微机原理6_控制转移类指令

还可用SAR、ROR和RCR指令
;将AX的最低位D0移进CF
jnc even
;标志CF=0,即D0=0:AX内是偶数,程序转移
add ax,1
;标志CF=1,即D0=1:AX内的奇数,加1
even: shr ax,1
;AX←AX÷2
第2章:例题2.22解答3 用JNS指令实现
mov bx,ax
ror bx,1
done: ……
第2章:例2.24 偶校验
;对DL寄存器中8位数据进行偶校验 ;校验位存入CF标志
2:将最低位用移位指令移至进位标志,判断进位标志是0, AX就是偶数;否则,为奇数
3:将最低位用移位指令移至最高位(符号位),判断符号 标志是0,AX就是偶数;否则,为奇数
第2章:例题2.22解答1 用JZ指令实现
test ax,01h
;测试AX的最低位D0(不用AND指令,以免改变AX)
jz even
第2章:无条件转移指令JMP(jump)
JMP label
;段内转移、相对寻址
;IP←IP+位移量
演示
JMP r16/m16
;段内转移、间接寻址
;IP←r16/m16
演示 演示
JMP far ptr label ;段间转移、直接寻址
;IP←偏移地址,CS←段地址
演示
JMP far ptr mem ;段间转移,间接寻址
第2章:例题2.22
题目:将AX中存放的无符号数除以2,如果是奇 数则加1后除以2 问题:如何判断AX中的数据是奇数还是偶数? 解答:判断AX最低位是“0”(偶数),还是“1” (奇数)。可以用位操作类指令
1:用逻辑与指令将除最低位外的其他位变成0,保留最低位 不变。判断这个数据是0,AX就是偶数;否则,为奇数

3.5 控制转移和位操作指令(8)

3.5 控制转移和位操作指令(8)

2、条件转移指令 条件转移就是程序转移是有条件的。执行条件转移指 令时,如指令中规定的条件满足,则进行程序转移,否则 程序顺序执行。条件转移有如下指令: (1)累加器判零转移指令:JZ rel和 JNZ rel指令 这两条指令都是二字节指令,是有条件的相对转移指令, 以rel为偏移量。 (2)数值比较条件转移指令 数值比较条件转移指令把两个操作数进行比较,比较 结果作为条件来控制程序转移。共有四条指令: CJNE A,#data,rel;累加器内容与立即数不等转移 CJNE A,direct,rn ,#data,rel ;寄存器内容与立即数不等转移 CJNE @Ri,#data,rel ;内部RAM前128单元内容与立 即数不等转移。
汇编语言程序中,为等待中断或程序结束,常使程 序“原地踏步” ,对此可使用SJMP指令完成:HERE: SJMP HERE 或 HERE:SJMP $指令机器码为 80FEH。在汇编语言中,以“$”代表PC的当前值。 执行指令:L00P:SJMP L00P1,如果L00P的标 号值为0100H(即SJMP这条指令的机器码存于0100H 和0101H两个单元之中),标号L00P1值为0123H,即 跳转的目标地址为0123H,则指令的第二个字节(相对 偏移量)应为:rel=0123H一0102H=21H 。 (4)基址加变址寻址转移(变址转移)指令: JMP @A+DPTR ; (PC)←(A)+(DPTR) 这是一条一字节转移指令,转移的目的地址=(A) +(DPTR)。指令以DPTR内容为基址,而以A的内容 作变址。只要把DPTR的值固定,而给A赋以不同的值, 即可实现程序的多分支转移。键盘译码程序就是本指令 的一个典型应用。 (如P113例3.30)
2、位置位、复位指令 SETB C ; (Cy)←l SETB bit ; (bit)←1 CLR C ; (Cy)←0 CLR bit ; (bit)←0 3、位运算指令 ANL C,bit ; (Cy)←(Cy)∧(bit) ANL C,/ bit ; (Cy)←(Cy)∧/( bit ) ORL C,bit ; (Cy)←(Cy)∨(bit) ORL C,/ bit ; (Cy)←(Cy)∨/( bit ) CPL C ; (Cy)←/(Cy) CPL bit ; (bit)←/(bit)(P120例3.37) 4、位控制转移指令 位控制转移指令就是以位的状态作为实现程序转移的 判断条件。

控制转移类指令

控制转移类指令

MOV A,R7
RL A ;键值2倍,AJMP指令为双字节指令
MOV DPTR,#KEYG
JMP @A+DPTR
•••
KEYG: AJMP KEY0
KEYG+2: AJMP KEY1
•••
KEYG+30: AJMP KEY15
2.条件转移指令
条件转移指令是当满足给定条件时,程序转移到 目标地址去执行;条件不满足则顺序执行下一条 指令
用在中断服务程序的末尾 RETI与RET指令区别: RETI在返回的同
时同时释放中断逻辑
CJNE @Ri,#data,rel;
(PC)←(PC)+3 若data<((Ri)),(PC)←(PC)+rel且Cy←0; 若data>((Ri)),(PC)←(PC)+rel且Cy←1; 若data=((Ri)),顺序执行且Cy←0
例: MOV A, #40H
MOV R0,#10H
DJNZ direct,rel ;
(PC)←(PC)+3,(direct)←(direct)-1 当(diect)≠0时,(PC)←(PC)+rel; 当(direct)=0时,程序顺序执行。
注:操作数的内容先减1再判零,不等于0时转移
3.子程序调用
本指令完成两项操作:①把PC当前值压入堆栈;② 把子程序入口地址送PC。
⑴长调用指令 LCALL addr16 ;
(PC)←(PC)+3
(SP)←(SP)+1,((SP))←(PC)7~0;
(SP)←(SP)+1,((SP))←(PC)15~8;Biblioteka PC15~0←addr16

单片机原理及应用考试复习知识点

单片机原理及应用考试复习知识点

单片机原理及应用考试复习知识点第1章计算机基础知识考试知识点:1、各种进制之间的转换1各种进制转换为十进制数方法:各位按权展开相加即可;2十进制数转换为各种进制方法:整数部分采用“除基取余法”,小数部分采用“乘基取整法”;3二进制数与十六进制数之间的相互转换方法:每四位二进制转换为一位十六进制数;2、带符号数的三种表示方法1原码:机器数的原始表示,最高位为符号位0‘+’1‘-’,其余各位为数值位;2反码:正数的反码与原码相同;负数的反码把原码的最高位不变,其余各位求反;3补码:正数的补码与原码相同;负数的补码为反码加1;原码、反码的表示范围:-127~+127,补码的表示范围:-128~+127;3、计算机中使用的编码1BCD码:每4位二进制数对应1位十进制数;2ASCII码:7位二进制数表示字符;0~9的ASCII码30H~39H,A的ASCII码41H,a的ASCII码61H;第2章 80C51单片机的硬件结构考试知识点:1、80C51单片机的内部逻辑结构单片机是把CPU、存储器、输入输出接口、定时/计数器和时钟电路集成到一块芯片上的微型计算机,主要由以下几个部分组成;1中央处理器CPU包括运算器和控制器;运算电路以ALU为核心,完成算术运算和逻辑运算,运算结果存放于ACC中,运算结果的特征存放于PSW中;控制电路是单片机的指挥控制部件,保证单片机各部分能自动而协调地工作;程序计数器PC是一个16位寄存器,PC的内容为将要执行的下一条指令地址,具有自动加1功能,以实现程序的顺序执行;2存储器分类:随机存取存储器RAM:能读能写,信息在关机后消失;可分为静态RAMSRAM和动态RAMDRAM两种;只读存储器:信息在关机后不会消失;掩膜ROM:信息在出厂时由厂家一次性写入;可编程PROM:信息由用户一次性写入;可擦除可编程EPROM:写入后的内容可由紫外线照射擦除;电可擦除可编程EEPROM:可用电信号进行清除和改写;存储容量:存储容量指存储器可以容纳的二进制信息量,M位地址总线、N位数据总线的存储器容量为2M×N位;80C51单片机的存储器有内部RAM128B,高128B为专用寄存器、外部RAM64KB、内部ROM4KB掩膜ROM、外部ROM64KB;3输入输出接口4个8位并行I/O口P0、P1、P2、P34其它资源一个全双工串行口、5个中断源、2个16位的定时/计数器、时钟电路;2、80C51单片机的信号引脚1电源部分:VCC接+5V、VSS接地;2时钟电路部分:XTAL1和XTAL2接晶振;1个机器周期=6个状态=12个拍节6MHZ的晶体机器周期2us,12MHZ的晶体机器周期1us;3I/O口部分:P0——8位数据总线/地址总线低8位、P1——用户口、P2——地址高8位、P3——第二功能;4控制部分:地址锁存控制信号ALE,用于控制把P0口输出的低8位地址送入锁存器锁存地起来;外部程序存储器读选通信号PSEN,低电平有效,以实现外部ROM单元的读操作;访问程序存储器控制信号EA,低电平时只读外部ROM,高电平时先读内部ROM,再读外部ROM;复位信号RST,当输入的复位信号延续2个机器周期以上高电平时即为有效;复位值:PC=0000H,SP=07H,P0=0FFH;3、内部RAM的基本结构与功能80C51的内部数据存储器低128单元区,称为内部RAM,地址为00~7FH;1寄存器区00~1FH共分为4组,组号依次为0、1、2、3,每组有8个寄存器,在组中按R7~R0编号;由PSW中RS1、RS0位的状态组合来决定哪一组;2位寻址区20H~2FH可对单元中的每一位进行位操作,16个字节单元共128个可寻址位,位地址为00~7FH;位起始地址D0=字节地址-20H83用户RAM区30H~7FH堆栈、缓冲区堆栈是在内部RAM中开辟的,最大特点就是“后进先出”的数据操作原则;两项功能:保护断点和保护现场;两种操作:进栈和出栈;SP堆栈指针,它的内容就是堆栈栈顶单元的地址;4、专用寄存器内部数据存储器高128单元1累加器AACC2寄存器B3程序状态字PSWCY——进位标志位,最高位的进位或借位;AC——半进位标志位,低4位向高4位的进位或借位;OV——溢出标志位,同符号数相加,结果为异符号,有溢出;异符号数相减,结果和减数符号相同,有溢出;P——A中1的个数,奇数个P=1,偶数个P=0;4数据指针DPTR:80C51中惟一一个供用户使用的16位寄存器;高8位DPH,低8位DPL;第3章 80C51单片机指令系统考试知识点:1、寻址方式1立即寻址data,data16例:MOV A,00H2直接寻址direct内部RAM:00~7FH、特殊功能寄存器例:MOV A,00H 3寄存器寻址A、B、Rn、DPTR4寄存器间接寻址Ri、DPTR例:MOVX A,DPTR5变址寻址A+DPTR,A+PC例:MOVC A,A+DPTR6位寻址bit20~2FH:00~7FH、特殊功能寄存器例:MOV C,00H7相对寻址rel例:JZ rel2、数据传送类指令1内部RAM数据传送指令MOV 目的,源;目的→源交换指令:XCH A,direct/Rn/Ri;A和源交换XCHD A,Ri;只换低4位SWAP A;A的高低4位交换注意:A作目的操作数会影响P;PUSH directPOP direct2外部RAM数据传送指令MOVX A,Ri/DPTR;外部地址内容→AMOVXRi/DPTR,A;A→外部地址内容3ROM数据传送指令MOVC A,A+DPTR/A+PC;查表指令3、算术运算指令1加法指令ADD/ADDC A,data/ direct/ Rn/Ri;会影响CY、AC、OV、P INC A/ direct/ Rn/Ri/DPTR;加1,PDA A;十进制调整,大于9加62减法指令SUBB A,data/ direct/ Rn/Ri;会影响CY、AC、OV、PDEC A/ direct/ Rn/Ri;减13乘除指令MUL AB;AB→BA,会影响CY=0,OV,PDIV AB;A/B的商→A,余数→B4、逻辑运算及移动指令1逻辑运算指令ANL/ORL/XRL A,data/ direct/ Rn/RiANL/ORL/XRL direct,A/data与→清0,或→置1,异或→取反CLR/CPL A;清0和取反2移位指令RL/RR/RLC/RRC A注意:每左移一位相当于乘2,每右移一位相当于除2,带进位的移会影响CY和P;5、控制转移类指令1无条件转移指令LJMP addr16;addr16→PC,64KBAJMP addr11;PC+2→PC,addr11→PC10~0,2KBSJMP rel;PC+2+rel→PC,256BJMP A+DPTR;A+DPTR→PC,64KB2条件转移指令累加器A判0转移指令JZ rel;A为0JNZ rel;A不为0比较不相等转移指令CJNE A/Rn/Ri,data,relCJNE A,direct,rel注意:第一操作数和第二操作数不相等,程序转移,若第一大于第二,CY=0,第一小于第二,CY=1;第一操作数和第二操作数相等,程序顺序执行,CY=0;减1不为0转移指令DJNZ Rn/direct,rel;Rn/direct-1不为0,程序转移;3调用和返回指令LCALL addr16;PC+3→PC,先入低8位,再入高8位,addr16→PCACALL addr11;PC+2→PC,先入低8位,再入高8位,addr11→PC10~0 RET;先出高8位,再出低8位6、位操作类指令1位传送指令MOV C,bitMOV bit,C2位赋值指令CLR C/bitSETB C/bit3位逻辑运算指令ANL/ORL C,bit或/bitCPL C/bit注意:实现逻辑表达式4位控制转移指令JC rel;CY=1JNC rel;CY=0JB bit,rel;bit=1JNB bit,rel;bit=0JBC bit,rel;bit=1,转移,清0第4章 80C51单片机汇编语言程序设计考试知识点:1、汇编语言的语句格式标号:操作码操作数;注释标号:语句地址的标志符号;操作码:语句执行的操作内容,用指令助记符表示;操作数:为指令操作提供数据;注释:对语句的解释说明;2、伪指令起始地址ORG、结束END、赋值EQU、字节DB、字DW、空DS、位BIT 3、汇编语言程序的基本结构形式1顺序结构2分支结构3循环结构:数据传送问题、求和问题4、定时程序例:延时100ms的子程序,设晶振频率6MHZ;DELAY:MOV R5,250LOOP2:MOV R4,49LOOP1:NOPNOPDJNZ R4,LOOP1DJNZ R5,LOOP2RET5、查表程序1要查找的数据在表中的位置给A2表的首地址给DPTR 3MOVC A,A+DPTR 4数据表第5章 80C51单片机的中断与定时考试知识点:1、中断源和中断请求标志位2、和中断相关的寄存器的设置1定时器控制寄存器TCONIT0=0,为电平触发方式; 低电平有效;IT0=1,为边沿触发方式; 输入脚上电平由高到低的负跳变有效; IE0=1,说明有中断请求,否则IE0=0; 2中断允许控制寄存器IE0INT 0INTEA: 开放或禁止所有中断;ES:开放或禁止串行通道中断;ET1:开放或禁止定时/计数器T1溢出中断;EX1:开放或禁止外部中断源1;ET0:开放或禁止定时/计数器T0溢出中断;EX0:开放或禁止外部中断源0;3中断优先级控制寄存器IP1为高优先级、0为低优先级;如果同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求被响应;查询次序为:外部中断0、T0中断、外部中断1、T1中断、串行中断;3、响应中断的必要条件1有中断源发出中断请求;2中断允许寄存器IE相应位置“1”,CPU中断开放EA=1;3无同级或高级中断正在服务;4现行指令执行到最后一个机器周期且已结束;若现行指令为RETI或需访问特殊功能寄存器IE或IP的指令时,执行完该指令且其紧接着的指令也已执行完;中断响应的主要内容是由硬件自动生成一条长调用指令,指令格式为“LCALL addr16”;这里的addr16就是程序存储器中断区中相应中断的入口地址;4、中断程序设计1在0000H处存放一条无条件转移指令转到主程序;2在入口地址处存放一条无条件转移指令转到中断服务子程序;3设置触发方式IT0/IT14设置IE和IP;5设置SP;6原地踏步;7中断服务子程序;最后RETI;5、定时计数的基本原理1定时功能:每个机器周期计数器加1;2计数功能:T0和T1输入计数脉冲,每一来一个脉冲计数器加1;6、用于定时计数的寄存器的设置1定时器控制寄存器TCONTF1、TF0——计数溢出标志位;当计数器产生计数溢出时,由硬件置1;采用查询方式,它是供查询的状态位;采用中断方式,作为中断请求信号;TR1、TR0——计数运行控制位;为1时,启动定时器/计数器工作;为0时,停止定时器/计数器工作;2工作方式控制寄存器TMOD其格式如下:GATE:门控位;当GATE=1时,同时INTx为高电平,且TRx置位时,启动定时器,外部启动;当GATE=0时,每当TRx置位时,就启动定时器,是内部启动方式;C/T:选择定时器功能还是计数器功能;该位置位时选择计数器功能;该位清零时选择定时器功能;M1M0:这两位指定定时/计数器的工作方式,可形成四种编码,对应四种工作方式:7、各种工作方式计数初值计算公式方式0:定时时间T=8192-计数初值×机器周期计数次数C=8192-X方式1:定时时间T=65536-计数初值×机器周期计数次数C=65536-X方式2:定时时间T=256-计数初值×机器周期计数次数C=256-X8、定时器程序设计查询方式:1在0000H处存放一条无条件转移指令,转到主程序;2设置工作方式TMOD;3设置计数初值;4启动定时计数;5等待时间到或计数计满;LOOP:JBC TF0/TF1,LOOP1SJMP LOOP LOOP1:……6重新设置计数初值除方式2,再转第5步; 中断方式:1在0000H 处存放一条无条件转移指令,转到主程序;2在入口地址处存放一条无条件转移指令转到中断服务子程序; 3设置工作方式TMOD; 4设置计数初值; 5启动定时计数; 6设置IE 和IP; 7设置SP; 8原地踏步;9中断服务子程序;重新设置计数初值除方式2,最后RETI;例 选用定时器/计数器T1工作方式0产生500μS 定时,在输出周期为1ms 的方波,设晶振频率=6MHZ;1根据定时器/计数器1的工作方式,对TMOD 进行初始化;按题意可设:GATE=0用TR1位控制定时的启动和停止, =0置定时功能,M1M0=00置方式0,因定时器/计数器T0不用,可将其置为方式0不能置为工作方式3,这样可将TMOD 的低4位置0,所以TMOD =00H;2计算定时初值- X ×2=500将低5位送TL1,高8位送TH1得:TH1=F8H,TL1=06H 3 编制程序查询方式 ORG 0000H LJMP MAIN ORG 0300HMAIN : MOV TMOD,00H ;TMOD 初始化 MOV TH1,0F8H ;设置计数初值T C132MOV TL1,06HSETB TR1 ;启动定时 LOOP : JBC TF1,LOOP1 ;查询计数溢出 AJMP LOOPLOOP1:CPL ;输出取反MOV TL1,06H ;重新置计数初值MOV TH1,0F8HAJMP LOOP ;重复循环 END例 用定时器/计数器T1以工作方式2计数,要求每计满100次进行累加器加1操作;1TMOD 初始化M1M0=10方式2, =1计数功能,GATE=0TR1启动和停止,因此TMOD=60H; 2计算计数初值-100=156D=9CH 所以 TH1=9CH 3编制程序中断方式 ORG 0000HAJMP MAIN ;跳转到主程序ORG 001BH ;定时/计数器1中断服务程序入口地址 AJMP INSERT1 ORG 0030HMAIN :MOV TMOD 60H ;TMOD 初始化 MOV TL1,9CH ;首次计数初值 MOV TH1,9CH ;装入循环计数初值 SETB TR1 ;启动定时/计数器1SETB EA ;开中断SETB ET1SETB PT1 ;T1为高优先级 MOV SP,40HSJMP ﹩ ;等待中断INSERT1:INC A RETITC 82END第6章单片机并行存储器扩展考试知识点:1、单片机并行扩展总线的组成1地址总线:传送地址信号2数据总线:传送数据、状态、指令和命令3控制总线:控制信号2、80C51单片机并行扩展总线1以P0口的8位口线充当低位地址线/数据线2以P2口的口线作高位地址线3控制信号:使用ALE作地址锁存的选通信号,以实现低8位地下锁存;以PSEN信号作为扩展程序存储器的读选通信号;以EA信号作为内外程序存储器的选择信号;以RD和WR作为扩展数据存储器和I/O端口的读/写选通信号;3、单片机并行存储器扩展的方法各种外围接口电路与单片机相连都是利用三总线实现;1地址线的连接将外围芯片的低8位地址线A7~A0经锁存器与P0口相连,高8位地址线A15~A8与P2口相连;如果不足16位则按从低至高的顺序与P0、P2口的各位相连;2数据线的连接外围芯片的数据线D7~D0可直接与P0口相连;3控制线的连接ROM:OE—PSENRAM:OE—RD、WE—WR片选信号CE的连接方法:1接地,适用于扩展一块存储器芯片; 2线选法。

控制转移类指令和位操作指令

控制转移类指令和位操作指令

控制转移类指令和位操作指令(一).控制转移类指令计算机运行过程中,有时因为操作的需要,程序不能按顺序逐条执行指令,需要改变程序运行方向,即将程序跳转到某个指定的地址再顺序执行下去。

控制转移类指令的功能就是根据要求修改程序计数器PC的内容,以改变程序运行方向,实现转移。

控制转移类指令可分为:无条件转移、条件转移、绝对转移、相对转移和调用、返回指令。

下面我们将分类介绍。

1.无条件转移指令(4条)LJMP add16 ;add16→PC,无条件跳转到add16地址,可在64KB范围内转移,称为长转移指令AJMP add11 ;add11→PC,无条件转向add11地址,在2KB范围内转移SJMP rel ;PC+2+rel→PC,相对转移,rel是偏移量,8 位有符号数,范围-128~127,即可向后跳转128,向前可跳转127JMP @A+DPTR ;A+DPTR→PC ,属散转指令,无条件转向A与DPTR内容相加后形成的新地址例执行指令LJMP 9100H不管这条指令存放在哪里,执行时将使程序转移到9100H,和AJMP,SJMP指令是有差别的。

例程序2000H MOV R0 , #10H ;10H→PC2002H SJMP 03H ;PC+2+rel=2002H+2+03H=2007H→PC┇┇2006H ┇2007H ┇从说明中可见,执行SJMP 03H 指令后,马上跳转到2007H地址执行程序。

2.条件转移指令(8条)条件转移指令是根据某种特定条件转移的指令。

条件满足时转移,条件不满足时则顺序执行下面的指令。

JZ rel ;A=0转向PC+2+rel→PC,A≠0顺序执行JNZ rel ;A≠转向PC+2+rel→PC ,A=0顺序执行CJNE A, direct, rel ;A≠ (direct)转向PC+3+rel→PC且当A>(direct),Cy=0;当A<(direct),Cy=1;否则A=(direct),PC+3→PC即顺序执行CJNE A, #data, rel ;A data P转向PC+3+rel→PC且当A >data,Cy=0;当A <data,Cy=1,;A=data,PC+3→PC顺序执行CJNZ Rn, #data, rel ;Rn≠data转向PC+3+rel→PC;且当Rn>data,Cy=0,当Rn<data,Cy=1;Rn=data,PC+3→PC顺序执行CJNE @Ri,#data, rel ;(Ri) ≠data ,PC+3+rel→PC;且当(Ri)>data ,Cy=0,当(Ri)<data,Cy=1;(Ri)=data, PC+3→PC顺序执行DJNZ Rn, rel ;Rn-1→Rn ,Rn ≠0转向PC+2+rel→PC;Rn=0,PC+2→PC顺序执行DJNZ direct, rel ;(direct)-1→(direct),(direct) ≠0转向 PC+2+rel→PC;(direct)=0 ,PC+2→PC顺序执行注意:1)CJNE类指令借用进位标志Cy作为比较结果的标志位。

2.3.5控制转移指令

2.3.5控制转移指令

例:某温度控制系 统,采集的温度值 (Ta)放在累加器A 中,在内部RAM54H单 元存放温度下限值 (T54),在55H单元 存放温度上限值 (T55)。若Ta>T55, 程序转向JW(降温 处理程序);若 Ta<T54,则程序转向 SW(升温处理程序); 若T55≥Ta≥T54,则 程序转向FH(返回 主程序)。
在指令中提供了子程序入口地址的低11位,这 11位地址的a7~a0在指令的第二字节中,a10~a8 则占据第一字节的高3位。 为了实现子程序调用,该指令共完成两项操作: 断点保护 断点保护是通过自动方式的堆栈操作来实现的, 即把PC值自动送堆栈保存起来,待子程序返回时再送 回该PC值。 构造目的地址 目的地址的构造是在PC当前值的基础上以指令提 供的11位地址取代PC的低11位,而PC的高5位不变。
二、条件转移指令
条件所谓条件转移就是指程序转移是有条件的。 执行条件转移指令时,如指令中规定的条件满足, 则进行程序转移,否则程序顺序执行。 1、累加器判零转移指令
JZ rel ; 若(A)=0,则PC←(PC)+2+rel
若(A)≠0,则PC←(PC) +2 JNZ rel ; 若(A)≠0,则PC←(PC)+2+rel 若(A)=0,则PC←(PC)+2 这两条指令都是二字节指令,是有条件的相对转
(2) 长调用指令
LCALL addr16
给 出。指令执行后,断点进栈保存,调用addr16地址 的子程序。因此本指令的操作内容可表出为: PC←(PC)+3 SP←(SP)+1,(SP)←(PC)7-0 SP←(SP)+1,(SP)←(PC)15-8 PC15~0←addr16 本指令是三字节指令,调用地址在指令中直接

控制转移指令

控制转移指令

2.条件转移指令 条件转移指令 A判零转移指令(2字节) 判零转移指令( 字节 字节) 判零转移指令 • JZ rel (A)=0,转移;(PC)+2+rel PC ) ,转移; ) (A)≠0,则顺序执行 ) ,则顺序执行;(PC)+2 PC 。 • JNZ rel (A)≠0,转移;(PC)+2+rel PC ) ,转移; ) (A)=0,则顺序执行 ) ,则顺序执行;(PC)+2 PC
变址寻址转移指令: 字节) 变址寻址转移指令: (1字节) 字节 JMP @A+DPTR 根据A中数值的不同 中数值的不同,转向不同的子 根据 中数值的不同 转向不同的子 程序入口. 程序入口
(A)+(DPTR) PC
的值( ),转向相应的处理 例:根据A的值(0~3),转向相应的处理 根据 的值 ), 程序。( 。(LJMP指令 字节) 指令3字节 程序。( 指令 字节) MOV R1,A , RL A ;(A) ;( )*2 ADD A,R1 ;(A) , ;( )*3 MOV DPTR,#TABLE , JMP @A+DPTR TABLE: LJMP LOOP0;转0处理程序 : ; 处理程序 LJMP LOOP1 ; 转1处理程序 处理程序 LJMP LOOP2 ;转2处理程序 处理程序 LJMP LOOP3 ;转3处理程序 处理程序
短转移指令: 字节) 短转移指令: (2字节) 字节 SJMP rel (PC)+2+rel (PC) rel: 8位带符号数补码 位带符号数补码 转移范围: 转移范围 -128(-80H)~+127(7FH)(256B) ( ) ( ) 当前地址(PC)=2000H 例:当前地址 当前地址 执行 SJMP 56H 结果:目标地址 目标地址(PC)=2058H 结果 目标地址

FANUC机器人程序员A 讲义6(第六章)

FANUC机器人程序员A 讲义6(第六章)
计算四个点的位置。
7: PR[14,2]=PR[11,2]+100 8:J PR[11] 100% FINE
PR[14]=PR[13] PR[14,1]=PR[13,1]-100
9:L PR[12] 2000mm/sec FINE 10:L PR[13] 2000mm/sec FINE 11:L PR[14] 2000mm/sec FINE 12:L PR[11] 2000mm/sec FINE
P点所记录的坐标系号
当前有效的坐标系号
17
以当前有效坐标系 为参考坐标
三、指令
请注意: 使用PR[i]时,需提前声 明其参考的USER和 TOOL坐标系号,否则 可能引起错误甚至危险 的发生!
18
三、指令
19
运行速度
三、指令
运行速度
速度倍率 实际的运行速度 = 运行速度 X 速度倍率
20
定位类型
8:L P[4] 2000mm/sec FINE
9:RO[1]=OFF 10:WAIT 0.5sec
手抓动作, 放置工件
11:L P[3] 2000mm/sec CNT50
12:L PR[1:HOME] 2000mm/sec
FINE
34
休息片刻
Rest for a while
35
3、条件比较指令 IF
4
二、指令的编辑
在光标前插入空白行,可同时插入几行 删除程序语句,可选择删除的范围 复制/黏贴程序语句,复制一次,可黏贴多次 检索程序指令的要素(如IO、R[i]等) 替换程序指令要素 使位置号码依序排列 显示/隐藏IO指令或寄存器指令的注解 撤销最后上一步操作 将程序指令注解化或者解除注解化
5

计算机组成原理第六章

计算机组成原理第六章

指令周期的基本概念
节拍的宽度取决于CPU完成一次基本的微操作的时 间,如:ALU完成一次正确的运算,寄存器间的一 次数据传送等。
不同的指令,可能包含不同数目的机器周期。 一个机器周期中,包含若干个时钟周期(节拍脉冲
或T脉冲)。 CPU周期规定,不同的计算机中规定不同
2. 每条指令的指令周期不同
➢译码器经过对指令进行分析和解释,产生相应的控 制信号提供给时序控制信号形成部件。
机器周期、工作节拍、脉冲及启停控制线路
➢由脉冲源产生一定频率的脉冲信号作为整个机器的 时钟脉冲
时序控制信号形成部件
➢时序控制信号形成部件又称微操作信号发生器,真 正控制各部件工作的微操作信号是由指令部件提供 的操作信号、时序部件提供的时序信号、被控制功 能部件所反馈的状态及条件综合形成的。
2. 微操作:是微命令的操作过程。
– 微命令和微操作是一一对应的。 – 微命令是微操作的控制信号,微操作是微命令的操作过程。 – 微操作是执行部件中最基本的操作。
由于数据通路的结构关系,微操作可分为相容的和互斥:
1. 互斥的微操作,是指不能同时或不能在同一个节拍内并行执行的 微操作。可以编码
2. 相容的微操作,是指能够同时或在同一个节拍内并行执行的微操 作。必须各占一位
联合控制方式
– 大部分指令在固定的周期内完成,少数难以确定的操作采 用异步方式
– 机器周期的节拍脉冲固定,但是各指令的机器周期数不固 定(微程序控制器采用)
微程序控制原理
1. 微命令:控制部件向执行部件发出的各种控制命令叫作 微命令,它是构成控制序列的最小单位。
– 例如:打开或关闭某个控制门的电位信号、某个寄存器的打入脉 冲等。
读写时序信号的译码逻辑表达式

汇编(十五)控制转移类指令一

汇编(十五)控制转移类指令一

汇编(十五)——控制转移类指令一Intel 8086中,程序的执行序列是由代码段寄存器CS 和指令指针IP确定的。

CS包含当前指令所在代码段的段地址,IP则是要执行的下一条指令的偏移地址。

程序的执行一般是依指令序列顺序执行,但有时候需要改变程序的流程,实现分支程序。

控制转移类指令通过修改CS和IP的值改变程序的执行顺序,实现分支。

分支程序有时根据某个条件转移执行,有时无条件条转到某条指令执行,转移指令的目标地址是代码段中某个指令的位移量,这个位移量是用标号来指出的。

一、标号标号(过程名亦视为标号)用来说明可执行指令在汇编语言程序中的位置(从这个角度来说,变量应用于说明伪指令的位置)。

标号可以作为转移指令(或调用指令CALL)的操作数。

和变量类似,标号有三种属性:段(SEGMENT)、位移量(OFFSET)和距离(DISTANCE)。

段和位移量属性就是在哪个段、什么位置上定义的标号。

标号只要有了定义,这两个属性就自然的产生。

如果标号只能在本段中(即标号所定义的段中)用JMP或条件转移指令(或CALL)进行访问,那么必须将这个标号的距离属性定义为NEAR;如果标号能为其他段中的JNMP(或CALL)指令访问,则需将标号的距离属性定义为FAR。

标号的距离属性需要再定义标号时指出。

1、标号的定义(1)定义距离属性为NEAR的标号1)距离属性为NEAR的标号可以用隐含的说明,即在标号名后面加上冒号,放在指令前面。

如:L1: MOV AX,BX@: ADD AX,1002)距离属性为NEAR的标号也可以用现实说明,即用LABEL 位指令明显说明,或在EQU位指令中用THIS操作符明显的指出。

如:L2 LABEL NEARMOV CX,5L3 EQU THIS NEARAND AX,0FFH(2)定义距离属性为FAR的标号距离属性为FAR的标号只能显示说明L4 LABEL FARMOV AX,DXL5 EQU THIS FAROR AL,30H(3)同一条指令处可以定义两个距离属性不同的标号,以提高访问标号的灵活性。

控制转移类指令

控制转移类指令

控制转移类指令✧用于实现分支、循环、过程等程序结构,是仅次于传送指令的最常用指令.✧控制转移类指令通过改变IP(和CS)值,实现程序执行顺序的改变说明✧只有中断返回指令(IRET)改变控制标志位✧许多转移指令受状态标志位的影响1.无条件转移指令(JMP 操作数;程序转向label标号指定的地址)◆寻址方式:直接寻址方式转移地址象立即数一样,直接在指令的机器代码中,就是直接寻址方式间接寻址方式转移地址在寄存器或主存单元中,就是通过寄存器或存储器的间接寻址方式◆目标地址范围✓段内(注意转移范围是+ -,即前后都可以转移!当向地址增大方向转移时,位移量为正;向地址减小方向转移时,位移量为负)✡段内转移——近转移(near)⏹转移范围用二个字节表达,在当前代码段64KB范围内转移(±32KB范围)⏹不需要更改CS段地址,只要改变IP偏移地址,由16位带符号数给出。

✡段内转移——短转移(short)⏹转移范围用一个字节表达,在当前代码段256B范围内转移(-128~+127范围),只改变IP的值,由8位带符号数给出。

✓段间段间转移——远转移(far)从当前代码段跳转到另一个代码段,可以在1MB范围需要更改CS段地址和IP偏移地址目标地址必须用一个32位数表达,叫做32位远指针,它就是逻辑地址。

段间间接转移指令中,目的地址存放在连续4个存储单元字节中,低字节两个单元的内容代替IP,高字节两个单元的内容代替CS。

注:实际编程时,汇编程序会根据目标地址的距离,自动处理成短转移、近转移或远转移程序员可用操作符short、near ptr或far ptr强制.✌思考:如果转移超过16BIT,怎么办?答:变成段间转移。

JMP 1234H 这个指令对否?JMP 12345678H呢?2、条件转移指令(Jcclable;条件满足,发生转移:IP←IP+8位位移量;条件不满足,顺序执行)注意:1.Jcc本身不是一条指令,它是条件转移指令的统称。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档