tceic.com
学霸学习网 这下你爽了
赞助商链接
当前位置:首页 >> 工学 >>

单片机习题(指令与编程及答案)


单片机练习二
一.单项选择题 1. ORG 0003H LJMP 2000H ORG 000BH LJMP 3000H 当 CPU 响应外部中断 0 后,PC 的值是( B ) 。 A.0003H B. 2000H C. 000BH D. 3000H 3. MCS-51 的相对转移指令的最大负跳距离为( B ) 。 A.2KB B. 128B C.127B D. 256B 4. 以下运算中对溢出标志 0V 没有影响或不受影响的运算是( A ) 。 A.逻辑运算 B. 符号数加减运算 C. 比较数据大小运算 D. 除法运算 5. 产生 PSEN 信号的指令是 ( C ) 。 A . MOVX A ,@DPTR B. MOVX @DPTR, A C. MOVC A , @A+PC D. MOVX A, @A+DPTR 6. MOVX A , @DPTR 指令中的源操作数的寻址方式是( B ) 。 A.寄存器寻址 B.寄存器间接寻址 C.直接寻址 D.立即寻址 7. 将 MCS-51 的工作寄存器置成 3 区的指令是( B ) 。 A. MOV PSW , #13H B.MOV PSW , #18H C. SETB PSW.4 ,CLR PSW.3 D.SETB PSW.3 ,CLR PSW.4 8. 指令 AJMP 的跳转范围是( C ) 。 A .256B B.1KB C.2KB D.64KB 9. 6264 芯片是( B ) 。 A.E PROM B.RAM C .Flash ROM D .EPROM 10. 下面那条指令产生 WR 信号( D ) 。 A.MOVX A , @DPTR B.MOVC A , @A+DPTR C.MOVC A , @A+PC D.MOVX @DPTR , A 11. 执行 LCALL 4000H 指令时,MCS-51 所完成的操作是( D ) 。 A.保护 PC B.保护现场 C.4000H ?PC D.PC+3 入栈,4000H ? PC 12. 下列指令中可能改变 Cy 的有( C ) 。 A.INC A B.CPL A C. RLC A D.MOV A , #data 13. 假定设置堆栈指针 SP 的值为 36H,在执行指令 PUSH 20H 后,SP 的值为( A.36H B.37H C. 38H D.21H 14. PUSH ACC 指令,MCS-51 完成的操作是( A ) 。 A.(SP)+1?SP (ACC) ? (SP) B. (ACC) ? (SP) (SP)-1?SP C.(SP)-1?SP (ACC) ? (SP) D. (ACC) ? (SP) (SP)+1?SP 15. MOV C, 00H 指令的第二操作数寻址方式是( A ) 。 A.位寻址 B. 直接寻址 C. 立即寻址 D. 寄存器寻址 16. 在算术运算中,与辅助进位 AC 有关的是( C ) 。 A.二进制 B. 八进制 C. 十进制 D. 十六进制 17. 把 P0 口高四位变 0,低四位不变,应使用指令( D ) 。 A. ORL P0,#0FH B. ORL P0,#0F0H C.ANL P0,#0F0H D. ANL P0, #0FH 18 ORG 0000H AJMP 0040H ORG 0040H MOV SP, #00H 当执行完上面的程序后,PC 的值是( D ) 。 A.0040H B. 0041H C. 0042H D. 0043H
2

B ) 。

19. 在相对寻址方式中, “相对”两字是指跳转( A A.地址偏移量 rel B. 当前指令的首地址 C.当前指令的末地址 D. DPTR 值 20. 使用 8051,且 EA =1,则可以外扩 ROM( B

) 。

) 。

