单片机及应用-第三章-80C51单片机指令系统_第1页
单片机及应用-第三章-80C51单片机指令系统_第2页
单片机及应用-第三章-80C51单片机指令系统_第3页
单片机及应用-第三章-80C51单片机指令系统_第4页
单片机及应用-第三章-80C51单片机指令系统_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章80C51单片机指令系统主要内容:3.1单片机指令系统概述3.280C51单片机指令寻址方式3.380C51单片机指令分类介绍重点:80C51单片机的寻址方式;指令的功能、字节数、执行周期数。3.1单片机指令系统概述指令:规定计算机基本操作的语句或命令,通常由操作码和操作数两部分组成。2.机器指令:用二进制代码表示的指令称为机器指令。3.助记符指令:用助记符表示的指令称为助记符指令。一个计算机的助记符指令和其机器指令是一一对应的。4.指令系统:一个单片机所能执行的指令的集合称为它的指令系统。5.80C51有111条指令。其指令不定长,有1字节、2字节和3字节指令。6.80C51指令中使用的符号

Rn(n=0~7):表示当前工作寄存器R0~R7中的任一个寄存器。Ri:可用作间接寻址的寄存器,只能是R0,R1两个寄存器,i=0,1。direct:8位直接地址,在指令中表示直接寻址方式,寻址范围256个单元。#data:8位立即数。#data16:16位立即数。addr16:16位目的地址,主要用于LCALL和LJMP指令中。addr11:11位目的地址,主要用于ACALL和AJMP指令中。rel:8位带符号补码数,用作相对转移指令中的偏移量。3.1单片机指令系统概述DPTR:16位数据指针。bit:内部RAM(包括专用寄存器)中的直接寻址位。A:累加器ACC:直接寻址方式的累加器。B:B寄存器C:进位标志位。也是布尔机的累加位。/:加在位地址的前面,表示对该位状态取反。@:间接寻址寄存器的前缀标志。(X):某寄存器或某单元中的内容。((X)):由“X”间接寻址的单元中的内容。←:箭头左边的内容被箭头右边的内容所取代。3.1单片机指令系统概述6.80C51指令中使用的符号3.280C51单片机指令寻址方式寻址方式:寻取操作数的方法(源操作数和/或目的操作数)存放结果的方法(目的操作数)80C51有8种寻址方式: 寄存器寻址、直接寻址、寄存器间接寻址、 立即寻址、变址寻址、位寻址、相对寻址、 隐含寻址下面以寻取源操作数的方法为例来分析定义具体的寻址方式3.280C51单片机指令寻址方式1.寄存器寻址方式

例:MOVA,R0

操作码 寄存器地址

11101 000定义:操作数在指定的寄存器中,指令给出对应的寄存器地址。特点:指令指出的某一个寄存器的内容即为操作数。寻址范围:8个当前通用寄存器Rn(R0~R7)。2.直接寻址方式例:MOVA,3AH

操作码 存储单元地址

E5 3A定义:操作数在数据存储器或专用寄存器中,指令给出该存储单元或专用寄存器的地址。特点:指令中含有操作数的地址。该地址指出了参与操作的数据所在的存储单元地址或专用寄存器地址。计算机执行时根据直接地址找到所需要的操作数。寻址范围:片内RAM(低128字节)、专用寄存器。3.280C51单片机指令寻址方式3.寄存器间接寻址方式例:MOVA,@R0

操作码 间址寄存器识别地址

1110011 03.280C51单片机指令寻址方式定义:操作数在数据存储器中,指令中给出的是存放操作数存储单元地址的间址寄存器的识别地址。3.寄存器间接寻址方式特点:指令给出的寄存器中存放的是操作数的地址。寄存器间接寻址是一种二次寻找操作数地址的寻址方式,寄存器前边必须加前缀符号“@”。不能用于寻址特殊功能寄存器SFR。寻址范围:内部RAM低128B,外部RAM64KB(需结合P2口使用)。3.280C51单片机指令寻址方式4.立即寻址方式例:MOVA,#3AH ;74 3A MOVDPTR,#3AH ;90 003A

