单片机习题(指和编程及答案)_第1页
单片机习题(指和编程及答案)_第2页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机练习二一单项选择题1. ORG0003HLJMP2000HORG000BHLJMP3000H当CPU响应外部中断0后,PC的值是(B)。A.0003HB.2000HC.000BHD.3000H3. MCS-51的相对转移指令的最大负跳距离为(B)A.2KBB.128BC.127BD.256B4. 以下运算中对溢出标志0V没有影响或不受影响的运算是(A)。A.逻辑运算B.符号数加减运算C.比较数据大小运算D.除法运算5. 产生PSEN信号的指令是(c)A.MOVXA,DPTRB.MOVXDPTR,AC.MOVCA,A+PCD.MOVXA,A+DPTR6. MOVXA,DPTR指令中的源操作

2、数的寻址方式是(B)。7. 将MCS-51的工作寄存器置成3区的指令是(B)。A.MOVPSW,#13HB.MOVPSW,#18H8. 指令AJMP的跳转范围是(C)。9. 6264芯片是(B)。2PR0MB.RAMC.FlashROMD.EPROM10. 下面那条指令产生WR信号(d)A.MOVXA,DPTRB.MOVCA,A+DPTRC.MOVCA,A+PCD.MOVXDPTR,A11. 执行LCALL4000H指令时,MCS-51所完成的操作是(D)。A.保护PCB.保护现场C.4000HtPCD.PC+3入栈,4000HtPC12. 下列指令中可能改变Cy的有(C)A.INCAB.CP

3、LAC.RLCAD.MOVA,#data13. 假定设置堆栈指针SP的值为36H,在执行指令PUSH20H后,SP的值为(B)14. PUSHACC指令,MCS-51完成的操作是(A)。A.(SP)+1TSP(ACC)弓(SP)B.(ACC)弓(SP)(SP)-1TSPC.(SP)-1TSP(ACC)弓(SP)D.(ACC)9(SP)(SP)+1TSP15. MOVC,00H指令的第二操作数寻址方式是(A)。A.位寻址B.直接寻址C.立即寻址D.寄存器寻址16. 在算术运算中,与辅助进位AC有关的是(C)。A.二进制B.八进制C.十进制D.十六进制17. 把P0口高四位变0,低四位不变,应使用

4、指令(D)。A.ORLP0,#0FHB.ORLP0,#0F0HCANLP0,#0F0HD.ANLP0,#0FH18ORG0000HAJMP0040HORG0040HMOVSP,#00H当执行完上面的程序后,PC的值是(D)A.0040HB.0041HC.0042HD.0043H19. 在相对寻址方式中,“相对”两字是指跳转(A)。A.地址偏移量relB.当前指令的首地址C.当前指令的末地址D.DPTR值20. 使用8051,且EA=1,则可以外扩ROM(B)。A.64KBB.60KBC.58KBD.56KB21. 已知(31H)=21H,(32H)=04H,执行下列指令后,31H的内容为(B)