A. 64KB B. 60KB C. 58KB D. 56KB 21. 已知(31H)=21H, (32H)=04H,执行下列指令后,31H 的内容为( B ) 。 PUSH 31H PUSH 32H POP 31H POP 32H A.21H B. 04H C. 32H D. 31H 22. 已知(A)=00H,执行 DEC A 指令后,A 的内容为( B ) A.00H B. FFH C. 01H D. 0FH 23. 要用传送指令访问 MCS-51 片外 RAM,它的指令操作码助记符应是 ( B ) 。 A. MOV B. MOVX C. MOVC D. 以上都行 24. LCALL 存于 2000H 开始的地址单元中,执行完相应子程序中的返回指令,PC=( D ) 。 A.2000H B. 2001H C. 2002H D. 2003H 25. 程序设计的方法一般有( D ) A.1 种 B. 2 种 C. 3 种 D. 4 种 26. 在寄存器间接寻址方式中,指定寄存器中存放的是( B ) A. 操作数 B. 操作数地址 C. 转移指令 D. 地址偏移量 27. 当 8031 外扩程序存储器 8KB 时,常使用 EPROM2716( C ) A. 2 片 B. 3 片 C. 4 片 D. 5 片 28. 中断服务程序的最后一条指令必须是( C ) A. END B. RET C. RETI D. AJMP 29. ADC0809 启动 A/D 转换的方式是( C ) A. 高电平 B. 低电平 C. 正脉冲 D. 负脉冲 30. MOV C, 30H 源操作数寻址方式为( D ) A. 立即寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 位寻址 31. POP A 指令,MCS-51 完成的操作是( A ) A. A←((SP)) SP←(SP)-1 B. SP←(SP)-1 A←((SP)) C. A←((SP)) SP←(SP)+1 D. SP←(SP)+1 A←((SP)) 32. 当(RS1,RS0)=(1,1)时,工作寄存器 R0 对应内部 RAM 的( D ) 字节单元。 A. 00H B. 08H C. 10H D. 18H 33. 在 R3 初值为 00H 的情况下,DJNZ R3, rel 指令将循环执行( B ) A. 0 次 B. 256 次 C. 128 次 D. 10 次 34. 执行 AJMP addr11 指令时,MCS-51 完成的操作是( D ) A. 保护 PC B. PC←addr11 C. 保护现场 D. PC+2 入栈 PC0~10 ←addr11 35. ORG 2000H LCALL 3000H ORG 3000H RET 上面程序执行完 RET 指令后, (PC)=( C ) 。 A. 2000H B. 3000H C. 2003H D. 3003H 36. MCS-51 执行完 MOV A, #08H 后,PSW 的( D )位被置位。 A. C B.F0 C. 0V D. P 37. MCS-51 的并行 I/O 口信息有两种读取方法,一种是读引脚,还有一种是( A ) 。

A. 读锁存器 B. 读数据 C. 读 A 累加器 D. 读 CPU 38. 对程序存储器的读操作,只能使用( D ) 。 A. MOV 指令 B. PUSH 指令 C. MOVX 指令 D. MOVC 指令 39.ORG 8000H DS 08H DB 30H, 8AH 则 8008H 单元内容为( B ) 。 A. 08H B. 30H C. 8AH D. 不确定 40. MOV @R0, A 指令目标操作数的寻址方式是( A ) 。 A. 寄存器间接寻址 B. 寄存器寻址 C. 直接寻址 D. 相对寻址 41. 已知(60H)=23H, (61H)=61H,运行下列程序 62H 内容为( A CLR C MOV A, #9AH SUBB A,60H ADD A, 61H DA A MOV 62H, A A. 38H B. D8H C. DBH D. 3EH 42. 设系统的晶振频率为 6MHZ,下列子程序 DELAY 的延时时间约为( B DELAY: MOV R2, #0FAH L2: DJNZ R2, L2 RET A. 900μS B. 1006μS C. 500us D. 5.501us 43. MCS-51 的 LJMP 指令跳转空间为( C ) 。 A. 2K B. –128~127 C. 64K D. 32K 44. 关于 MCS-51 的堆栈操作,正确的说法是( C ) 。 A. 先入栈,再修改栈指针 B. 先修改栈指针,再出栈 C. 先修改栈指针,再入栈 D. 以上都不对 45. JNZ rel 指令的寻址方式是( C ) 。 A. 立即寻址 B. 寄存器寻址 C. 相对寻址 D. 位寻址 46 . 8051 执行 ADD A, 20H 指令时,首先在 P0 口上出现的信息是( A A. 操作码地址 B. 操作码 C. 操作数 D. 操作数地址 47. 必须进行十进制调整的十进制运算( C ) 。 A. 有加法和减法 B. 有乘法和除法 C. 只有加法 D. 只有减法 48. 执行 MOVX @DPTR, A 指令时,MCS-51 产生( B )控制信号。 A. PSEN B. WR C. ALE D. RD 49. 已知单片机系统的 fosc=6MHZ,执行下列延时程序的时间为( C DY2: MOV R6, #2 DLP1: MOV R7, #250 DLP2: DJNZ R7, DLP2 DJNZ R6, DLP1 RET A.1ms B. 1.5ms C. 2ms D. 4ms ) 。

) 。

) 。

) 。