操作码 立即数定义:指令直接给出操作数,所以又叫立即数。特点:指令中直接含有所需的操作数。该操作数可以是8位的,也可以是16位的,常常处在指令的第二字节和第三字节的位置上。8位和16位的立即数分别使用#data或#data16表示,在立即数前面加“#”标志,用以和直接寻址中的直接地址(direc或bit)相区别。3.280C51单片机指令寻址方式5.变址寻址方式例:MOVCA,@A+DPTR;A←((A)+(DPTR));机器码:93H MOVCA,@A+PC;A←((A)+(PC));机器码:83H3.280C51单片机指令寻址方式定义:操作数存放在程序存储器中,其单元地址为变址寄存器(累加器A)和基址寄存器(DPTR或PC)相加形成的16位地址。5.变址寻址方式特点:指令操作码中隐含作为基址寄存器用的DPTR(或PC)和作为变址用的累加器A。在执行变址寻址指令时,80C51单片机先把基地址(DPTR或PC的内容)和地址偏移量(A的内容)相加,形成操作数地址,再由操作数地址找到操作数,并完成相应的操作。变址寻址方式的指令是单字节指令。3.280C51单片机指令寻址方式6.位寻址方式

例:MOVC,3AH

操作码 位地址

A2 3A定义:操作数是可单独操作的一个位,指令中给出的是这个位的位地址。特点:位寻址方式类似于直接寻址方式,只不过这里的地址是某一位的位地址,并仅对这个位进行操作。寻址范围:片内RAM低128B中位寻址区、可位寻址的部分SFR的某些位(共83位)。3.280C51单片机指令寻址方式7.相对寻址方式例:SJMP3AH;(PC)←(PC)+2+3AH

操作码 偏移量

80 3A定义:将程序计数器PC的当前值(取出本条指令后的PC值)与指令给出的偏移量(rel)相加,形成新的目标地址。特点:该寻址方式主要用于相对转移指令,相对转移的目的地址=当前指令地址+指令字节数+偏移量。它是为实现程序的相对转移而设计的,指令码中含有相对地址偏移量,能生成浮动代码。寻址范围:只能对程序存储器进行寻址。相对地址偏移量是一个带符号的8位二进制补码,其取值范围为

128~+127。3.280C51单片机指令寻址方式8.隐含寻址方式

例:POP3AH ;源操作数隐含在栈顶单元

MOVA,R0 ;11101 000

MOVA,#3AH ;74 3A

;操作码 操作数 ;操作数中没有目标操作数的信息定义:操作数未在指令的操作数字段明确给出,隐含在操作码字段,由操作码规定。特点:操作数不由操作数字段显式给出,隐含在操作码字段。寻址范围:堆栈、最常用的寄存器A、DPTR、位寄存器C和某些指令专用的寄存器B等。3.280C51单片机指令寻址方式3.380C51单片机指令分类介绍80C51指令系统共有111条指令,按功能分为5大类: ——数据传送类(29条) ——算术运算类(24条) ——逻辑运算及移位类(24条) ——控制转移类(17条) ——位操作类(17条)3.380C51单片机指令分类介绍3.3.1数据传送类指令基本格式:MOV<目的操作数>,<源操作数>与平常所说的搬东西是不一样的。取之不尽,一冲就掉。80C51的数据传送类指令可分为五组内部RAM数据传送指令外部RAM读写指令程序存储器读指令数据交换指令堆栈操作指令

3.3.1数据传送类指令1.内部RAM数据传送指令(1)8位立即数传送指令(2)16位立即数传送指令(3)内部RAM之间的数传送指令(4)通过累加器的数传送指令3.3.1数据传送类指令1.内部RAM数据传送指令(1)8位立即数传送指令 MOVA,#data(8位立即数送累加器) MOVdirect,#data(8位立即数送直接寻址单元) MOV@Ri,#data(8位立即数送Ri间接寻址单元) MOVRn,#data(8位立即数送寄存器)3.3.1数据传送类指令操作码目的操作数源操作数字节数执行周期数对标志位的影响POVACCY74H-data21√---75Hdirectdata32----0111011idata21----01111ndata21----内部RAM数据传送指令3.3.1数据传送类指令(2)16位立即数传送指令MOVDPTR,#data16(16位立即数送DPTR)(3)内部RAM单元之间的数据传送指令 MOVdirect2,direct1(直接寻址数据送直接寻址单元) MOVdirect,@Ri(Ri间接寻址数据送直接寻址单元) MOVdirect,Rn(寄存器内容送直接寻址单元) MOV@Ri,direct(直接寻址数据送Ri间接寻址单元) MOVRn,direct(直接寻址数据送寄存器)内部RAM数据传送指令3.3.1数据传送类指令(4)通过累加器的数据传送指令(内部RAM读写指令) MOVA,direct(直接寻址数据送累加器) MOVA,@Ri(Ri间接寻址数据送累加器) MOVA,Rn(寄存器内容送累加器) MOVdirect,A(累加器内容送直接寻址单元) MOV@Ri,A(累加器内容送Ri间接寻址单元) MOVRn,A(累加器内容送寄存器)内部RAM数据传送指令3.3.1数据传送类指令例1设内部RAM(30H)=40H,(40H)=10H,(10H)=00H,(P1)=0CAH,分析以下程序执行后各单元及寄存器、P2口的内容。MOVR0,#30H ;R0←30HMOVA,@R0 ;A←((R0))MOVR1,A ;R1←(A)MOVB,@R1 ;B←((R1))MOV@R1,P1 ;(R1)←(P1)MOVP2,P1 ;P2←(P1)MOV10H,#20H ;10H←20H

