
课后习题34PPT课件.ppt
27页3-1、、MCS-51指令系统主要有哪几种指令系统主要有哪几种寻址方式?试举例说明寻址方式?试举例说明n n直接寻址MOV R0,20Hn n寄存器寻址MOV A,R0n n寄存器间接寻址MOV A,@R0n n位寻址MOV C,20Hn n相对寻址DJNZ R0,L00n n立即数寻址MOV R0,#00Hn n变址寻址MOVC A,@A+DPTR1 13-23-2、设、设、设、设A=0FH,R0=30H,A=0FH,R0=30H,内部内部内部内部RAMRAM的(的(的(的(30H30H))))====0AH,(31H)=0BH,(32H)=0CH,0AH,(31H)=0BH,(32H)=0CH,请指出执行下请指出执行下请指出执行下请指出执行下列程序段之后上述各单元内容的变化列程序段之后上述各单元内容的变化列程序段之后上述各单元内容的变化列程序段之后上述各单元内容的变化n nMOV A,@R0 ;(A)=0AHn nMOV @R0,32H ;(30H)=0CHn nMOV 32H,A ;(32H)=0AHn nMOV R0,#31H ;R0=31Hn nMOV A,@R0 ;(A)=0BH2 23-3请用数据传送指令来实现下列要求的数据传请用数据传送指令来实现下列要求的数据传送送n nR0R0的内容传送到的内容传送到R1R1– –MOV A,R0MOV A,R0– –MOV R1,AMOV R1,An n内部内部RAM20HRAM20H单元内容传送到单元内容传送到A A– –MOV A,20HMOV A,20Hn n外部外部RAM30HRAM30H单元内容送单元内容送R0R0– –MOV R0, #30HMOV R0, #30H– –MOVX A, @R0MOVX A, @R0– –MOV R0 , AMOV R0 , An n外部外部RAM30HRAM30H单元内容送内部单元内容送内部RAM20HRAM20H单元单元– –MOV R0,#30HMOV R0,#30H– –MOVX A,@R0MOVX A,@R0– –MOV 20H,AMOV 20H,A3 3n n外部外部RAM1000HRAM1000H单元内容送内部单元内容送内部RAM20HRAM20H单元单元– MOV DPTR,#1000H MOV DPTR,#1000H– MOVX A,@DPTR MOVX A,@DPTR– MOV 20H,A MOV 20H,A–或:或:MOV P2,#10HMOV P2,#10H– MOV R0,#00H MOV R0,#00H– MOVX A,@R0 MOVX A,@R0– MOV 20H,A MOV 20H,An n程序存储器程序存储器ROM2000HROM2000H单元内容送单元内容送R1R1–MOV DPTR,#2000HMOV DPTR,#2000H–MOV A ,#0HMOV A ,#0H–MOVC A,@A+DPTRMOVC A,@A+DPTR–MOV R1,AMOV R1,A4 4n nRAM2000HRAM2000H单元内容送内部单元内容送内部RAM20HRAM20H单元单元– –MOV DPTR,#2000HMOV DPTR,#2000H– –MOVX A,@DPTRMOVX A,@DPTR– –MOV 20H,AMOV 20H,An nRAM2000HRAM2000H单元内容送外部单元内容送外部RAM30HRAM30H单元单元– –MOV P2,#20HMOV P2,#20H– –MOV R0,#00HMOV R0,#00H– –MOVX A,@R0MOVX A,@R0– –MOV P2,#00HMOV P2,#00H– –MOV R0,#30HMOV R0,#30H– –MOVX @R0,AMOVX @R0,An nRAM2000HRAM2000H单元内容送外部单元内容送外部RAM1000HRAM1000H单元单元– –MOV DPTR,#2000HMOV DPTR,#2000H– –MOVX A,@DPTRMOVX A,@DPTR– –MOV DPTR,#1000HMOV DPTR,#1000H– –MOVX @DPTR,AMOVX @DPTR,A5 53-43-4、设内部、设内部、设内部、设内部RAMRAM((((30H30H))))=5AH=5AH,(,(,(,(5AH5AH))))=40H=40H,,,,((((40H40H))))=00H=00H,端口,端口,端口,端口P1=7FHP1=7FH,问执行一下指令后,,问执行一下指令后,,问执行一下指令后,,问执行一下指令后,各有关存储单元(即各有关存储单元(即各有关存储单元(即各有关存储单元(即R0R0,,,,R1R1,,,,A A,,,,B B,,,,P1 P1 ,,,,40H40H,,,,30H30H,及,及,及,及5AH5AH单元)的内容如何。
单元)的内容如何单元)的内容如何单元)的内容如何n nMOV R0,#30H ;(R0)=30Hn nMOV A,@R0 ;(A)=5Ahn nMOV R1,A ;(R1)=5AHn nMOV @R1,P1 ;(5AH)=7FH n nMOV A,P1 ;(A)=7FH n nMOV 40H,#20H ;(40H)=20Hn nMOV 30H,40H ;(30H)=20H6 63-5、试编写程序将内部、试编写程序将内部RAM的的20H-2FH共共16个连续单元清零个连续单元清零n n ORG 0000Hn n MOV R0,#20H;数据单元首地址n n MOV R2,#10H;循环16次n n L00:MOV @R0,#00Hn n INC R0n n DJNZ R2,L00n n SJMP $n n END7 73-6、试编写程序求出内部、试编写程序求出内部RAM20H单元中单元中的数据含的数据含“1”的个数,并将结果存入的个数,并将结果存入21H单元n n ORG 0000H ORG 0000Hn n MOV 21H,#00H MOV 21H,#00Hn n MOV A,20H MOV A,20Hn n MOV R0,#08H; MOV R0,#08H;循环次数循环次数n n L00:CLR C L00:CLR Cn n RLC A; RLC A;带进位左环移带进位左环移n n JC L01; JC L01;有溢出则跳转有溢出则跳转n n AJMP L02 AJMP L02n n L01:INC 21H L01:INC 21Hn n L02:DJNZ R0,L00 L02:DJNZ R0,L00n n SJMP $ SJMP $n n END END8 83-7.3-7.试编写程序,查找在内部试编写程序,查找在内部试编写程序,查找在内部试编写程序,查找在内部RAMRAM得得得得3030----50H50H单元中出现单元中出现单元中出现单元中出现FFHFFH的次数,将的次数,将的次数,将的次数,将查找得结果存入查找得结果存入查找得结果存入查找得结果存入51H51H单元。
单元 ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN MAIN: MOV R0, #30H MAIN: MOV R0, #30H; ;记录记录记录记录30H30H单元内容单元内容单元内容单元内容 MOV R1, #21H MOV R1, #21H; ;循环次数循环次数循环次数循环次数 MOV 51H, #00H MOV 51H, #00H ; ;给给给给51H51H单元赋初始值单元赋初始值单元赋初始值单元赋初始值 CLR C CLR C; ;标志位清零标志位清零标志位清零标志位清零 L00: MOV A, #01H L00: MOV A, #01H ADD A, @R0 ADD A, @R0;R0;R0的内容加的内容加的内容加的内容加1 1 JC L01 JC L01 ;Cy;Cy为为为为1 1,则跳转计数,则跳转计数,则跳转计数,则跳转计数 AJMP L02 AJMP L02 L01: INC 51H L01: INC 51H L02: INC R0 L02: INC R0 DJNZ R1, L00 DJNZ R1, L00 SJMP $ SJMP $ END END9 93-8、题目:试编写程序,计算∑2i (i=0…10),并将结果存放在内部RAM的30H单元。
n n (方法一)(方法一)n n ORG 0000H ORG 0000Hn nMOV R0,#01HMOV R0,#01Hn nMOV R1,#0AH;MOV R1,#0AH;循环次数循环次数n nMOV B,#02HMOV B,#02Hn nL00:L00:MOV A,R0MOV A,R0n nMUL ABMUL ABn nMOV B,#02HMOV B,#02Hn nADD A,30HADD A,30Hn n MOV 30H,A MOV 30H,An nINC R0INC R0n nDJNZ R1,L00DJNZ R1,L00n nSJMP $SJMP $n nENDEND10103-8、题目:试编写程序,计算∑2i (i=0…10),并将结果存放在内部RAM的30H单元n n (方法二)(方法二) n n ORG 0000HORG 0000Hn n MOV R0,#00H MOV R0,#00Hn n MOV R1,#0BH MOV R1,#0BHn nL00:MOV A,R0L00:MOV A,R0n n RL A ; RL A ;左移即乘二左移即乘二n n ADD A,30H ADD A,30Hn n MOV 30H,A MOV 30H,An n INC R0 INC R0n n DJNZ R1,L00 DJNZ R1,L00n n SJMP $ SJMP $n n END ENDn n运行结果:(运行结果:(30H30H))=6EH=6EH11113-9:3-9:已知已知已知已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90HHn nMOV A,40H ; A←(40H)MOV A,40H ; A←(40H)即即(A)=48H(A)=48Hn nMOV R0,A ; R0←(A)MOV R0,A ; R0←(A)即即(R0)=48H(R0)=48Hn nMOV P1,#0F0H ;P1←0F0HMOV P1,#0F0H ;P1←0F0H即即(P1)=0F0H(P1)=0F0Hn nMOV @R0,30H ;(R0)←(30H)MOV @R0,30H ;(R0)←(30H)即即(48H)=38H(48H)=38Hn nMOV DPTR,#3848H ;DPTR=3848HMOV DPTR,#3848H ;DPTR=3848Hn nMOV 40H,38H ;40H←(38H)MOV 40H,38H ;40H←(38H)即即(40H)=40H(40H)=40Hn nMOV R0,30H ;R0←(30H)MOV R0,30H ;R0←(30H)即即(R0)=38H(R0)=38Hn nMOV P0,R0 ;P0←(R0)MOV P0,R0 ;P0←(R0)即即(P0)=38H(P0)=38Hn nMOV 18H,#30H ;18H←30HMOV 18H,#30H ;18H←30H即即(18H)=30H(18H)=30Hn nMOV A,@R0 ;A←((RO))MOV A,@R0 ;A←((RO))即即(A)=40H(A)=40Hn nMOV P2,P1 ;P2←(P1)MOV P2,P1 ;P2←(P1)即即(P2)=0F0H(P2)=0F0H12123-103-10、设、设、设、设R0R0内容为内容为内容为内容为32H32H,,,,A A的内容为的内容为的内容为的内容为48H48H,片内,片内,片内,片内RAMRAM的的的的32H32H单元内容为单元内容为单元内容为单元内容为80H80H,,,,40H40H单元内容为单元内容为单元内容为单元内容为08H08H。
请指出在执行下列程序段后上述各单元内容请指出在执行下列程序段后上述各单元内容请指出在执行下列程序段后上述各单元内容请指出在执行下列程序段后上述各单元内容的变化MOV A,@R0MOV A,@R0MOV @R0,40HMOV @R0,40HMOV 40H,AMOV 40H,AMOV R0,#35HMOV R0,#35Hn n初始:(初始:(R0R0))=32H=32H,(,(A A))=48H=48H,(,(32H32H))=80H=80H,(,(40H40H))=08H=08Hn n执行执行 MOV A,@R0 MOV A,@R0,即将,即将32H32H单元单元内容送入内容送入A A,(,(A A))=80H=80Hn n执行执行 MOV @R0,40H MOV @R0,40H,即将,即将40H40H单单元内容送入元内容送入32H32H,(,(32H32H))=08H=08Hn n执行执行 MOV 40H,A MOV 40H,A,即将,即将A A中内容中内容送入送入40H40H单元,(单元,(40H40H))=80H=80Hn n执行执行MOV R0,#35HMOV R0,#35H,即将立即数,即将立即数35H35H送入送入R0R0,(,(R0R0))=35H=35H13133-113-11,已知,已知(A)=83H,(R0)=17H,(17H)=34H.(A)=83H,(R0)=17H,(17H)=34H.请写出执行请写出执行完下列程序后完下列程序后A A的内容。
的内容 ANL A,#17H ANL A,#17H ORL 17H,A ORL 17H,A XRL A,@R0 XRL A,@R0 CPL A CPL An n(A)=10000011,17H=00010111Bn n执行ANL A,#17H后,(A)=00000011Bn n执行ORL 17H,A 后,(17H)=00110111Bn n执行XRL A,@R0后,(A)=00110100Bn n执行CPL A 后,(A)=11001011B=0CBH14143-123-12,编程将内部,编程将内部RAM 20H-2FHRAM 20H-2FH中的数据和中的数据和RAM30H-RAM30H-3FH3FH中的数据对换中的数据对换 ORG 0000HORG 0000Hn n MOV R0,#20H ; MOV R0,#20H ;数据首地址数据首地址n n MOV R1,#30H ; MOV R1,#30H ;数据首地址数据首地址n n MOV R2,#10H ; MOV R2,#10H ;循环次数循环次数n nL01:MOV A,@R0L01:MOV A,@R0n n MOV B,@R1 MOV B,@R1n n MOV @R0,B MOV @R0,Bn n MOV @R1,A MOV @R1,An n INC R0 INC R0n n INC R1 INC R1n n DJNZ R2,L01 DJNZ R2,L01 n n SJMP $ SJMP $n n END END15153-133-13、已知(、已知(、已知(、已知(A A))))=34H=34H,(,(,(,(30H30H))))=4FH=4FH,,,,求执行求执行求执行求执行ADD A 30HADD A 30H后,后,后,后,A=A=?指出?指出?指出?指出PSWPSW中相应中相应中相应中相应标志位的情况。
标志位的情况标志位的情况标志位的情况n n执行执行ADD A 30HADD A 30H后,(后,(A A))=83H=83H;;n n此过程有半进位,故此过程有半进位,故PSW.6PSW.6((ACAC)位为)位为1 1;;n n83H=10000011B83H=10000011B,奇数个,奇数个1 1,因此奇偶校验位,因此奇偶校验位P P置置1 1;;n nD6D6⊕⊕D7=0D7=0⊕⊕1=1,1=1,溢出标志为溢出标志为OVOV置置1 1 ;;n n其余各位保持初始值其余各位保持初始值0 0n n所以所以PSWPSW各位状态如下:(各位状态如下:(PSWPSW))=45H=45HC CY YA AC CF F0 0R RS S1 1R RS S0 0O OV V-- -- P P0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 116163-143-14、已知、已知、已知、已知SP=25HSP=25H,PC=2345H,(24H),PC=2345H,(24H),PC=2345H,(24H),PC=2345H,(24H)=12H,(25H)=56H,问此执行RET指令后,=12H,(25H)=56H,问此执行RET指令后,=12H,(25H)=56H,问此执行RET指令后,=12H,(25H)=56H,问此执行RET指令后,SP=?PC=?SP=?PC=?SP=?PC=?SP=?PC=?n n(SP)=25H,(25H)→PC(高),PC(高)=56H,SP-1→SPn n(SP)=24H,(24H)→PC(低),PC(低)=12H,SP-1→SPn n(SP)=23H,PC=5612H17173-153-15、若、若、若、若SP=25H,PC=2345H,SP=25H,PC=2345H,标号标号标号标号LABELLABEL所在得所在得所在得所在得地址为地址为地址为地址为3456H3456H。
问执行长调用指令问执行长调用指令问执行长调用指令问执行长调用指令”LCALL LABEL””LCALL LABEL”后,堆栈指针和堆栈内容发生什么变化?后,堆栈指针和堆栈内容发生什么变化?后,堆栈指针和堆栈内容发生什么变化?后,堆栈指针和堆栈内容发生什么变化?PCPC的值等的值等的值等的值等于什么?于什么?于什么?于什么?n n初始状态 PC=2345H n n执行LACALL后 PC+3→PC=2348H n n初始SP=25H n nSP+1→SP=26H,26H中压入PC(L),得(26H)=48Hn nSP+1→SP=27H,27H中压入PC(H),得(27H)=23Hn nLABEL=3456H,PC=3456H18184-14-1、从内部、从内部RAMRAM的的30H30H单元开始存放一组用补码表示的带符号数,其树目已存放在单元开始存放一组用补码表示的带符号数,其树目已存放在20H20H单元编写程序,统计出其中正数、单元编写程序,统计出其中正数、0 0和负数的数目,将结果分别存入和负数的数目,将结果分别存入21H21H、、22H22H、、23H23H单元n n ORG 0000H ORG 0000Hn n MOV 21H,00H ; MOV 21H,00H ;存放正数个数存放正数个数 n n MOV 22H,#00H ; MOV 22H,#00H ;存放存放0 0的个数的个数n n MOV 23H,#00H ; MOV 23H,#00H ;存放负数个数存放负数个数n n MOV R0,20H ;20H MOV R0,20H ;20H单元中存放的数目放在单元中存放的数目放在R0R0n n MOV R1,#30H MOV R1,#30Hn nL01: MOV A,@R1 L01: MOV A,@R1 n n JB ACC.7,NEG ; JB ACC.7,NEG ;为负数跳转为负数跳转n n CJNE A,#00,POS ; CJNE A,#00,POS ;为正数跳转为正数跳转n n INC 22H ; INC 22H ;为为0 0,,22H22H单元自加单元自加1 1n n AJMP Lp AJMP Lpn nNEG: INC 23HNEG: INC 23Hn n AJMP Lp AJMP Lpn nPOS: INC 21HPOS: INC 21Hn n Lp: INC R1 Lp: INC R1n n DJNZ R0,L01 DJNZ R0,L01n n SJMP $ SJMP $n n END END19194-24-2、内部、内部RAMRAM中有一数据块,存放在中有一数据块,存放在20H-2FH20H-2FH单元中。
要求对这些单元中要求对这些数据进行奇偶校验,凡是满足奇偶校验的数据(一的个数为偶数)数据进行奇偶校验,凡是满足奇偶校验的数据(一的个数为偶数)都要存放到外部都要存放到外部RAMRAM的的8000H8000H开始的数据区中试编写相关程序开始的数据区中试编写相关程序n n ORG 0000H ORG 0000Hn n MOV R0,#20H ; MOV R0,#20H ;内部内部RAMRAM首地址首地址n n MOV DPTR,#8000H MOV DPTR,#8000H ; ;外部外部RAMRAM首地址首地址n n MOV R2,#10H ; MOV R2,#10H ;循环次数循环次数n nL01: MOV A,@R0L01: MOV A,@R0n n JNB P, Lp1 ; PSW JNB P, Lp1 ; PSW中中P P位为位为0 0则跳转则跳转n n AJMP Lp2 AJMP Lp2 n n Lp1:MOVX @DPTR,A Lp1:MOVX @DPTR,A n n INC DPTR INC DPTRn n Lp2:INC R0 Lp2:INC R0n n DJNZ R2,L01 DJNZ R2,L01n n SJMP $ SJMP $n n END END 20204-34-3、编写程序,把外部、编写程序,把外部、编写程序,把外部、编写程序,把外部RAMRAM的的的的1000H~10FFH1000H~10FFH区域区域区域区域内的数据逐个搬到从内的数据逐个搬到从内的数据逐个搬到从内的数据逐个搬到从2000H2000H单元开始的区域。
单元开始的区域单元开始的区域单元开始的区域n n ORG 0000H ORG 0000Hn n MOV R0,#00H MOV R0,#00Hn n MOV R3,#00H; MOV R3,#00H;循环次数循环次数n n L01: MOV P2,#10H L01: MOV P2,#10Hn n MOVX A,@R0 MOVX A,@R0n n MOV P2,#20H MOV P2,#20Hn n MOVX @R0,A MOVX @R0,An n INC R0 INC R0n n DJNZ R3,L01 DJNZ R3,L01n n SJMP $ SJMP $n n END END21214-44-4、从内部、从内部、从内部、从内部RAM30HRAM30H单元开始存放着一组无符号单元开始存放着一组无符号单元开始存放着一组无符号单元开始存放着一组无符号数,其树目已存放在数,其树目已存放在数,其树目已存放在数,其树目已存放在21H21H单元中。
试编写程序,求单元中试编写程序,求单元中试编写程序,求单元中试编写程序,求出这组无符号数中的最小的数,并将其存入出这组无符号数中的最小的数,并将其存入出这组无符号数中的最小的数,并将其存入出这组无符号数中的最小的数,并将其存入20H20H n nORG 0000HORG 0000Hn nMOV R0,#30HMOV R0,#30H;首地址;首地址n nMOV R2,21H;MOV R2,21H;数目数目n nMOV 20H,#0FFH MOV 20H,#0FFH n n L03:MOV A,@R0 L03:MOV A,@R0 n n CJNE A,20H,LP CJNE A,20H,LPn n LP:JC L00 ;Cy=1,A LP:JC L00 ;Cy=1,A中值小中值小, ,跳转更新跳转更新20H20H中的数中的数n n AJMP L01 AJMP L01n n L00:MOV 20H,@R0 L00:MOV 20H,@R0n n L01:INC R0 L01:INC R0n n DJNZ R2,L03 DJNZ R2,L03n n SJMP $ SJMP $n n END END22224-54-5、试设计一段程序,实现如下功能:把片内、试设计一段程序,实现如下功能:把片内、试设计一段程序,实现如下功能:把片内、试设计一段程序,实现如下功能:把片内RAM 30H-3FHRAM 30H-3FH单元中的单元中的单元中的单元中的1616个数存放顺序颠倒过来。
个数存放顺序颠倒过来个数存放顺序颠倒过来个数存放顺序颠倒过来n n ORG 0000H ORG 0000Hn n MOV R0,#30H MOV R0,#30Hn n MOV R1,#3FH MOV R1,#3FHn n MOV R2,#08H MOV R2,#08Hn nL00: MOV A,@R0L00: MOV A,@R0n n MOV B,@R1 MOV B,@R1n n MOV @R0,B MOV @R0,B n n MOV @R1,A MOV @R1,An n INC R0 INC R0n n DEC R1 DEC R1n n DJNZ R2,L00 DJNZ R2,L00n n SJMP $ SJMP $n n END END23234-6,4-6,设计一段程序,实现如下功能:找出从片内设计一段程序,实现如下功能:找出从片内设计一段程序,实现如下功能:找出从片内设计一段程序,实现如下功能:找出从片内RAMRAM的的的的30H30H开始的开始的开始的开始的1616个单元中,存有最小数值的所在单元个单元中,存有最小数值的所在单元个单元中,存有最小数值的所在单元个单元中,存有最小数值的所在单元并将该单元的内容改成并将该单元的内容改成并将该单元的内容改成并将该单元的内容改成0FFH0FFH。
n n (方法一)(方法一)n n ORG 0000H ORG 0000Hn n MOV R0,#30H ; MOV R0,#30H ;数据单元首地址数据单元首地址n n MOV R7,#10H ; MOV R7,#10H ;循环次数循环次数n n MOV 40H,#0FFH MOV 40H,#0FFH n n L00: MOV A,@R0 L00: MOV A,@R0n n CJNE A,40H,CHECK CJNE A,40H,CHECK n nCHECK: JC L01;Cy=1,ACHECK: JC L01;Cy=1,A中值小中值小, ,跳转跳转n n SJMP L02 SJMP L02n n L01: MOV 40H,A L01: MOV 40H,An n MOV 41H,R0 ; MOV 41H,R0 ;最小值地址存放在最小值地址存放在41H41Hn n L02: INC R0 L02: INC R0n n DJNZ R7,L00 DJNZ R7,L00n n MOV R1,41H MOV R1,41Hn n MOV @R1,#0FFH ; MOV @R1,#0FFH ;最小值单元置最小值单元置1 1 n n SJMP $ SJMP $n n END END24244-6,4-6,设计一段程序,实现如下功能:找出从片内设计一段程序,实现如下功能:找出从片内设计一段程序,实现如下功能:找出从片内设计一段程序,实现如下功能:找出从片内RAMRAM的的的的30H30H开始的开始的开始的开始的1616个单元个单元个单元个单元中,存有最小数值的所在单元并将该单元的内容改成中,存有最小数值的所在单元并将该单元的内容改成中,存有最小数值的所在单元并将该单元的内容改成中,存有最小数值的所在单元并将该单元的内容改成0FFH0FFH。
n n (方法二:)(方法二:)n n ORG 0000H ORG 0000Hn n MOV R1, #30H ; MOV R1, #30H ;数据单元首地址数据单元首地址n n MOV R3, #0FH ; MOV R3, #0FH ;循环次数循环次数n n MOV A , @R1 MOV A , @R1n nL01: INC R1L01: INC R1n n CLR C CLR Cn n SUBB A, @R1 SUBB A, @R1n n JNC L02 ;A>((R1)), JNC L02 ;A>((R1)),无借位,无借位,Cy=0Cy=0,则跳转更新,则跳转更新A A中数值中数值n n ADD A,@R1 ; ADD A,@R1 ;恢复恢复A A中数值中数值n n SJMP L03 SJMP L03n nL02: MOV A,@R1L02: MOV A,@R1n n MOV B,R1 MOV B,R1n nL03: DJNZ R3,L01L03: DJNZ R3,L01n n MOV R0,B MOV R0,Bn n MOV @R0,#0FFH MOV @R0,#0FFHn n SJMP $ SJMP $n n END END25254-74-7、编写程序,完成逻辑运算、编写程序,完成逻辑运算、编写程序,完成逻辑运算、编写程序,完成逻辑运算P1.7=P1.6(P1.5P1.7=P1.6(P1.5⊕⊕⊕⊕P1.4)P1.4)n n ORG 0000H ORG 0000Hn n MOV P1,#0FFH; MOV P1,#0FFH;锁存器置锁存器置1 1n n MOV C,P1.5 MOV C,P1.5n n ANL C,/P1.4 ;C=P1.5(/P1.4) ANL C,/P1.4 ;C=P1.5(/P1.4)n n MOV 00H,C MOV 00H,Cn n MOV C,P1.4 MOV C,P1.4n n ANL C,/P1.5 ;C=P1.4(/P1.5) ANL C,/P1.5 ;C=P1.4(/P1.5)n n ORL C,00H ; C=P1.4 ORL C,00H ; C=P1.4⊕⊕P1.5 P1.5 n n ANL C,P1.6 ANL C,P1.6n n MOV P1.7,C MOV P1.7,Cn n SJMP $ SJMP $n n END END26264-84-8、设计一段程序,实现如下功能:统计出从片内的、设计一段程序,实现如下功能:统计出从片内的、设计一段程序,实现如下功能:统计出从片内的、设计一段程序,实现如下功能:统计出从片内的30H30H开始的开始的开始的开始的1616个单元中,有多少个数大于个单元中,有多少个数大于个单元中,有多少个数大于个单元中,有多少个数大于4040,小于,小于,小于,小于8080,并把结果存入,并把结果存入,并把结果存入,并把结果存入40H40H单单单单元中。
元中n n ORG 0000H ORG 0000Hn n MOV R0,#30H MOV R0,#30Hn n MOV R2,#10H MOV R2,#10Hn n MOV 40H,#00H MOV 40H,#00H n n L00:CJNE @R0,#80,L01 L00:CJNE @R0,#80,L01n n L01:JC CHECK ; L01:JC CHECK ;小于小于8080则跳转,进一步比较则跳转,进一步比较n n AJMP L03 ; AJMP L03 ;大于等于大于等于8080均跳转,结束比较均跳转,结束比较 CHECK:CJNE @R0,#40,L02 CHECK:CJNE @R0,#40,L02 n n AJMP L03 ; AJMP L03 ;等于等于4040跳转结束比较跳转结束比较 L02:JC L03 ; L02:JC L03 ;小于小于4040跳转结束比较跳转结束比较n n INC 40H INC 40H L03:INC R0 L03:INC R0n n DJNZ R2,L00 DJNZ R2,L00n n SJMP $ SJMP $n n END END2727。