二.填空题(每小题 1 分,共 15 分 1. 执行 ANL A, #0FH 指令后,累加器 A 的高四位= 清零 。 2. 设 DPTR=(2000)H, (A)=08H,则 MOVC A, @A+DPTR 的操作数的实际地址为 2008H 。 3. 假定 addrll=00100000000B,标号 JAZ 的地址为 1030H,执行指令 JAZ: AJMP addrll 后,程序转移地址 1100H 去执行。 4. JZ rel 的操作码的地址为 1000H ,rel=20H , 他的转移目标地址为 1022H 。 28.执行当前指令后,PC 内容为 下一条指令的首地址 。

5. 在寄存器间接寻址方式中,其“间接”体现在指令寄存器的内容不是操作数,而是操作数的 6. 假定(A)=0FFH,执行指令 INC A 后,A 的内容为 00H 。

地址



7. MCS-51 系统中,当 PSEN 信号有意义时,表示 CPU 要从 外部程序 存储器读取信息。 8. 访问 MCS-51 程序存储器传送指令的操作码助记符应为___MOVC______。 9. 累加器(A)=7EH, (20H)=#04H,MCS-51 执行完 ADD A,20H 指令后,PSW.0 为_____________。 10. INC 指令_____________ CY 位。 11. 假定累加器 A 的内容为 30H,执行指令 1000H: MOVC A,@A+PC 后,把程序存储器____1031H____单元的内 容送累加器 A 中。 12. 在 R7 初值为 00H 的情况下,DJNZ R7,rel 指令将循环执行__256__次。 13. MOV PSW, #10H 是将 MCS-51 的工作寄存器置为第______2___组。 14. 指令 LCALL 37B0H,首地址在 2000H,完成此操作后(PC)=___37B0H___。 15. 假定 DPTR 的内容为 8100H,累加器 A 的内容为 4DH,执行指令 MOVC A, @A+DPTR 后,送入 A 的是程序 存储器____814DH_______单元的内容。 16. 累加器 A 中存放一个其值小于或等于 127 的 8 位无符号数,CY 清“0”后执行 RLC A 指令,则 A 中数变为原来 的_____2______倍。 17. MCS-51 的两条查表指令是_MOVC A,@A+PC_,_MOVC A, @A+DPTR___。 18. 指令 DJNZ R7, rel 的指令操作码所在的地址为 3000H,rel=EFH,则它的转移目的地址为_2FF1H___。 19. 通过堆栈操作实现子程序调用,首先要把__PC______的内容入栈,以进行断点保护。 20. 调用返回时再进行出栈操作,把保护的断点弹回____ PC ____。 21. 设(SP)=60H, (ACC)=30H, (B)=70H,执行指令 PUSH ACC,PUSH B 后,SP 的内容为___62H____。 22. 设(SP)=60H, (ACC)=40H, (B)=60H,执行 PUSH ACC, PUSH B 后 61H 单元的内容为___40H____。 23. 设(SP)=60H, (ACC)=40H, (B)=80H,执行 PUSH ACC,PUSH B,62H 单元的内容为___80H_____。 24. PC 中存放的是__下一条指令首地址 _ ___。 25. ORL A, #0F0H 是将 A 的高 4 位置 1,而低 4 位___不变____________。 26. 一台计算机的指令系统就是它所执行的____指令________集合。 27. 累加器(A)=80H,执行完指令 ADD A, #83H 后,进位位 C=______1______。 28. 以助记符表示的计算机指令就是它的_____汇编_______语言。 29. SJMP rel 的指令操作码地址为 0050H,rel=65H,那么它的转移目的地址为 00B7H___。 30. 执行如下指令序列后,所实现的逻辑运算式为__ P3.0=_ P1.0^ P1.1_^/ P1.2___。 MOV C, P1.0 ANL C, P1.1 ANL C, /P1.2 MOV P3.0 , C 31. 当 MCS-51 引脚 ALE 信号有效时,表示从 P0 口稳定地送出了____低 8 位地址____地址。 三、读程序回答 1. 试求下列程序依次运行后有关单元的内容。已知(R0)=24H,(Cy)=1, (1FH)=59H, (20H)=24H, (24H)=B6H 。 (6 分) MOV A, 1FH ; (A)=______________ ADDC A, 20H ; 20H 的寻址方式是 CLR A ; (A)=______________ ORL A, @R0 ; @R0 的寻址方式是 , ; (A)=______________ CPL A ; (A)=______________ 答案:59H、直接寻址、00H、寄存器间接寻址、B6H、49H SECH: MOV DPTR, #2000H MOV R2, #0FH MOVX A, @DPTR MOV B, A SLOP : INC DPTR MOVX A, @DPTR CJNE A, B, SLP1

JNC SLP2 MOV B, A SLP2: DJNZ R2, SLOP MOV R2, B RET 问: (1)此程序完成的是将从 H 单元开始的 H 个数中的最 值找出,放在 (2)B 寄存器里暂存最 值。 (3)若要比较 100 个数,则哪句程序需要修改? (10 分) 答案 : (1)2000H、10H、小、R2 (2)小 (3)将第二句 MOV R2, #0FH 改为 MOV R2, #99 2. ORG 6000H ; ① TAB : DB 45H, 10,88H,’5’ ; ② DW 12H,56H,7800H ; ③ ORG 8000H MOV DPTR,#6001H CLR A MOVC A,@A+DPTR MOV DPTR, #6005H MOVX @DPTR, A 问: (1)根据①②③行指令内容,画出存储器从 6000H—6009H 中数据分布图。 (2)执行上面的程序,完成了什么功能? (3)最后 A 的内容为多少?(10 分)
6000H 6001H

SLP1:

单元中。

(1)
6009H 6000H 6001H 45H 0AH 88H 35H 00H 12H 00H 56H 78H 00H

6009H

(2)将从 ROM 单元地址为 6001H 的内容传送到片外数据 RAM6005H 单元中。 (3) (A)=0AH 3. 已知某二进制数(10H)存在内部 RAM50H 单元中,阅读下列程序,说明其功能。 分) (6 MOV R0,#50H ; (R0)=____ MOV A, @R0H ; (A)= ,寻址方式是 。 CLR C RLC A ; (A)=____ ADD A, R1 ; 寻址方式是 INC R0

MOV @R0, A ; @R0 的地址是_______________ 答案:50H,10H,寄存器间接寻址,20H,寄存器寻址,51H 4. START: MOV R0, #30H MOV R7,#0FH MOV DPTR, #3000H LOOP: MOV A, @R0 MOVX @DPTR, A INC R0 INC DPTR DJNZ R7, LOOP RET (1) 程序完成的什么功能? (2) R7 的作用是什么? (3) RET 指令完成什么功能?(10 分) 答案 : (1)程序将片内 RAM 中 30H—3FH 单元的内容传送到片外 RAM 地址为 3000H—300FH 中 (2)R7 是计数器,初值表示传送数据个数,传送 1 个减 1,当(R7)=0 时,表示传送完。 (3)返回到主程序的断点处。 ORG 2000H TAB1:DB 10H,22, ‘A’ TAB2:DW 10H,2100H ORG 3000H MOV DPTR,#TAB2 MOV A,#2 MOVC A,@A+DPTR 问: (1)ROM2000H 单元中的内容___________。 (2) 字符‘A’所在单元的地址为___________。 (3) 2005H 单元中的内容为___________。 (4)执行程序后,DPTR 的内容为___________。 (5) A 的内容为___________。 (10 分) 答案 : (1)10H (2)2002H (3)21H (4)2003H (5)21H 6. 若(A)=FFH,(R0)=00H, (00H)=FFH, (CY)=0,位地址(00H)=1,将结果填入横线。 分) (6 DEC A ; (A)=_______ INC @R0 ; 此句将地址为___H 的单元加 1 SETB 00H ; 此句完成______功能 ANL C,00H ; (C)=______ ADD A, R0 ; 寻址方式=__________, (A)=__________ 答案:FEH,00H,位地址为 00H 的单元置 1。 0, 寄存器寻址,FEH 7. START: MOV A, 40H MOV DPTR, #TAB MOVC A, @A+DPTR MOV 40H, A RET 5.

DB 30H, 31H, 32H, 33H, 34H DB 35H, 36H, 37H, 38H, 39H 假设 40H 单元中的数的范围从 0—9,问: (1)这段程序完成什么功能? (2)当执行程序前 40H 中的内容为 6,问执行完这段程序后 40H 中的内容为_________。 (3) MOVC A,@A+DPTR 中的寻址方式是 。 (10 分) 答案 : (1)这段程序完成了通过查表得到 40H 单元的数的 ASCII 码,并将结果返回 40H 单元。 (2)36H (3)基址+变址的寻址方式 8. MOV A, R5 ADD A, R2 MOV @R0 , A INC R0 MOV A, R6 ADDC A, R3 MOV @R0, A INC R0 MOV A, R7 ADDC A, R4 MOV @R0, A RET (1)程序完成什么功能? (2)假设执行程序前 R0=30H,程序执行结束后 30H, 31H, 32H 中的内容为___________,其中_________H 中存放 高字节 (3)执行结束后,CY 的内容为 。 (10 分) 答案 :①程序完成了两个 3 字节数的求和。 加数(1)在 R7 R6 R5 中, 加数(2)在 R4 R3 R2 ②三个字节中和, 32H。 ③三字节和最高位的进位位。 9. 设(A)=5AH, (R1)=30H, (30H)=E0H,(CY)=1,根据程序填空。 分) (6 SWAP A ; (A)=_______ ADD A, #30H ; 寻址方式________ ADDC A, 30H ; (A)=______,寻址方式____ RLC A ; (A)=______ ANL A, 30H ; (A)=______ 答案:A5H 立即数寻址 B5H,直接寻址 6BH 60H 10. ADDIO: MOV R0, 30H MOV R7, #9 MOV A, @R0 LOOP: INC R0 ADD A, @R0 DJNZ R7, LOOP MOV 30H, A RET ADD3:

TAB

(1) 程序完成的是什么功能? (2) 若把 MOV R7,#9 改成 MOV R7, #4,程序功能有何变化?(10 分) 答案 : (1)将片内 RAM 从 30H—39H 十个单元中的内容相加,和 存在 30H 中。 (2)不是 10 个数相加,是 30—34H 五个数相加。 11. LOOK:MOV 51H,#0 MOV R0,#30H MOV R1, #20H LOP: MOV A,@R0 CPL A JNZ LP1 INC 51H LP1: INC R0 DJNZ R1, LOP RET (1)R0 的作用是什么? (2)程序结束后 51H 单元中存放的内容是什么? (3)若将 JNZ LP1 这句变成 JZ LP1,程序完成什么功能?(10 分) 答案 : (1)数据单元指针。 (2)片内 RAM30H—50H 单元中内容为 FFH 单元的个数。 (3)将片内 RAM30H—50H 单元中内容为非 FFH 单元的总个数送给 51H。 12. 设内 RAM (20H)=11001011B, (24H)=01010111B,求依次执行下列 指令后的结果。 分) (6 LOOP: JB 00H, LP1 ; JB 26H, LP2 ; 程序跳转到 LP1 还是 LP2?答________ Lp1: MOV A, 20H ; (A)=_____ , 寻址方式是______ CPL A (A)= ______ ADD A, 24H (A)= ______ JZ LP3 ; 执行完此句后,程序跳到 LP3 还是 LP2 处? LP2: INC 20H LP3: ┋ 答案: Lp1 11001011B, 直接寻址 00110100B 10001011B Lp2 13. ORG 2000H TAB: DB 01, 02 DW 03, 04 DS 03H ORG 2200H MOV DPTR, #TAB MOV A, #02H MOVC A, @A+DPTR 问: (1)请填入存储器 2000H~2008H 单元的内容。 (2)执行完程序后 A 中的内容为________。 (3)DPTR 是一个______字节的寄存器。 (10 分) 答案 : 01H

02H 2000H 00H 03H 00H 04H 00H 00H 00H

(2)(A)=00H (3)2 14. START: MOV DPTR, #2010 H MOV R7, #10H MOV R0, #30H LOOP: MOVX A, @DPTR MOV @R0, A DEC DPTR INC R0 DJNZ R7, LOOP RET (1) 程序完成什么功能? (2) MOVX A, @DPTR 这句指令是什么寻址方式? (3) DJNZ R7, LOOP 这句指令的含义?(10 分) 答案 : (1)程序完成将片外 RAM2010H 单元—2001H 单元的内容,依次传送到片内 RAM30H—3FH 单元中去。 (2)寄存器间接寻址。 (3)判断(R7)-1 是否为 0,若为 0,结束循环,不为 0 继续到 LOOP 那儿循环。 15. 若(A)=78H, (R0)=34H, (34H)=DCH, (56H)=ABH,(cy)=1, 求分别执行下列指令后填空。 分) (6 ADDC A,@R0 ; (A)=_______________, 寻址方式是________________ ORL A, #23H ; (A)=_______________, ; 寻址方式是_______________ MOV A, 34H ; (A)=_______________ SWAP A ; (A)=_______________ 答案: 55H, 寄存器间接寻址 77H, 立即寻址 DCH, CDH. 16. MOV CPL JZ INC JZ A, R0 A LABEL1 A LABEL2

INC A SJMP LOOP LABEL2: DEC A LOOP: RET 问: (1)分析上面一段程序,何时转向 LABEL1?何时转向 LABEL2? (2)若(R0)=FFH,执行完程序后(A)=_______________H。 (10 分) 答案 :(1) 当 R0 的值为 FFH,转向 LABEL1,当 R0 为 00 时,转向 LABLE2 (2)01H 17. START: MOV R0, #40H MOV R7, #09H MOV A, @R0 LOOP: INC R0 MOV 30H, @R0 CJNE A, 30H, NEXT NEXT: JNC BIEI MOV A, 30H BIEI: DJNZ R7, LOOP MOV 50H, A RET 问: (1)A 中暂放_________________。 (2)R7 寄存器中保存的数是_________________。 (3)最后 50H 中存放的是___________________。 (10 分) (1)最大 (2)比较的次数,共有 9 个数与 A 中的数做比较 (3) 片内 RAM 40H~49H 中最大的值 18. 已知外 RAM(2040H)=50H,ROM(2090H)=96H,内 RAM(20H)=85H,试求下列程序依次运行后有关单元 的内容。 分) (6 MOV DPTR , #2040H ; (DPTR)=_______________ MOVX A, @DPTR ; 寻址方式是_____________,(A)=_____________ MOV A, 20H ; (A)=______________ ANL A, #38H ; (A)=_______________,寻址方式是____________ 答案: 2040H 寄存器间址, 50H 85H 00H 立即寻址 19. CLR C LOOP1: MOV A, @R0 ADDC A, @R1 DA A MOV @R0, A INC R0 INC R1 DJNZ R7, LOOP1 CLR A MOV ACC.0, C MOV @R0, A RET 问: (1)DAA 指令有何用途? (2)若执行程序前(R0)=20H,(R1)=30H,(R7)=03H,则程序完成什么功能?程序最后的结果放在哪些单元?(10

LABEL1:

分) 答案 : (1) DAA 是对 A 中的数进行十进制数的调整。 (2) 将存放在 (22H) (21H) (20H)中的 BCD 码与 (32) (31H) (30H) 单元中的 BCD 码相加,结果调整为 BCD 码后放回(23H) (22H) (21H) (20H)单 元中,其中高地址存放高位字节。 20. SLOP: MOV R0, #20H MOV A, @R0 JZ LP1 JB ACC.7, LP2 INC 30H LP0: INC R0 DJNZ 1FH, SLOP END LP1: INC 31H SJMP LP0 LP2: INC 32H SJMP LP0 问: (1)若执行前(20H)单元中的内容为 F1H,则程序能不能走到 LP1 处? (2)执行前 1FH 单元中存放的是什么? (3)执行后 30H,31H,32H 单元中各存放的什么数据?(10 分) (1) 不能 (2)参加统计的数的个数 (3) 30H 中放正数的个数 31H 中放“0”的个数 32H 中放负数的个数 21. 已知(30H)=58H,读程序填空。 分) (6 CLR C MOV A, 30H; 寻址方式是______, (A)=______ RLC A RLC A ; (C)=_______ ADD A, #36H ; 寻址方式是_______,(A)=_______ JZ LOOP2 ; 程序转至 LOOP1 还是 LOOP2?答_______ Loop1: MOV A, 00H 直接寻址, 58H 1 立即寻址, 96H LOOP1 22. (30H)=15H,问执行完程序后,A,B,SP,32H,33H ,34H 的内容是多少?(10 分) MOV SP, #30H XCH A, 30H MOV B, A ANL A, #0FH MOV 33H, A MOV A, B PUSH A SWAP A ANL A, #15H MOV 34H, A