执行上述指令后的结果为:(R0)=30H,(R1)=(A)=40H,(B)=10H,(40H)=(P2)=(P1)=CAH,(10H)=20H。内部RAM数据传送指令80C51单片机片内RAM数据传送图3.3.1数据传送类指令内部RAM数据传送指令80C51单片机片内RAM一般传送指令表3.3.1数据传送类指令内部RAM数据传送指令80C51单片机片内RAM一般传送指令表3.3.1数据传送类指令2.外部数据存储器读/写指令3.3.1数据传送类指令(1)Ri作间址寄存器的外部RAM单元读/写指令

MOVXA,@Ri(Ri间接寻址的外部RAM单元读)MOVX@Ri,A(Ri间接寻址的外部RAM单元写)(2)DPTR作间址寄存器的外部RAM单元读/写指令

MOVXA,@DPTR(DPTR间接寻址的外部RAM单元读)MOVX@DPTR,A(DPTR间接寻址的外部RAM单元写)2.外部数据存储器读/写指令3.3.1数据传送类指令例2设外部RAM(0203H)=FFH,分析以下指令执行后的结果。MOVDPTR,#0203H;DPTR←0203HMOVXA,@DPTR;A←((DPTR))MOV30H,A ;30H←(A)MOVA,#0FH;A←0FHMOVX@DPTR,A;(DPTR)←(A)执行结果为:(DPTR)=0203H,(30H)=FFH,(0203H)=(A)=0FH。3.程序存储器读指令MOVCA,@A+DPTR(程序存储器读)MOVCA,@A+PC(程序存储器读)3.3.1数据传送类指令例3用查表法把累加器中的十六进指数转换为ASCII码的程序 HBA: INCA MOVCA,@A+PC RET ;十六进制数ASCII码表 DB30H,31H,…,39H,41H,42H,…,46H4.数据交换指令3.3.1数据传送类指令(1)整字节交换指令XCHA,Rn(寄存器寻址字节交换)XCHA,direct(直接寻址字节交换)XCHA,@Ri(Ri间接寻址字节交换)(2)半字节交换指令XCHDA,@Ri(Ri间接寻址半字节交换)(3)累加器高低半字节交换指令SWAPA(累加器内容高低半字节交换)例4

设(R0)=30H,(30H)=4AH,(A)=28H,则执行XCHA,@R0后,结果为(A)=4AH,(30H)=28H。执行XCHDA,@R0后,结果为(A)=2AH,(30H)=48H。执行SWAPA后,结果为(A)=82H。3.3.1数据传送类指令5.堆栈操作指令

PUSHdirect(进栈);SP

(SP)+1, ;(SP)