5、。PUSH31HPUSH32HPOP31HPOP32HA.21HB.04HC.32HD.31H22. 已知(A)=00H,执行DECA指令后,A的内容为(B)A00HB.FFHC.01HD.0FH23. 要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是(BA.MOVB.MOVXC.MOVCD.以上都行24. LCALL存于2000H开始的地址单元中,执行完相应子程序中的返回指令,PC=(A2000HB.2001HC.2002HD.2003H25. 程序设计的方法一般有(D)A1种B.2种C.3种D.4种26. 在寄存器间接寻址方式中,指定寄存器中存放的是(B)A.操作数B.操作

6、数地址C.转移指令D.地址偏移量27. 当8031外扩程序存储器8KB时,常使用EPROM2716(C)A.2片B.3片C.4片D.5片28. 中断服务程序的最后一条指令必须是(C)A.ENDB.RETC.RETID.AJMP29. ADC0809启动A/D转换的方式是(C)A.高电平B.低电平C.正脉冲D.负脉冲30. MOVC,30H源操作数寻址方式为(D)A.立即寻址B.寄存器寻址C.寄存器间接寻址D.位寻址31. POPA指令,MCS-51完成的操作是(A)A.A-(SP)SP(SP)-1B.SP(SP)-1A-(SP)C.A-(SP)SP-(SP)+1D.SP-(SP)+1A-(SP

7、)32. 当(RS1,RS0)=(1,1)时,工作寄存器R0对应内部RAM的(D)字节单元。A.00HB.08HC.10HD.18H33. 在R3初值为00H的情况下,DJNZR3,rel指令将循环执行(B)A.0次B.256次C.128次D.10次34. 执行AJMPaddr11指令时,MCS-51完成的操作是(DA.保护PCB.PCaddr11C.保护现场D.PC+2入栈PC00-addr1135. ORG2000HLCALL3000HORG3000HRET上面程序执行完RET指令后,(PC)=(C)。A.2000HB.3000HC.2003HD.3003H36. MCS-51执行完MOV

8、A,#08H后,PSW的(D位被置位。A.CB.F0C.0VD.P37. MCS-51的并行I/O口信息有两种读取方法,一种是读引脚,还有一种是(AA.读锁存器B.读数据C.读A累加器D.读CPU38.对程序存储器的读操作,只能使用(D)。A.MOV指令B.PUSH指令39ORG8000HDS08HDB30H,8AH则8008H单元内容为(BA.08HB.30HC.MOVX指令D.MOVC指令)。C.8AHD.不确定40.MOVR0,A指令目标操作数的寻址方式是(A)。A.寄存器间接寻址B.寄存器寻址C.直接寻址D.相对寻址41.已知(60H)=23H,(61H)=61H,运行下列程序62H内

9、容为(A)CLRCMOVA,#9AHSUBBA,60HADDA,61HDAAMOV62H,AA.38HB.D8HC.DBHD.3EH42.设系统的晶振频率为6MHZ,下列子程序DELAY的延时时间约为(B)。DELAY:MOVR2,#0FAHL2:DJNZR2,L2RETA.900ySB.1006卩43. MCS-51的LJMP指令跳转空间为(C)。A.2KB.128127C.64KD.32K44. 关于MCS-51的堆栈操作,正确的说法是(C)。A.先入栈,再修改栈指针B.先修改栈指针,再出栈C.先修改栈指针,再入栈D.以上都不对45. JNZrel指令的寻址方式是(C)。A.立即寻址B.寄

10、存器寻址C.相对寻址D.位寻址46.8051执行ADDA,20H指令时,首先在P0口上出现的信息是(A)。A.操作码地址B.操作码C.操作数D.操作数地址47. 必须进行十进制调整的十进制运算(C)。A.有加法与减法B.有乘法与除法C.只有加法D.只有减法48. 执行MOVXDPTR,A指令时,MCS-51产生(B)控制信号。A.PSENB.WRC.ALED.RD49. 已知单片机系统的fosc=6MHZ,执行下列延时程序的时间为(C)。DY2:MOVR6,#2DLP1:MOVR7,#250DLP2:DJNZR7,DLP2DJNZR6,DLP1RETA1msB.1.5msC.2msD.4ms二

11、填空题(每小题1分,共15分1. 执行ANLA,#0FH指令后,累加器A的高四位=清零。2008H。程序转移地址1100H2. 设DPTR=(2000)H,(A)=08H,则MOVCA,A+DPTR的操作数的实际地址为_3. 假定addrll=00100000000B,标号JAZ的地址为1030H,执行指令JAZ:AJMPaddrll后,去执行。4. JZrel的操作码的地址为1000H,rel=20H,他的转移目标地址为。28.执行当前指令后,PC内容为。5. 在寄存器间接寻址方式中,其“间接”体现在指令寄存器的内容不是操作数,而是操作数的地址。6. 假定(A)=OFFH,执行指令INCA后

12、,A的内容为。7. MCS-51系统中,当PSEN信号有意义时,表示CPU要从外部程序存储器读取信息。8. 访问MCS-51程序存储器传送指令的操作码助记符应为MOVC。9. 累加器(A)=7EH,(20H)=#04H,MCS-51执行完ADDA,20H指令后,PSW.0为。10. INC指令CY位。11. 假定累加器A的内容为30H,执行指令1000H:MOVCA,A+PC后,把程序存储器一1031H一单元的内容送累加器A中。12. 在R7初值为00H的情况下,DJNZR7,rel指令将循环执行256-次。13. MOVPSW,#10H是将MCS-51的工作寄存器置为第2组。14. 指令LC

13、ALL37B0H,首地址在2000H,完成此操作后(PC)=37B0H。15. 假定DPTR的内容为8100H,累加器A的内容为4DH,执行指令MOVCA,A+DPTR后,送入A的是程序存储器814DH单元的内容。16. 累加器A中存放一个其值小于或等于127的8位无符号数,CY清“0”后执行RLCA指令,则A中数变为原来的2倍。17. MCS-51的两条杳表指令是MOVCA,A+PC,MOVCA,A+DPTR。18. 指令DJNZR7,rel的指令操作码所在的地址为3000H,rel=EFH,则它的转移目的地址为2FF1H。19. 通过堆栈操作实现子程序调用,首先要把_PC的内容入栈,以进行

14、断点保护。20. 调用返回时再进行出栈操作,把保护的断点弹回PC。21. 设(SP)=60H,(ACC)=30H,(B)=70H,执行指令PUSHACC,PUSHB后,SP的内容为62H。22. 设(SP)=60H,(ACC)=40H,(B)=60H,执行PUSHACC,PUSHB后61H单元的内容为40H。23. 设(SP)=60H,(ACC)=40H,(B)=80H,执行PUSHACC,PUSHB,62H单元的内容为80H。24. PC中存放的是。25. ORLA,#0F0H是将A的高4位置1,而低4位。26. 一台计算机的指令系统就是它所执行的指令集合。27. 累加器(A)=80H,执行

15、完指令ADDA,#83H后,进位位C=1。28. 以助记符表示的计算机指令就是它的汇编语言。29. SJMPrel的指令操作码地址为0050H,rel=65H,那么它的转移目的地址为00B7H。30. 执行如下指令序列后,所实现的逻辑运算式为一P3.0=一。MOVP3.0,C31.当MCS-51引脚ALE信号有效时,表示从P0口稳定地送出了低8位地址地址。三、读程序回答1.试求下列程序依次运行后有关单元的内容。已知(R0)=24H,(Cy)=1,(1FH)=59H,(20H)=24H,(24H)=B6H。(6分)MOVA,1FHADDCA,20HCLRAORLA,R0CPLA(A)=20H的寻

16、址方式(A)=R0的寻址方式是(A)=(A)=答案:59H、直接寻址、00H、寄存器间接寻址、B6H、49HSECH:MOVDPTR,#2000HMOVR2,#0FHMOVXA,DPTRMOVB,ASLOP:INCDPTRMOVXA,DPTRCJNEA,B,SLP1SLP1:JNCSLP2MOVB,ASLP2:DJNZR2,SLOPMOVR2,BRET单元中。问:(1)此程序完成的是将从H单元开始的H个数中的最值找出,放在(2) B寄存器里暂存最值。(3) 若要比较100个数,则哪句程序需要修改?(10分)答案:(1)2000H、10H、小、R2(2)小(3)将第二句MOVR2,#0FH改为M

17、OVR2,#992. ORG6000H;TAB:DB45H,10,88H,'5'DW12H,56H,7800H;ORG8000HMOVDPTR,#6001HCLRAMOVCA,A+DPTRMOVDPTR,#6005HMOVXDPTR,A问:(1)根据行指令内容,画出存储器从6000H6009H中数据分布图。(2) 执行上面的程序,完成了什么功能?(3) 最后A的内容为多少?(10分)6000H6001H6009H(2)将从ROM单元地址为6001H的内容传送到片外数据RAM6005H单元中。3)(A)=0AH3.已知某二进制数(10H)存在内部RAM50H单元中,阅读下列程序,

18、说明其功能。(6分)MOVR0,#50H;(R0)=MOVA,R0H;(A)=,寻址方式是。CLRCRLCA;(A)=ADDA,R1;寻址方式是INCR0MOVR0,A;R0的地址是答案:50H,10H,寄存器间接寻址,20H,寄存器寻址,51H4. START:MOVR0,#30HMOVR7,#0FHMOVDPTR,#3000HLOOP:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOOPRET(1)程序完成的什么功能?(2)R7的作用是什么?(3)RET指令完成什么功能?(10分)答案:(1)程序将片内RAM中30H3FH单元的内容传送到片外RAM地址为3000

19、H300FH中(2) R7是计数器,初值表示传送数据个数,传送1个减1,当(R7)=0时,表示传送完。(3) 返回到主程序的断点处。5. ORG2000HTAB1:DB10H,22,A'TAB2:DW10H,2100HORG3000HMOVDPTR,#TAB2MOVA,#2MOVCA,A+DPTR问:(1)ROM2000H单元中的内容。(2) 字符'A'所在单元的地址为。(3) 2005H单元中的内容为。(4) 执行程序后,DPTR的内容为。(5) A的内容为。(10分)答案:(1)10H(2)2002H(3)21H(4)2003H(5)21H6.若(A)=FFH,(R

20、0)=00H,(00H)=FFH,(CY)=0,位地址(00H)=1,将结果填入横线。(6分)DECA;(A)=INCR0;此句将地址为_H的单元加1SETB00H;此句完成功能ANLC,00H;(C)=ADDA,R0;寻址方式=_,(A)=答案:FEH,00H,位地址为00H的单元置1。0,寄存器寻址,FEH7. START:MOVA,40HMOVDPTR,#TABMOVCA,A+DPTRMOV40H,ARETTABDB30H,31H,32H,33H,34HDB35H,36H,37H,38H,39H假设40H单元中的数的范围从09,问:(1)这段程序完成什么功能?(2)当执行程序前40H中的

21、内容为6,问执行完这段程序后40H中的内容为。(3)MOVCA,A+DPTR中的寻址方式是。(10分)答案:(1)这段程序完成了通过查表得到40H单元的数的ASCII码,并将结果返回40H单元。(2)36H(3)基址+变址的寻址方式8. ADD3:MOVA,R5ADDA,R2MOVR0,AINCR0MOVA,R6ADDCA,R3MOVR0,AINCR0MOVA,R7ADDCA,R4MOVR0,ARET(1)程序完成什么功能?(2)假设执行程序前R0=30H,程序执行结束后30H,31H,32H中的内容为,其中H中存放高字节(3)执行结束后,CY的内容为。(10分)答案:程序完成了两个3字节数的

22、求与。加数(1)在R7R6R5中,加数(2)在R4R3R2 三个字节中与,32H。 三字节与最高位的进位位。9.设(A)=5AH,(R1)=30H,SWAPAADDA,#30HADDCA,30HRLCAANLA,30H答案:A5H(30H)=E0H,(CY)=1,根据程序填空。(6分);(A)=;寻址方式;(A)=,寻址方式;(A)=;(A)=立即数寻址B5H,直接寻址6BH60H10.ADDIO:MOVR0,30HMOVR7,#9MOVA,R0LOOP:INCR0ADDA,R0DJNZR7,LOOPMOV30H,ARET(1)程序完成的是什么功能?(2)若把MOVR7,#9改成MOVR7,#

23、4,程序功能有何变化?(10分)答案:(1)将片内RAM从30H39H十个单元中的内容相加,与存在30H中。(2)不是10个数相加,是3034H五个数相加。11.LOOK:MOV51H,#0MOVR0,#30HMOVR1,#20HLOP:MOVA,R0CPLAJNZLP1INC51HLP1:INCR0DJNZR1,LOPRET(1)R0的作用是什么?(2)程序结束后51H单元中存放的内容是什么?(3)若将JNZLP1这句变成JZLP1,程序完成什么功能?(10分)答案:(1)数据单元指针。(2)片内RAM30H50H单元中内容为FFH单元的个数。(3)将片内RAM30H50H单元中内容为非FF

24、H单元的总个数送给51H。12. 设内RAM(20H)=11001011B,(24H)=01010111B,求依次执行下列指令后的结果。(6分)LOOP:JB00H,LP1;JB26H,LP2;程序跳转到LP1还是LP2?答Lp1:MOVA,20H;(A)=,寻址方式是CPLA(A)=ADDA,24H(A)=JZLP3;执行完此句后,程序跳到LP3还是LP2处?LP2:INC20HLP3:答案:Lp111001011B,直接寻址00110100B10001011BLp213. ORG2000HTAB:DB01,02DW03,04DS03HORG2200HMOVDPTR,#TABMOVA,#02

25、HMOVCA,A+DPTR问:(1)请填入存储器2000H2008H单元的内容。(2)执行完程序后A中的内容为。(3)DPTR是一个字节的寄存器。(10分)答案:01H02H2000HOOH03HOOH04HOOHOOHOOH16.2) (A)=OOH3) 214.START:MOVDPTR,#2010HMOVR7,#1OHMOVRO,#3OHLOOP:MOVXA,DPTRMOVRO,ADECDPTRINCRODJNZR7,LOOPRET(1)程序完成什么功能?(2) MOVXA,DPTR这句指令是什么寻址方式?(3) DJNZR7,LOOP这句指令的含义?(1O分)答案:(1) 程序完成将片

26、外RAM2O1OH单元一2OO1H单元的内容,依次传送到片内RAM3OH3FH单元中去。(2) 寄存器间接寻址。(3) 判断(R7)-1是否为O,若为O,结束循环,不为O继续到LOOP那儿循环。15.若(A)=78H,(RO)=34H,(34H)=DCH,(56H)=ABH,(cy)=1,求分别执行下列指令后填空。(6分)ADDCA,RO_;(A)=,寻址方式是ORLA,#23H;(A)=,;寻址方式是MOVA,34H;(A)=SWAPA;(A)=答案:55H,寄存器间接寻址77H,立即寻址DCH,CDH.MOVA,ROCPLAJZLABEL1INCAJZLABEL2LABEL1:INCASJ

27、MPLOOPLABEL2:DECALOOP:RET问:(1)分析上面一段程序,何时转向LABEL1?何时转向LABEL2?(2)若(R0)=FFH,执行完程序后(A)=Ho(10分)答案:(1)当R0的值为FFH,转向LABEL1,当R0为00时,转向LABLE2(2)01H17.START:MOVR0,#40HMOVR7,#09HMOVA,R0LOOP:INCR0MOV30H,R0CJNEA,30H,NEXTNEXT:JNCBIEIMOVA,30HBIEI:DJNZR7,LOOPMOV50H,ARET问:(1)A中暂放o(2)R7寄存器中保存的数是o最后50H中存放的是o(10分)(1)最大

28、(2) 比较的次数,共有9个数与A中的数做比较(3) 片内RAM40H49H中最大的值18.已知外RAM(2040H)=50H,ROM(2090H)=96H,内RAM(20H)=85H,试求下列程序依次运行后有关单元的内容。(6分)MOVDPTR,#2040H;(DPTR)=MOVXA,DPTR;寻址方式是,(A)=MOVA,20H;(A)=ANLA,#38H;(A)=,寻址方式是答案:2040H寄存器间址,50H85H00H立即寻址19. CLRCLOOP1:MOVA,R0ADDCA,R1DAAMOVR0,AINCR0INCR1DJNZR7,LOOP1CLRAMOVACC.0,CMOVR0,

29、ARET问:(1)DAA指令有何用途?(2)若执行程序前(R0)=20H,(R1)=30H,(R7)=03H,则程序完成什么功能?程序最后的结果放在哪些单元?10分)答案:(1)DAA是对A中的数进行十进制数的调整。(2)将存放在(22H)(21H)(20H)中的BCD码与(32)(31H)(30H)单元中的BCD码相加,结果调整为BCD码后放回(23H)(22H)(21H)(20H)单元中,其中高地址存放高位字节。20. MOVR0,#20HSLOP:MOVA,R0JZLP1JBACC.7,LP2INC30HLP0:INCR0DJNZ1FH,SLOPENDLP1:INC31HSJMPLP0L