PUSH 答案 :

A

(A)=11H (B)=15H (SP)=32H (32H)=11H (33H)=05H (34H)=11H

23. 内部 RAM30H,31H 单元中存放两个无符号数,读程序回答问题。 (10 分) ORG 1000H START: CLR C MOV A, 30H SUBB A, 31H JC NEXT MOV A, 30H XCH A, 31H MOV 30H, A NEXT: NOP SJMP $ 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: MOV DPTR,#2000H MOV R0,#40H MOV R1, #1FH MOV R2,#00H LOOP: MOVX A,@DPTR MOV @R0, A INC DPTR INC R0 CJNE A, #00H, LOOP1 INC R2 LOOP1: DJNZ R1, LOOP MOV 60H, R2 RET 2. 已知 8 位要显示数字已存放在首地址为 30H 的片内 RAM 中,试将其转换为共阴显示字段码,存入首址为 40H 的内 RAM 中,已知 TABD 为 0-9 共阴字段码表首址。 ORG 1000H TABD:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH 答案 :MOV DPTR,#TABD MOV R2,#8 MOV R0,#30H MOV R1,#40H

LOOP:MOV A,@R0 MOVC A,@A+DPTR MOV @R1,A INC DPTR INC R0 INC R1 DJNZ R7,LOOP END 3. 试完成程序,求 Y 值,设 m, n 存在 30H 和 31H 中,Y 存在 32H 中,且 m?n 积小于 256,m/n 的商为整数。 Y= 答案 : m?n 0 m/n (m<n) (m=n) (m>n) MOV A,30H MOV B,31H CJNE A,B,LOOP1 MOV 32H,#00H LJMP BB LOOP1: JC LOOP2 DIV AB MOV 32H,A LJMP BB LOOP2: MUL AB MOV 32H,A BB: END