(direct)POPdirect(出栈);(direct)((SP)), ;SP(SP)-13.3.1数据传送类指令例5若在外部程序存储器中,从2000H单元开始依次存放0~9的平方值。试用查表指令求3的平方值。要求保持DPTR中的内容不变。完成上述功能的程序如下:MOVA,#03H ;(A)←03HPUSHDPH ;保护DPTR高8位入栈PUSHDPL ;保护DPTR低8位入栈MOVDPTR,#2000H ;(DPTR)←2000HMOVCA,@A+DPTR ;(A)←(2000H+03H)POPDPL ;弹出DPTR低8位POPDPH ;弹出DPTR高8位3.3.1数据传送类指令执行结果:(A)=09H,DPTR内容未变。操作类型助记符说明MOV、MOVX、MOVC传送操作XCH、XCHD、SWAP交换操作PUSH、POP堆栈操作6.数据传送类指令小结:3.3.1数据传送类指令源操作数寻址方式寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、变址寻址、隐含寻址。目的操作数寻址方式寄存器寻址、直接寻址、寄存器间接寻址、隐含寻址。对标志位的影响除了目的操作数为ACC的指令影响奇偶标志P外,一般不影响标志位。3.3.2算术运算类指令主要用于8位无符号数的算术运算,包括:二目运算:加、减、乘、除,这类指令影响PSW中的有关状态位。和单目运算:加1、减1,这类指令除了目的操作数为ACC的指令影响奇偶标志P外,一般不影响标志位。3.380C51单片机指令分类介绍80C51的数据传送类指令有七组1.不带进位的加法指令2.带进位的加法指令3.带借位的减法指令4.加1指令5.减1指令6.乘除指令7.十进制调整指令3.3.2算术运算类指令1.不带进位的加法指令ADDA,#data(立即数加法)ADDA,direct(直接寻址加法)ADDA,@Ri(间接寻址加法)ADDA,Rn(寄存器寻址加法)3.3.2算术运算类指令操作码目的操作数源操作数字节数执行周期数对标志位的影响POVACCY24H-data21√√√√25H-direct32√√√√0010011-i21√√√√00101-n21√√√√2.带进位加法指令ADDCA,#data(立即数带进位加法)ADDCA,direct(直接寻址带进位加法)ADDCA,@Ri(间接寻址带进位加法)ADDCA,Rn(寄存器寻址带进位加法)3.3.2算术运算类指令3.带借位减法指令SUBBA,#data(立即数带借位减法)SUBBA,direct(直接寻址带借位减法)SUBBA,@Ri(间接寻址带借位减法)SUBBA,Rn(寄存器寻址带借位减法)例6计算6789H+12ABH,结果放到寄存器R7,R6。3.3.2算术运算类指令 MOVA,#89H ADDA,#ABH MOVR6,A MOVA,#67H ADDCA,#12H MOVR7,A结果:(R6)=34H,(R7)=(A)=7AH, Cy:0,AC:0,OV:0,P:14.加1指令INCA(累加器加1)INCdirect(直接寻址单元加1)INC@Ri(间接寻址单元加1)INCRn(寄存器加1)INCDPTR(16位数据指针加1)3.3.2算术运算类指令操作码目的操作数源操作数字节数执行周期数对标志位的影响POVACCY04H--11√---05Hdirect-21----0000011i-11----00001n-11----A3H--12----5.减1指令DECA(累加器减1)DECdirect(直接寻址单元减1)DEC@Ri(间接寻址单元减1)DECRn(寄存器减1) 例7设(R0)=7EH,(7EH)=FFH,(7FH)=38H,(DPTR)=10FEH,逐条分析下列指令执行后各单元的内容。INC@R0;使7EH单元内容由FFH变为00HINCR0;使R0的内容由7EH变为7FHINC@R0;使7FH单元内容由38H变为39HINCDPTR;使DPL为FFH,DPH不变INCDPTR;使DPL为00H,DPH为11HINCDPTR;使DPL为01H,DPH不变3.3.2算术运算类指令3.3.2算术运算类指令加减法指令表6.乘除指令MULAB(乘法:B,A(A)*(B))DIVAB(除法:A(A)/(B)的商,B(A)/(B)的余数)3.3.2算术运算类指令操作码目的操作数源操作数字节数执行周期数对标志位的影响POVACCYA4H--14√√-√84H--14√√√√注:CY被清0例8设(A)=4EH,(B)=5DH,则执行MULAB指令后,乘积是1C56H,(B)=1CH,(A)=56H。再执行DIVAB指令后,(A)=3,(B)=2。3.3.2算术运算类指令7.十进制调整指令DAA(十进制调整)若(AC)=1或(A[3:0])>9,则A[3:0]←(A[3:0])+06H若(CY)=1、(A[7:4])>9或(A[7:4])=9 且低4位修正后有进位,则A[7:4]←(A[7:4])+06H注:只能用于BCD码加法调整。操作码目的操作数源操作数字节数执行周期数对标志位的影响POVACCYD4H--11√--√例9下列程序运行结果。 A CY AC MOVA,#58H ;58H - - ADDA,#65H ;BDH 0 0 DAA ;23H 1 0 DAA ;83H 1 0 MOVA,#99H ;99H 1 0 ADDA,#99H ;32H 1 1 DAA ;98H 1 1 DAA ;FEH 1 1 MOVA,#12H ;12H 1 1 ADDA,#23H ;35H 0 0 DAA ;35H 0 03.3.2算术运算类指令7.十进制调整指令主要用于逻辑运算和移位操作,包括二元逻辑运算(按位操作):与、或、异或和一元运算和操作:取反、清零、循环移位。这些指令除了目的操作数为ACC的指令影响奇偶标志P外,一般不影响标志位。逻辑运算按位操作。3.3.3逻辑运算及移位类指令3.3.3逻辑运算及移位类指令80C51的逻辑运算及移位类指令可分为5组1.逻辑“与”运算指令2.逻辑“或”运算指令3.逻辑“异或”运算指令4.累加器清0和取反指令5.移位指令3.3.3逻辑运算及移位类指令1.逻辑“与”运算指令ANLdirect,A(累加器与直接寻址单元逻辑“与”)ANLdirect,#data(立即数与直接寻址单元逻辑“与”)ANLA,#data(立即数与累加器逻辑“与”)ANLA,direct(直接寻址单元与累加器逻辑“与”)ANLA,@Ri(间接寻址单元与累加器逻辑“与”)ANLA,Rn(寄存器与累加器逻辑“与”)例10(P1)=C5H=11000101B,清零P1口高4位而保留低4位。执行指令:ANLP1,#0FH结果为:(P1)=05H=00000101B。2.逻辑“或”运算指令ORLdirect,A(累加器与直接寻址单元逻辑“或”)ORLdirect,#data(立即数与直接寻址单元逻辑“或”)ORLA,#data(立即数与累加器逻辑“或”)ORLA,direct(直接寻址单元与累加器逻辑“或”)ORLA,@Ri(间接寻址单元与累加器逻辑“或”)ORLA,Rn(寄存器与累加器逻辑“或”)3.3.3逻辑运算及移位类指令

