版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1单片机原理及应用单片机原理及应用1、指令的格式、指令的格式 。2、寻址方式、寻址方式。3、分类指令分类指令。3.1 概述概述3.2 寻址方式寻址方式3.3 MCS-51单片机指令系统单片机指令系统2 3.1 概概 述述3一、指令格式一、指令格式注意注意: :方括号是可选项。方括号是可选项。4 5二、二、指令的三种表达形式指令的三种表达形式6 71、单字节指令(、单字节指令(49条)条) 三、三、指令的字节数指令的字节数8 9 2、双字节指令(、双字节指令(46条)条)103、三字节指令(、三字节指令(16条)条) 111、指令分类、指令分类 四、指令的分类及符号说明四、指令的分类及符号说明
2、数据传送指令数据传送指令 算数运算指令算数运算指令 逻辑运算指令逻辑运算指令 控制转移指令控制转移指令 位操作指令位操作指令121) Rn : 表示当前选中的寄存器区的表示当前选中的寄存器区的8个工作寄存器个工作寄存器(n=07)中的一个。)中的一个。2) Ri : 表示寄存器间接寻址,表示寄存器间接寻址,Ri只能是只能是R0或或R1。 3) #data : 8位立即数,实际使用时位立即数,实际使用时data应是应是 00H0FFH中的一个。中的一个。4) #data16 : 16位立即数。位立即数。2、符号的说明、符号的说明135) direct :表示表示8位内部数据存储器单位内部数据存储
3、器单 元的地址。元的地址。6) addr16 : 表示表示16位的目的地址。位的目的地址。7) addr11 : 表示表示11位的目的地址。位的目的地址。8) rel : 表示表示8位带符号地址偏移量。位带符号地址偏移量。9) DPTR :表示以:表示以DPTR为数据指针的间接为数据指针的间接寻址,用于对外部寻址,用于对外部64K RAM/ROM寻址。寻址。 1410) bit :表示内部:表示内部RAM(包括专用寄存器)中(包括专用寄存器)中 的直接寻址位。的直接寻址位。13) :为间址寄存器或基址寄存器的前:为间址寄存器或基址寄存器的前 缀。如缀。如Ri, A+PC,A+DPTR。14)
4、/ :位操作数的前缀,表示对该位操作:位操作数的前缀,表示对该位操作 数取反。如数取反。如/bit.15) $ :当前指令的地址。:当前指令的地址。返返 回回15 3.2 寻址方式寻址方式16一、寄存器寻址一、寄存器寻址17(R0)35HA结果(结果(A)=35HMOV A , R0 ; A (R0)18二、立即寻址二、立即寻址1920三、直接寻址三、直接寻址21功能:功能:MOV A,56H ;A (56H)34H片内片内RAM 34H累加器累加器A56H 图图3.1 3.1 指令传递指令传递 22(1)23注意:注意:(1)用直接寻址方式访问)用直接寻址方式访问SFR,可以用,可以用SFR
5、的的名称,也可以使用其物理地址。名称,也可以使用其物理地址。(2)累加器有)累加器有A、ACC、0E0H三种形式,分属三种形式,分属于两种不同的寻址方式,但执行效果相同。于两种不同的寻址方式,但执行效果相同。(3)注意字节地址和位地址的区别。)注意字节地址和位地址的区别。24四、寄存器间接寻址四、寄存器间接寻址25262728MOV A,R0 ;A (R0)MOV A,R0;A (R0)例如:例如:(R0)65H, (65H)26H26H片内片内RAMA 65H 图图3.23.2 R065H注意:是它区别寄存器寻址的标志。注意:是它区别寄存器寻址的标志。执行结果执行结果(A)65H,执行结果执
6、行结果(A)26H。29五、相对寻址五、相对寻址30程序存储器A图3-3 指令过程 PC 26H0000H2000H2001H 80H 26H 2028H 02H 20H A L U2002H31注意:注意:(1)在相对寻址指令的执行中,当前)在相对寻址指令的执行中,当前PC值是指值是指相对转移指令从程序存储器中取出来后的相对转移指令从程序存储器中取出来后的PC值,值,该值和地址偏移量相加便可形成目标转移地址。该值和地址偏移量相加便可形成目标转移地址。(2)在程序中,相对地址偏移量常常用符号表)在程序中,相对地址偏移量常常用符号表示,一边为程序设计提供方便。示,一边为程序设计提供方便。例如:例
7、如: SJMP ABCABC: .32六、变址寻址六、变址寻址33(1)MOVCA,APC ;PC(PC)+1 ; A(A)(PC)(2)MOVCA,ADPTR ;A(A)(DPTR) 34特点:特点:(1)指令操作码中隐含有作为基地址寄存器用)指令操作码中隐含有作为基地址寄存器用的的DPTR或或PC(预先放有操作数的基地址)。(预先放有操作数的基地址)。(2)指令操作码中隐含有作为变址寄存器用的)指令操作码中隐含有作为变址寄存器用的A(预先放有操作数的地址对基地址的偏移量(预先放有操作数的地址对基地址的偏移量-无符号数无符号数00HFFH)。)。(3)在执行变址寻址指令时,单片机先将基地)在
8、执行变址寻址指令时,单片机先将基地址和地址偏移量相加,以形成操作数的物理地址。址和地址偏移量相加,以形成操作数的物理地址。35 已知已知:片外片外ROM的的2006H单元中有一数单元中有一数34H,编写程序用变址寻址方法把这个数送入编写程序用变址寻址方法把这个数送入A中,试进中,试进行分析。行分析。 解:根据题目要求,基址可定为解:根据题目要求,基址可定为2000H,地址,地址偏移量则为偏移量则为06H,程序如下:,程序如下: MOVDPTR,2000H ;DPTR2000H MOVA,06H ;A06H MOVCA,ADPTR ;A34H36程序存储器A 图3.4 DPTR 00H0000H
9、34H 2006HA L U 20 06H37注意:注意:(1)变址寻址指令的变址寻址区是程序存储器)变址寻址指令的变址寻址区是程序存储器ROM,而不是数据存储器,而不是数据存储器RAM。(2)编制寻址指令是单字节双周期指令,)编制寻址指令是单字节双周期指令,CPU执行这条指令前应预先在执行这条指令前应预先在DPTR和和A中为该指令中为该指令的执行准备条件。的执行准备条件。38七、位寻址七、位寻址 当把八位二进制数中某一位作为操作数当把八位二进制数中某一位作为操作数看待时,这个操作数的地址就称为位地址,看待时,这个操作数的地址就称为位地址,对位地址寻址简称对位地址寻址简称位寻址位寻址。39 M
10、OV 30H,C ; 30H是位寻址位地址是位寻址位地址 MOV A , 30H ; 30H是直接寻址的字节地址是直接寻址的字节地址 MOV C , ACC.7 ;CyACC.7 由上面指令可知,位寻址的位地址与直接由上面指令可知,位寻址的位地址与直接寻址的字节地址形式完全一样,主要由寻址的字节地址形式完全一样,主要由操作码操作码来区分。来区分。40返返 回回MCS-51单片机位地址表示方法:单片机位地址表示方法:(1)直接用物理地址的位地址。)直接用物理地址的位地址。 例如:例如:MOV C, 7FH(2)采用第几字节单元第几位的表示法。)采用第几字节单元第几位的表示法。 例如:例如: MO
11、V C, 2FH.7(3)可位寻址的)可位寻址的SFR,可采用寄存器名加位数,可采用寄存器名加位数的命名法。的命名法。 例如:例如: MOV C, ACC.7(4)经伪指令定义过的字符名称。)经伪指令定义过的字符名称。413.3 MCS-51单片机指令系统单片机指令系统一、一、数据传送指令数据传送指令二、二、算数运算指令算数运算指令三、三、逻辑运算指令逻辑运算指令四、四、控制转移指令控制转移指令五、五、位操作指令位操作指令MCS-51单片机有五大类、共单片机有五大类、共111条指令。条指令。42 这类指令的源操作数和目的操作数地址都这类指令的源操作数和目的操作数地址都在单片机内部。在单片机内部
12、。 MOV dest , src一、数据传送指令一、数据传送指令1、内部数据传送指令(、内部数据传送指令(15条)条)431) 以以A为目的操作数为目的操作数442) 以以Rn为目的操作数为目的操作数453) 以直接地址为目的操作数以直接地址为目的操作数464)以寄存器间接寻址为目的操作数以寄存器间接寻址为目的操作数47 已知:已知:(R1)30H,试问执行如下指令后,试问执行如下指令后累加器累加器A、R7、30H、31H单元中内容各是什么?单元中内容各是什么? MOV A, #40H MOV R7, #50H MOV R1, #45H MOV 31H, #48H执行后,结果为执行后,结果为:
13、 (A)=40H, (R7)=50H, (30H)=45H, (31H)=48H48已知:已知:(R0)=20H、(21H)=54H、(22H)=55H、(30H)=56H,试问执行如下指令后,结果,试问执行如下指令后,结果A、40H、R2、20H、和、和P2口中的内容各是什么?口中的内容各是什么?MOV A , 21H MOV 40H ,A MOV R2 , 22H MOV R0 , 21H MOV P2, 30H结果为结果为(A)=54H,(40H)=54H ,(R2)=55H ,(20H)=54H ,P2=56H49 已知:已知:(30H)=12H、(31H)=13H、(R0)=30H、
14、(R1)=31H,试问执行以下指令,试问执行以下指令后后A、30H、31H和和32H各是什么?各是什么? MOV A , R0 MOV R1,A MOV R0, #34H MOV 32H , R1执行后,执行后,(A)=12H ,(30H)=34H ,(31H)=12H ,(32H)=12H50图图 3.5 内部指令描述内部指令描述Direct直接寻址直接寻址Ri间址间址 Rn寄存器寄存器data立即数立即数累加器累加器A51注意:注意:(1)每条指令的格式和功能均由制造商提供,用)每条指令的格式和功能均由制造商提供,用户不能自行定义。户不能自行定义。 例如:例如:MOV Rn, Rn, MO
15、V Rn, Ri MOV Ri, Ri, MOV Ri, Rn 均为非法指令。均为非法指令。(2)以累加器)以累加器A为目的操作数的指令会影响为目的操作数的指令会影响PSW中的奇偶标志位,其余指令对标志位无影响。中的奇偶标志位,其余指令对标志位无影响。(3)学会估计指令字节数。)学会估计指令字节数。(4)学会给程序添加注释。)学会给程序添加注释。52MOVDPTR,data16 ;DPTRdata16 1) 十六位数据传送指令十六位数据传送指令2、外部数据传送指令(、外部数据传送指令(7条)条)53MOVCA,ADPTR;A(A)(DPTR)MOVCA,APC ;PC(PC)+1, ; A(A
16、)(PC)2)外部外部ROM的字节数指令的字节数指令 54例例3.5 已知片外已知片外ROM2008H单元中有一个数为单元中有一个数为34H,试用以上二条指令各写一个程序,把数送到片内试用以上二条指令各写一个程序,把数送到片内RAM7FH单元中。单元中。解:解:采用采用DPTR作为基址寄存器作为基址寄存器ORG 0000H LJMP STARTORG 0100HSTART:CLR A ;清空清空A MOV DPTR ,#2008H ;表起始值表起始值MOVC A,A+DPTR ;把把A与与DPTR相加,相加, ;结果结果(A)34HMOV 7FH,A ;结果结果(7FH)=34HSJMP $
17、;停止停止55采用采用PC作为基址寄存器作为基址寄存器 ORG 0000H LJMP MAIN ORG 2000HMAIN:MOV A,05H ;偏移量为偏移量为05H,因为该指令占因为该指令占 ;二个字节数二个字节数 MOVC A,A+PC ;首先将首先将(PC)1,则则(PC)2003, ;然后加然后加05H,则,则PC指向指向2008单元单元 MOV 7FH ,A ;结果(结果(7FH)34H SJMP $ ;停止停止563) 外部外部RAM的字节传送指令的字节传送指令MOVX A ,Ri ;A(Ri)MOVX Ri ,A ;A (Ri)MOVX A ,DPTR ;A ( DPTR )M
18、OVX DPTR ,A ;A ( DPTR )注意:注意:外部外部RAM只能与累加器只能与累加器A交换数据交换数据57 ORG 1000HMOV R1, #60H ;(R1)=60H MOVX A, R1 ;(A)=30HMOV DPTR , #2000H ;(DPTR)=2000HMOVX DPTR,A ;2000H30HSJMP $ ;停止停止583、数据交换指令(、数据交换指令(5条)条)A)7RndirectRi59 已知已知(R0)=20H,(,(20H)=75H,(A)=3FH (1) XCH A,R0 (2)XCHD A, R0 (3)SWAP A 例例3.7 结果:结果:( A
19、)=75H, (20H)=3FH,(R0)=20H结果结果(A)=35H,(,(20H)=7FH, (R0)=20H结果:结果: (A)=0F3H60 已知已知:片内片内RAM20H单元有一个数为单元有一个数为30H,片外,片外RAM20H单元有一个数为单元有一个数为03H,编程把二个数相互,编程把二个数相互交换。交换。解:解:ORG 0100HMOV R0 , #20H ; R020HMOVX A ,R0 ; A03HXCH A , R0 ; A30H ,(20H)03HMOVX R0 ,A ;30H(20H)(外部(外部RAM)SJMP $ ; 停止停止614、堆栈操作指令(、堆栈操作指令
20、(2条)条)PUSHdirect ;SP (SP)+1,(SP) (direct)POP direct ;(SP) direct, SP (SP)-162MOV SP ,#70H;栈底首地址为栈底首地址为70HPUSH30H;SP(SP)1,71HXPUSH40H;SP(SP)1,72HYPOP 30H ;30HY,SP(SP)-1=71HPOP40H ;40HX,SP(SP)-1=70H 已知已知:(30H)=X,(40H)=Y,编程用堆栈指令,编程用堆栈指令把把30H和和40H单元中内容相交换。单元中内容相交换。631、加法指令(、加法指令(13条)条)ADD A, Rn ADD A, d
21、irectADD A, RiADD A, #data二、算术运算指令(二、算术运算指令(24条)条)1) 不带进位位不带进位位(Cy)加法指令加法指令 (4条条)64 例例 3.1065A= 0 1 0 1 1 0 1 0 Bdata= 0 1 1 0 1 0 1 1 B 90107+ ) 1 1 0 0 0 1 0 1 B 1CS1970CP 1AC66ADDC A , RnADDC A , #dataADDC A , directADDC A , Ri2)带进位位)带进位位(Cy)加法指令加法指令(4条条)67 已知已知(A)8FH、(R1)20H、(、(20H)12H、(21H)0FEH
22、和和Cy1,试问,试问CPU依次执行以下依次执行以下指令后累加器指令后累加器A和和Cy中的值是多少。中的值是多少。a.ADDC A ,R1 b.ADDC A ,21Hc.ADDC A,R1 d.ADDC A ,#7FH 68INCA;A(A)1INCRn;Rn(Rn)1INCdirect;direct(direct)1INCRi;(Ri)(Ri)1INCDPTR;DPTR(DPTR)13)加)加1指令(指令(5条)条)69解:由加解:由加1指令的规则,上述指令执行后的的操作结果为:指令的规则,上述指令执行后的的操作结果为:(A)35H、(R0)43H、(、(43H)25H、DPTR3021H。
23、702、减法指令、减法指令 ( 8条条)SUBB A, Rn; A (A)-(Rn)-CySUBB A, Ri; A(A)-(Ri)-CySUBB A, direct ; A(A)-(direct)-CySUBB A, #data; A (A)-data-Cy1)带进位位)带进位位(Cy)减法指令减法指令(4条条)71000 0011CyACF0Rs1Rs0OV1P72DEC A ;A(A)-1DEC Rn ;Rn(Rn)-1 ;direct(direct)-1DEC Ri ;(Ri)(Ri)-12)减)减1指令(指令(4条)条)73 已知已知(A)10H、(R1)3BH、(R7)34H、(、
24、(60H)00H、(、(3BH)0FFH,试分析,执行如下程序后,试分析,执行如下程序后累加器累加器A和和PSW中各标志位状态?中各标志位状态? DEC A DEC R1 DEC 60H DEC R7 解:根据减解:根据减1指令功能,结果为:指令功能,结果为:(A)0FH, P=0 (3BH)0FEH,PSW不变不变(60H)0FFH,PSW不变不变 (R7)=33H,PSW不变不变743、十进制调整指令(、十进制调整指令(1条)条)对对A中两个压缩中两个压缩BCD数相加之和调整为数相加之和调整为2位位BCD码数。码数。1)只能用在对)只能用在对BCD码数进行码数进行ADD或或ADDC操操 作
25、后使用。作后使用。2)影响标志位:有进位时)影响标志位:有进位时 C1。1) BCD加法加法v特点特点:75 试编程实现试编程实现44H86H的的BCD加法程序,并对加法程序,并对其工作原理分析。其工作原理分析。 解:相应解:相应BCD加法程序为:加法程序为:MOV A ,44H ;A44HADD A ,86H ;A44860CAHDA A ;A30H,Cy1,AC1SJMP $ 76A= 0 1 0 0 0 1 0 0 Bdata=1 0 0 0 0 1 1 0 B 4486+ )0 1 1 0 1 0 0 0 0 B 1 1 0 1 0 0 1 1 0 0 0 0 B 0 1 1 0 0
26、1 0 1 0 B 130 1 1 0 B 低低4位位9, 加加6调整调整高高4位位9,加加6调整调整77注意:对于注意:对于BCD减法减法 MCS-51单片机中单片机中没有十进制减法调整指令没有十进制减法调整指令,因此,因此,BCD减法运算必须采用减法运算必须采用BCD补码运算法则。补码运算法则。 784、乘法和除法指令、乘法和除法指令MULAB ;BA (A)(B) C0积积255 OV1DIVAB ;AB (A)(B) C=0除数除数0 OV1除数除数0 OV01)乘法指令)乘法指令2)除法指令)除法指令791、与指令、与指令ANL A , RnANL A , RiANL A , dir
27、ectANL A , #dataANL direct , AANL direct , #data; A (A)( Rn); A (A)( (Ri); A (A) (direct); A (A) #data; direct (direct) (A); direct ( direct ) #data三、逻辑运算指令(三、逻辑运算指令(20条)条)80 结果:将结果:将P1口锁存器的口锁存器的0、3、4、7位内容屏蔽,而其余位保持原值不位内容屏蔽,而其余位保持原值不变。变。例如例如常用常用ANL指令指令屏蔽屏蔽某些不用位或保留某些位某些不用位或保留某些位812、或指令、或指令ORL A , Rn;A
28、(A)(Rn)ORL A , direct;A(A)(direct)ORL A , Ri;A(A)(Ri)ORL A , #data;A(A)dataORL direct , A;direct(direct)(A)ORL direct , #data ;direct(direct)data82 结果:将结果:将P1口锁存器的口锁存器的1、4、5位进位进行置位,而其余位保持原值不变。行置位,而其余位保持原值不变。常用常用ORL指令对某些位指令对某些位置位置位或保留某些位或保留某些位例如例如ORL P1,#00110010B8384XRL A ,Rn ;A(A) (Rn)XRL A ,direct
29、;A(A) (direct)XRL A ,Ri ;A(A) (Ri)XRL A ,#data ;AA dataXRL direct ,A;direct(direct) (A)XRL direct ,#data ;direct(direct) data3、异或指令、异或指令85 结果:结果: 将将P1口锁存器的口锁存器的0、4、5位内容位内容取反,而其余位保持原值不变。取反,而其余位保持原值不变。常用常用XRL指令对某些位指令对某些位取反取反或保留某些位或保留某些位例如例如86CPL ACLR A; A (A); A 04、累加器清零和取反指令、累加器清零和取反指令87RL A ;RR A ;A
30、RLC A ;RRC A ;5、移位指令(、移位指令(4条)条)Acc.7Acc.0CyAcc.7Acc.0CyAcc.7Acc.0Acc.7Acc.0AAA88 解:一个解:一个16位二进制数扩大到二倍就等于位二进制数扩大到二倍就等于是把它进行一次算术左移。由于是把它进行一次算术左移。由于MCS51单元单元片机的移位指令都是二进制片机的移位指令都是二进制8位的移位指令,因位的移位指令,因此此16位数的移位指令必须用程序来实现。位数的移位指令必须用程序来实现。 算法为:算法为: M M+1 089ORG0030HCLRC;清进位标志位清进位标志位MOVR0,M;操作数低操作数低8位地址送位地址
31、送R0MOVA,R0;A操作数低操作数低8位位RLC A;低低8位操作数左移低位补位操作数左移低位补0MOVR0,A;结果送回结果送回M单元,单元,Cy中为最高位中为最高位INCR0;R0指向指向M1单元单元MOVA,R0;A操作数高操作数高8位位RLC A ;高高8位操作数左移并加上低位位操作数左移并加上低位CyMOV R0,A;结果送回结果送回M1单元单元SJMP $;停止停止90LJMPaddr16 ;PCaddr16AJMP addr11 ;PC(PC)+2,PC100addr11SJMP rel ;PC(PC)+2,PC(PC)+relJMP A+DPTR ;PC(A)+(DPTR)
32、四、控制转移指令四、控制转移指令1、无条件转移指令无条件转移指令 (4条条)91MCS-51系列单片机可以在系列单片机可以在64KB地地址范围内寻址,绝对转移指令的转址范围内寻址,绝对转移指令的转移范围只在移范围只在PC当前值所指的当前值所指的2KB地址范围内。地址范围内。92(1) 长转移指令长转移指令LJMP addr16 ; PC addr16 三字节指令,不影响标志位,可三字节指令,不影响标志位,可在在64KB地址范围内无条件转移。地址范围内无条件转移。93(2)绝对转移指令)绝对转移指令二字节指令,可在二字节指令,可在2KB地址范围内转移。地址范围内转移。AJMP addr11 ;
33、PC (PC)+2, PC100 addr1194(3)相对转移指令)相对转移指令机器码:机器码: 80H rel SJMP rel ; PC (PC)+2+rel95 ORG1000H1000H 7401H START: MOV A , #01H ;字位码初值送字位码初值送A1002H F8H MOV R0,A ;暂存于暂存于R01003H 90CF01H LOOP: MOV DPTR , #0CF01H 1017H 80rel SJMPSTART ;转入转入START SJMP$例例3.18 下列程序中,请计算下列程序中,请计算SJMP START指令码中的指令码中的rel,并分析目标地址
34、的转移,并分析目标地址的转移范围。范围。96a) 地址偏移量地址偏移量rel的计算:的计算: 目标转移地址源地址目标转移地址源地址2rel rel=目标转移地址源地址目标转移地址源地址2 1000H1017H225 rel应采用补码表示,为此应采用补码表示,为此rel=-25补补E7H97b) 转移地址范围的确定:转移地址通常转移地址范围的确定:转移地址通常以以SJMP指令始址为参照点,但实际的指令始址为参照点,但实际的参照点是对参照点是对PC2,因,因rel的取值范围是的取值范围是128127, 故可得到转移地址的故可得到转移地址的实际转移范围为实际转移范围为126129。 98(4) 变址
35、寻址转移指令变址寻址转移指令机器码:机器码: 73H在在64KB地址范围内无条件转移。地址范围内无条件转移。99JZ rel ; (A)=0 PC (PC)+2+rel (A) 0 PC (PC)+2JNZ rel ; (A)0 PC (PC)+2+rel (A)=0 PC (PC)+2(1)累加器)累加器A判零转移判零转移(2条条)2、条件转移指令条件转移指令100CJNE A, #data, rel ;不相等转移不相等转移;(A)=data, PC (PC)+3, C 0 ;(A)data, PC (PC)+3+rel, C 0 ;(A)(direct),则则PC(PC)+3+rel, C
36、0 ;若若(A)data ,则则PC(PC)+3+rel, C0 ;若若(Rn)data ,则则PC(PC)+3+rel, C0 ;若若(Ri)data ,则则PC(PC)+3+rel, C1102 ORG 2000H CLR A MOV R0, #30HLOOP0:CJNE R0, #64H, LOOP1 INC ALOOP1: INC R0 CJNE R0, #3FH, LOOP0 SJMP $例例3.19在内部在内部RAM 30H3EH中找出值为中找出值为100(64H)的单元有多少个的单元有多少个?MOV R1, #0FHDJNZ R1, LOOP0103DJNZ direct, re
37、l ;(direct) (direct)-1 ;若若(direct)0,则则PC(PC)+3+rel ;若若(direct)=0,则,则PC(PC)+3DJNZ Rn, rel ;Rn (Rn)1 ;若若(Rn)=0 则则 PC (PC)+2 ;若若(Rn)0 则则PC (PC)+2+rel(3)减一不为零转移)减一不为零转移104 ORG 1000H MOV R0, #9 CLR A LOOP: ADD A, R0 DJNZ R0, LOOP SJMP $91nn例例3.20编程计算的编程计算的值值105(1 1)调用指令)调用指令(2(2条条) )ACALL addr11 ; PC (PC
38、)+2 ; SP (SP)+1 ; (SP) (PC)70 ; SP (SP)+1 ; (SP) (PC)158 ; PC100 addr11 a) 短调用指令短调用指令3、子程序调用和返回指令、子程序调用和返回指令106机器码:机器码: a10 a9 a8 1 0 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0 双字节指令,不影响标志位,在双字节指令,不影响标志位,在2KB地址范围内寻址,以调用子程序。地址范围内寻址,以调用子程序。107b) b) 长调用指令长调用指令LCALL addr16;PC (PC)+3;SP (SP)+1 , (SP) PC70;SP (SP)1,(S
39、P) PC158;PC addr16三字节指令,在三字节指令,在64KB64KB地址范围内调用子程序。地址范围内调用子程序。108(2)返回指令)返回指令(2条条)PC158 (SP) ,SP ( SP)-1PC70 (SP), SP (SP)-1a)子程序返回指令子程序返回指令 RET109调用子程序后必须返回主程序,因此,调用子程序后必须返回主程序,因此,每种子程序的最后一条指令必须是返回每种子程序的最后一条指令必须是返回指令指令RET。返回时完成将调子时压入堆。返回时完成将调子时压入堆栈的断点地址送回栈的断点地址送回PC以恢复断点功能。以恢复断点功能。堆栈遵循堆栈遵循“后进先出后进先出”原则。原则。110b)中断返回指令中断返回指令RETI 中断服务程序的最后一条指令后是中断返中断服务程序的最后一条指令后是中断返回指令回指令RETI。其恢复断点的操作与返回指令。其恢复断点的操作与返回指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿童教育家庭奖惩制度
- 双重体系建设奖惩制度
- 公安机关联合奖惩制度
- 机关卫生评比与奖惩制度
- 超市员工服务奖惩制度
- 报建时间节点奖惩制度
- 团队小游戏及奖惩制度
- 物业安保员工奖惩制度
- 白酒灌装车间奖惩制度
- 师德师风管理及奖惩制度
- 麻精药品信息化管理系统需求说明
- 全过程工程咨询实施投标方案
- 镇墩稳定计算
- parp抑制剂研究进展 课件
- 《水工钢结构》试题及答案1783
- 实习协议书电子电子版(2篇)
- 三级医院评审标准(2023年版)实施细则
- 江苏专转本计算机资料汇编
- GA/T 2002-2022多道心理测试通用技术规程
- 片区更新改造总体规划项目建议书
- GB/T 24474.1-2020乘运质量测量第1部分:电梯
评论
0/150
提交评论