4. 求出片外 RAM3000H——300FH,这 16 个单元数据的平均数,并将平均值放入片外 RAM3010H 单元中,余数放入 3011H 单元中(设 16 个数的和小于 256) 。 答案 : MOV DPTR,#3000H MOV R0,10H MOV B,#00H LOOP: MOVX A,@DPTR ADD A,B MOV B, A INC DPTR DJNZ R0,LOOP MOV A,B MOV B,#16 DIV AB MOV DPTR,#3010H MOVX @DPTR,A INC DPTR MOV A, B MOVX @DPTR,A END P1 口输入,Y 存在外部 RAM2000H 单元,试按下列要求编制程序(设 X2?256) X2 ; 当 X ? 10 时 Y= 2X ; 当 10 ? X ? 100 时 X/2 ; 当 X ? 100 时 答案 :MOV A, P1 CJNE A, #10, LOOP1 5. 设 X 由

LOOP1: JNC LOOP2 MOV B, A MUL AB LJMP LOOP5 LOOP2: CJNE A, #101, LOOP3 LOOP3: JNC LOOP4 MOV B, A ADD A, B LJMP LOOP5 LOOP4: MOV B, #2 DIV A, B LOOP5: MOV DPTR, #2000H MOV @DPTR, A END 6. 片内 RAM 区中, 20 个补码表示的数存放在首地址为 30H 的单元中, 有 请编程把其中的正数送到 20H 为首址的片 外 RAM 中,负数不传送(0 不是正数) 。 答案 : MOV R0,#30H MOV R1, #20H MOV R7,#20 LOOP: MOV A,@R0 JZ NEXT JB ACC.7,NEXT MOVX @R1,A INC R1 NEXT: INC R0 DJNZ R7, LOOP END 7. 将 61H 和 60H 两个单元中的 ASCII 码转换为 16 进制数,并合并为一个字节存在 70H 单元中(60H 中放的是低位) 。 答案 : MOV A, 60H ANL A, #0FH MOV B, A MOV A, 61H ANL A, #0FH SWAP A ADD A, B MOV 70H,A END 8. 设在内部数据存储器中存放有 20 个字节数据,其起始地址为 30H,其中可能有一个字节的内容为 0AH,编写程序 找出数 0AH 的存放地址,并送入 2FH 单元,若 0AH 不存在,则将 29H 单元置 0。 MOV R0, #30 MOV R1, #20 LOOP: MOV A, @R0 CJNZ A, #0AH, LOOP1 AJMP JIESHU LOOP1: INC R0 DJNZ R1, LOOP MOV 29H, #00H AJMP LOOP4 JIESHU: MOV 2FH, R0 LOOP4: END



