第三四章 指令及汇编语言程序设计部分测试题
题量:28 满分:100.0 分 显示答案
一.单选题(共10题,40.0分)
1、指令MOVX寻址空间是
A、
片外ROM
B、
片外RAM
C、
片内RAM
D、
片内ROM
正确答案: B
2、下列MCS-51指令语法及格式正确的有
A、
MOV A,DPTR
B、
RL A
C、
MOVC A,@ DPTR
D、
ADD R2,#30H
正确答案: B
3、执行指令MOVX A,﹫DPTR时,/WR,/RD脚的电平为
A、
/WR高电平,/RD低电平
B、
/WR低电平,/RD高电平
C、
/WR高电平,/RD高电平
D、
/WR低电平,/RD低电平
正确答案: A
4、对AT89C51单片机的堆栈进行出栈操作时,其操作规程是
A、
先SP加1,再弹出数据;
B、
先弹出数据,再SP加1;
C、
先SP减1,再弹出数据;
D、
先弹出数据,再SP减1;
正确答案: D
5、若51单片机初始化时未改变SP的内容,第一个入栈的单元地址为
A、
07H
B、
08H
C、
30H
D、
00H
正确答案: B
6、假定设置堆栈指针 SP 的值为 37H ,在进行子程序调用时把断点地址进行堆栈保护后, SP 的值为
A、
36H
B、
38H
C、
39H
D、
35H
正确答案: C
7、一主程序中有一句LP:SJMP LP,功能指令为等待中断,当发生中断且中断返回后,返回到( )。
A、
返回到主程序开始处
B、
返回到该句的下一条指令处
C、
返回到该句的上一条指令处
D、
返回到该句
正确答案: D
8、一中断子程序的最后一句不是RETI而是RET,中断返回后
A、
返回到主程序中ACALL或LCALL的下一句
B、
返回到主程序中响应中断时一句的下一句
C、
返回到主程序开始处
D、
返回到0000H处
正确答案: A
9、 下列计算机语言中,能被8051CPU直接识别的是 ( )
A、
自然语言
B、
高级语言如C51
C、
51汇编语言
D、
机器语言
正确答案: D
10、执行LACLL 4000H指令时, MCS-51所完成的操作是( )
A、
保护PC
B、
4000H存入PC
C、
保护现场
D、
.PC+3入栈, 4000H存入PC
正确答案: D
二.判断题(共15题,30.0分)
1、 对数据指针DPTR的内容入栈,要用指令PUSH DPTR
正确答案: 错误
2、指令MOV A,@R2格式正确
正确答案: 错误
3、指令MOV R1,R7格式正确
正确答案: 错误
4、指令 RLC R1格式正确
正确答案: 错误
5、内部寄存器Rn(n=0~7)均可作为间接寻址寄存器。
正确答案: 错误
6、指令字节数越多,执行时间越长。
正确答案: 错误
7、指令DEC DPTR格式正确
正确答案: 错误
8、指令CPL R5格式正确
正确答案: 错误
9、MCS-51指令集中无“程序结束”指令,一般在程序末尾用原地踏步指令构成死循环或在最后附加一条LJMP 0000H,由软件返回监控状态即可。
正确答案: 正确
10、移和调用指令本质上都是通过修改程序计数器PC的值实现转移。
正确答案: 正确
11、指令MOV P0,#30H和MOV 80H,#30H是相互等价的,原因是51单片机的每一个寄
存器都和内部RAM中的一个存储单元一一对应,访问内部RAM单元就像访问寄存器一样,不用进行外部三总线操作。
正确答案: 错误
12、设堆栈指针(SP)=61H,片内RAM中的(61H)=32H,(60H)=10H。执行RET指令后,(SP)=59H, (PC)=3210H
正确答案: 错误
13、、
子程序调用时自动保护断点和现场。( )
正确答案: 错误
14、主程序初始化工作完成后,通常在指令SJMP $处等待中断
正确答案: 正确
15、END表示指令执行到此结束
正确答案: 错误
END是伪指令,表示汇编程序汇编过程到此结束
三.简答题(共3题,30.0分)
1、汇编程序在延时方面比C51要更加精准。①设晶振频率fosc=24MHZ, 计算延时程序的延时时间(要有计算过程)
②如果改用高级语言(如C51)的延时函数来延时,和延时汇编程序相比,你觉得哪个延时更精准?
延时程序如下:
机器周期数
DELAY: MOV R1,#5 1
LOOP: MOV R3,#2 1
DJNZ R3,$ 2
DJNZ R1,LOOP 2
RET 2
计算该段延时程序的延时时间(要有计算过程)
正确答案:
①设晶振频率fosc=24MHZ, 计算延时程序的延时时间(要有计算过程)
②如果改用高级语言(如C51)的延时函数来延时,和延时汇编程序相比,你觉得哪个延时更精准?
延时程序如下:
机器周期数
DELAY: MOV R1,#5 1汇编指令有多少个
LOOP: MOV R3,#2 1
DJNZ R3,$ 2
DJNZ R1,LOOP 2
RET 2
计算该段延时程序的延时时间(要有计算过程):
答:①t=(1+(1+2*2+2)*5+2)*12/24MHz
= 38*0.5us=19 us =0.019ms≈0.02 ms
②汇编更精准。汇编指令和机器码一一对应,代码执行效率高。:当延时时间较短(比如微秒级时)汇编更精准.因为采用高级语言延时时,编译的结果受函数嵌套调用、优化等级等多方面因素干扰,在精准延时中误差较大,通常做法是嵌入汇编代码
2、设:A=0AAH和P1=0FFH,试编程把累加器A中低4位送入P1口低4位,P1口高4位不变
正确答案:
解: ORG 0100H
MOV R0, A ;A中内容暂存R0
ANL A, #0FH ;取出A中低4位,高4位为0
ANL P1, #0F0H ;取出P1口中高4位,低4位为0
ORL P1, A ;字节装配
MOV A, R0 ;恢复A中原数
SJMP $ ;停机
END
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论