30、P2:INC32HSJMPLP0问:(1)若执行前(20H)单元中的内容为F1H,则程序能不能走到LP1处?(2)执行前1FH单元中存放的是什么?(3)执行后30H,31H,32H单元中各存放的什么数据?(10分)(1)不能(2)参加统计的数的个数(3)30H中放正数的个数31H中放“0”的个数32H中放负数的个数21.已知(30H)=58H,读程序填空。(6分)CLRCMOVA,30H;寻址方式是_,(A)=RLCARLCA;(C)=ADDA,#36H;寻址方式是_,(A)=JZLOOP2;程序转至LOOP1还是LOOP2?答Loop1:MOVA,00H直接寻址,58H1立即寻址,96HLO

31、OP122.(30H)=15H,问执行完程序后,A,B,SP,32H,33H,34H的内容是多少?(10分)MOVSP,#30HXCHA,30HMOVB,AANLA,#0FHMOV33H,AMOVA,BPUSHASWAPAANLA,#15HMOV34H,APUSHA答案:A)=11H(B)=15H(SP)=32H(32H)=11H(33H)=05H(34H)=11H23.内部RAM30H,31H单元中存放两个无符号数,读程序回答问题。(10分)ORG1000HSTART:CLRCMOVA,30HSUBBA,31HJCNEXTMOVA,30HXCHA,31HMOV30H,ANEXT:NOPSJM