推荐相关:

单片机习题答案1-2

编程将求它们的,结 果存放在 30H~33H 中。 习题四 1. 写出 89C51 单片机汇编指令指令格式,并举例说明。 2. 单片机程序设计包括哪几个步骤? 3. ...


单片机C51编程_习题答案_-_Copy

单片机C51编程_习题答案_-_Copy_计算机软件及应用_IT/计算机_专业资料。1.10 一...新的增强型 51 内核 大大缩短了指令的执行周期, 例如 MAXIM 的高速单片机每...


单片机原理及接口技术(C51编程)(第2版)-习题答案 - 第6...

单片机原理及接口技术(C51编程)(第2版)-习题答案 - 第6章参考答案_从业资格...(2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。 (3)正在执行...


单片机练习题及答案01

单片机练习题及答案01_工学_高等教育_教育专区。C51 单片机习题及答案 第一章 ...(D A 程序计数器、 B 指令寄存器、 C 指令译码器、 D 存储器 5. 以下不...


《单片机》编程题题库答案

单片机原理及应用》编程题题库参考答案六 1、内部 RAM 30H 31H 单元中...程序设计思路正确可得 5 分,指令完全写对可得 10 分。若仅写对少量指令,可...


《单片机》编程题题库答案

单片机原理及应用》编程题题库参考答案六、编程(每题 10 分) 1、内部 RAM...程序设计思路正确可得 5 分,指令完全写对可得 10 分。若仅写 MOV R4,DPL ...


单片机原理及接口技术(C51编程)(第2版)-习题答案 - 第7...

单片机原理及接口技术(C51编程)(第2版)-习题答案 - 第7章习题解答_工学_...答:THx 与 TLx(x = 0,1)是计数器,其内容可以随时用指令更改,但是更改后的...


单片机程序设计题库及答案

B155 命令字格式: (2)初始化程序: MOV DPTR,#0100H MOV A,#0DH MOVX @...《单片机原理及应用》编程题题库参考答案六 1、 内部 RAM 30H 31H 单元...


单片机课后习题解答

单片机课后习题解答_理学_高等教育_教育专区。练习...2、什么是指令?什么是程序? 答:指令是规定计算机...单片机课后习题答案 43页 免费 课后习题解答 最新...


单片机C51程序设计课后习题答案(复习专用)..

单片机C51程序设计课后习题答案(复习专用).._工学_高等教育_教育专区。单片机C51...(2FFEH)=11H,ROM(2FFEH)=64H,试分别写出以下各条指令 执行后目标单元的...

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com