例11若(A)=C0H,(R0)=3FH,(3FH)=0FH,则执行指令:ORLA,@R0结果为:(A)=CFH=11001111B。3.逻辑“异或”运算指令XRLdirect,A(累加器与直接寻址单元逻辑“异或”)XRLdirect,#data(立即数与直接寻址单元逻辑“异或”)XRLA,#data(立即数与累加器逻辑“异或”)XRLA,direct(直接寻址单元与累加器逻辑“异或”)XRLA,@Ri(间接寻址单元与累加器逻辑“异或”)XRLA,Rn(寄存器与累加器逻辑“异或”)3.3.3逻辑运算及移位类指令4.累加器清0和取反指令组 CLRA(累加器清0) CPLA(累加器按位取反)3.3.3逻辑运算及移位类指令例12设(A)=5AH,且(CY)=1,则 执行指令RLA后,(A)=B4H,(CY)=1。 执行指令RRA后,(A)=2DH,(CY)=1。 执行指令RLCA后,(A)=B5H,(CY)=0。 执行指令RRCA后,(A)=ADH,(CY)=0。5.移位指令RLA(累加器内容循环左移)RRA(累加器内容循环右移)RLCA(通过CY循环左移)RRCA(通过CY循环右移)逻辑操作指令表3.3.3逻辑运算及移位类指令3.3.3逻辑运算及移位类指令逻辑操作指令表续ANLA,#0FH ;屏蔽A的高4位SWAPA ;把A的低4位交换到A的高4位ANLP1,#0FH ;清P1口高4位ORLP1,A;输出A的高4位到P1口高4位例13把累加器A中的低4位状态,通过P1口的高4位输 出,P1口的低4位状态不变。3.3.3逻辑运算及移位类指令3.3.4控制转移类指令控制转移类指令有以下三种:无条件转移条件转移子程序调用与返回此类指令修改PC值,改变程序流程,但一般不影响PSW的标志位。1.无条件转移指令(1)长转移指令 LJMPaddr16 ;64K(2)绝对转移指令 AJMPaddr11 ;2K(3)相对转移指令 SJMPrel;-126-+129(4)变址寻址转移指令 JMP@A+DPTR (该指令又称散转指令)3.3.4控制转移类指令例14若AJMP指令的地址(PC)=27F0H,则执行指令AJMP0FFH后,(PC)=20FFH,程序向后转到20FFH单元开始执行。若AJMP指令的地址(PC)=27FFH,则执行指令AJMP0FFH后,(PC)=28FFH,程序向前转到28FFH单元开始执行。例15