32、P$END(1) 程序完成什么功能?(2) 若(30H)=89H,(31H)=F5H,执行程序后(30H)=,(31H)=,(Cy)=。答案:(1)比较30H与31H中无符号数的大小,小数存于30H,大数存于31H(2)(30H)=89H,(31H)=F5H,(Cy)=1四、编程题1. 编写程序,将外部RAM2000H-201FH数据块数据,传送到片内RAM40H-5FH的对应单元中,并统计其中数据'0'的个数,将结果放入片内60H单元中。答案:START:MOVDPTR,#2000HMOVR0,#40HMOVR1,#1FHMOVR2,#00HLOOP:MOVXA,DPTRMO

33、VR0,AINCDPTRINCR0CJNEA,#00H,LOOP1INCR2LOOP1:DJNZR1,LOOPMOV60H,R2RET2. 已知8位要显示数字已存放在首地址为30H的片内RAM中,试将其转换为共阴显示字段码,存入首址为40H的内RAM中,已知TABD为0-9共阴字段码表首址。ORG1000HTABD:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FH答案:MOVDPTR,#TABDMOVR2,#8MOVR0,#30HMOVR1,#40HLOOP:MOVA,R0MOVCA,A+DPTRMOVR1,AINCDPTRINCR0INCR1DJNZR7,

34、LOOPEND3.试完成程序,求Y值,设m,n存在30H与31H中,Y存在32H中,且m*n积小于256,m/n的商为整数。Y=m*nVm/n答案:(m<n)(m=n)(m>n)MOVA,30HMOVB,31HCJNEA,B,LOOP1MOV32H,#00HLJMPBBLOOP1:JCLOOP2DIVABMOV32H,ALJMPBBLOOP2:MULABMOV32H,ABB:END4. 求出片外RAM3000H300FH,这16个单元数据的平均数,并将平均值放入片外RAM3010H单元中,余数放入3011H单元中(设16个数的与小于256)。答案:MOVDPTR,#3000HMOV

35、R0,10HMOVB,#00HLOOP:MOVXA,DPTRADDA,BMOVB,AINCDPTRDJNZR0,LOOPMOVA,BMOVB,#16DIVABMOVDPTR,#3010HMOVXDPTR,AINCDPTRMOVA,BMOVXDPTR,AEND5. 设X由P1口输入,Y存在外部RAM2000H单元,试按下列要求编制程序(设X2<256)X2;当X<10时Y=2X;当10<X<100时YX/2;当X>100时答案:MOVA,P1CJNEA,#10,LOOP1LOOP1:JNCLOOP2MOVB,AMULABLJMPLOOP5LOOP2:CJNEA,#1