根据累加器A的值,转不同处理程序的入口。3.3.4控制转移类指令1.无条件转移指令 MOVDPTR,#TABLE;表首地址送DPTRRLAJMP@A+DPTR ;根据A值转移TABLE: AJMPTAB0 ;当(A)=0时转TAB0执行AJMPTAB1;当(A)=1时转TAB1执行AJMPTAB2;当(A)=2时转TAB2执行条件转移指令全部为相对转移指令。条件转移指令在满足所要求的条件时才进行转移;否则,程序继续按顺序执行下一条指令。有三种:(1)累加器判零转移指令(2)数值比较转移指令(3)减1条件转移指令3.3.4控制转移类指令2.条件转移指令3.3.4控制转移类指令(1)累加器判零转移指令JZrel(累加器为零转移)

JNZrel(累加器非零转移)例16将片外RAM首地址为DATA1的一个数据块(结束标志为0)传送到片内RAM首地址为DATA2的存储区中。

分析:外部RAM向内部RAM的数据传送一定要经过累加器A。利用判零条件转移正好可以判别是否要继续传送或者终止。完成数据传送的参考程序如下页:3.3.4控制转移类指令2.条件转移指令 MOVDPTR,#DATA1;DTPR作为外部数据块的地址指针 MOVR1,#DATA2;R1作为内部数据块的地址指针LOOP:MOVXA,@DPTR;取外部RAM数据送入A MOV@R1,A;数据传送至内部RAM单元

JZFINISH ;数据为零则终止传送 INCDPTR ;修改指针,指向下一数据地址 INCR1 SJMPLOOP;循环取数FINISH:END(1)累加器判零转移指令2.条件转移指令3.3.4控制转移类指令(2)数值比较转移指令

CJNEA,#data,rel(累加器内容与立即数比较,不等则转移)CJNEA,direct,rel(累加器内容与直接寻址单元比较,不等则转移)

CJNERn,#data,rel(寄存器内容与立即数比较,不等则转移)CJNE@Ri,#data,rel(间接寻址单元与立即数比较,不等则转移)影响标志位CY,≥0时,清0;反之,置1。例17

当从P1口输入数据为01H时,程序继续执行,否则等待,直到P1口出现01H。3.3.4控制转移类指令2.条件转移指令分析:访问P1口,要用直接地址。判断P1口数据并转不同地方进行相应操作要用累加器内容与直接寻址单元内容比较型条件转移指令。等待就是原地不动。参考程序: MOVA,#01H ;立即数01H送AWAIT:CJNEA,P1,WAIT ;(P1)≠01H,则等待

.

. .(2)数值比较转移指令2.条件转移指令3.3.4控制转移类指令(3)减1条件转移指令 DJNZRn,rel (寄存器减1条件转移) DJNZdirect,rel(直接寻址单元减1条件转移)例18

将内部RAM从DATA单元开始的10个无符号数相加,相加结果送SUM单元保存。分析:将10个无符号数相加,可以先把累加器清0,再依次加上10个数,就可得到所要的结果。加10次,可以用循环程序实现,给某一寄存器送10,通过减1条件转移指令控制循环次数。设相加结果不超过8位二进制数,则参考程序如下页:3.3.4控制转移类指令2.条件转移指令 MOVR0,#0AH ;设置循环次数MOVR1,#DATA;R1作地址指针,指向数据块首地址CLRA ;A清零LOOP:ADDA,@R1;加一个数INCR1 ;修改指针,指向下一个数DJNZR0,LOOP;R0减1,不为0循环MOVSUM,A ;存10个数相加的和(3)减1条件转移指令

例19MOV23H,#0AHCLRALOOP:ADDA,23HDJNZ23H,LOOP

END该程序段的执行过程是:将23H单元中的数连续相加,存至A中,每加一次,23H单元中的数值减1,直至减到0。其结果为?3.3.4控制转移类指令2.条件转移指令3.子程序调用与返回指令(1)绝对调用指令 ACALLaddr11(2)长调用指令 LCALLaddr16(3)返回指令 RET(子程序返回) RETI(中断服务子程序返回)RETI指令除恢复断点地址外,还恢复CPU响应中断时硬件自动保护的现场信息,清除中断响应时所置位的状态触发器,使得已申请或以后申请的同级或低级中断申请可以得到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论