36、01,LOOP3LOOP3:JNCLOOP4MOVB,AADDA,BLJMPLOOP5LOOP4:MOVB,#2DIVA,BLOOP5:MOVDPTR,#2000HMOVDPTR,AEND6.片内RAM区中,有20个补码表示的数存放在首地址为30H的单元中,请编程把其中的正数送到20H为首址的片外RAM中,负数不传送(0不是正数)。答案:MOVR0,#30HMOVR1,#20HMOVR7,#20LOOP:MOVA,R0JZNEXTJBACC.7,NEXTMOVXR1,AINCR1NEXT:INCR0DJNZR7,LOOPEND7. 将61H与60H两个单元中的ASCII码转换为16进制数,并合

37、并为一个字节存在70H单元中(60H中放的是低位)。答案:MOVA,60HANLA,#0FHMOVB,AMOVA,61HANLA,#0FHSWAPAADDA,BMOV70H,AEND8. 设在内部数据存储器中存放有20个字节数据,其起始地址为30H,其中可能有一个字节的内容为OAH,编写程序找出数0AH的存放地址,并送入2FH单元,若0AH不存在,则将29H单元置0。MOVMOVR0,#30R1,#20LOOP:MOVA,R0CJNZA,#0AH,LOOP1AJMPJIESHULOOP1:INCR0DJNZR1,LOOPMOV29H,#00HAJMPLOOP4JIESHU:MOV2FHR0LO

38、OP4:END单片机习题和试题库读程序(1)MOVA,#2OHMOVRO,#2OHANLA,#OFHORLA,#8OHXRLA,ROA=_(2).MOVMOVRO,A(20H)=;RO=MOVRO,DPHMOV14H,#22HMOVR1,DPLMOV23H,#56HMOVA,ROXCHA,DPH执行以上扌令后A=(3)MOVA,#5OHMOVB,#77HPUSHACCPUSHBPOPACCPOPBDPTR,#2314HDPTR=执行完本段扌旨令后(A)=(B)=2设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?MOVA,

39、59HMOVR0,AMOVA,#00HMOVR0,AMOVA,#25HMOV51H,AMOV52H,#70H3已知(A)=83H,(R0)=17H,(17H)=34H。请写出执行完下列程序段后A的内容。ANLA,#17HORL17H,AXRLA,R0CPLA4试分析下列程序段,当程序执行后,位地址OOH,01H中的内容为何值?P1口的8条I/O线为何状态?CLRCMOVA,#66HJCLOOP1CPLCSETB01HLOOP1:ORLJBACC.2,LOOP2CLR00HLOOP2:MOVP1,A5.若A=11H,R0=33H,B=55H,(11H)=22H,(22H)=66H,(33H)=4

40、4H,在注释区写出分别执行下列指令后果的结果。(1)MOVR1,A;(2)MOVR3,#11H;(3)MOVR0,#22H;(4)MOVA,R0;(5)MOVB,33H;(6)MOV40H,R0;6.若A=78H,R0=34H,(34H)=DCH,(56H)=ABH,Cy=1,求分别执行下列指令后(34H)和(56H)中的数据。(1)ADDCA,R0;(2)SUBBA,56H;(3)DECR0;(4)INC56H;7.若A=B7H,R0=5EH,(23H)=A1H,Cy=O,将分别执行下列指令的结果写在注释区。(1)ANLA,R0;(2)ORLA,#23H;(3)XRL23H,A;(4)RLC

41、A;10.试求下列程序依次运行后有关单元中的内容。MOV20H,#A7H;MOVC,07H;ORLC,/H;CPL00H;SETB03H;MOVA,20H;RLCA;MOV20H,A;11.已知:(60H)=23H,(61H)=61H,以下程序段执行后(62H)=CLRCMOVA,9AHSUBBA,60HADDA,61HDAAMOV62H,A12.已知:(A)=02H,(SP)=40H,(41H)=FFH,(42H)=FFH,以下程序段执行后(A)=.(SP)=.(41H)=.(42H)=.(PC)=。POPDPHPOPDPLMOVDPTR,3000HRRAMOVB,AMOVCA,ADPTRP

42、USHACCMOVA,BINCAMOVCA,ADPTRPUSHACCRETORG3000HDB10H,80H,30H,50H,30H,50H13. 以下程序段执行后(A)=,(30H)=。MOV30H,0A4HMOVA,0D0HMOVR0,30HMOVR2,5EHANLA,R2ORLA,R0SWAPACPLAXRLA,0FEHORL30H,A14. 已知(59H)=50H,以下程序段执行后(A)=,(50H)=,(51H)=,(R0)=。MOVA,59HMOVR0,AMOVA,00MOVR0,AMOVA,25HMOV51H,AMOV52H,70H16. 若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。试分析执行下列程序段后上述各单元内容的变化。MOVA,R1MOVR1,40HMOV40H,AMOVR1,#7FH17. 若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20)=OFH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指出CY.AC和OV的值。(1)MOVA,R02) ANL40H,#0FH3) ADDA,R44

温馨提示

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

评论

0/150

提交评论