第三章 MCS-51单片机指令系统习题含答案
3.1 判断下列说法是否正确。
(A)立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。(√) (B)指令周期是执行一条指令的时间。 (√) (C)指令中直接给出的操作数称为直接寻址。 (×) 3.2在基址加变址寻址方式中,以(A)作变址寄存器,以(DPTR)或(PC)作基址寄存器 3.3 MCS-51共有哪几种寻址方式?各有什么特点? 答: 共有7种寻址方式。
(1)寄存器寻址方式 操作数在寄存器中,因此指定了寄存器就能得到操作数。 (2)直接寻址方式 指令中操作数直接以单元地址的形式给出,该单元地址中的内容就是操作数。
(3)寄存器间接寻址方式 寄存器中存放的是操作数的地址,即先从寄存器中找到操作数的地址,再按该地址找到操作数。
(4)立即寻址方式 操作数在指令中直接给出,但需在操作数前面加前缀标志“#”。 (5)基址寄存器加变址寄存器间接寻址方式 以DPTR或PC作基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为操作数的地址,以达到访问数据表格的目的。
(6)位寻址方式 位寻址指令中可以直接使用位地址。
(7)相对寻址方式 在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,即把PC的当前值加上偏移量就构成了程序转移的目的地址。 3.4 MCS-51指令按功能可以分为哪几类?
答:MCS-51指令系统按功能分为:数据传送类(28条);算术操作类(24条);逻辑运算类(25条);控制转移类(17条);位操作类(17条)。
3.5 指令格式是由(操作码)和(操作数)所组成,也可能仅由(操作码)组成。 3.6 假定累加器A中的内容为30H,执行指令:
1000H:MOVC A,@A+PC
后,把程序存储器(1031H)单元的内容送入累加器中
3.7 在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的(地址)。
3.8 该程序段的功能是什么?
PUSH A PUSH B POP A POP B
答:功能是A、B内容互换
3.9 已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下列程序执行后: POP DPH POP DPL
MOV DPTR,#4000H RL A MOV B,A
MOVC A,@A+DPTR PUSH A MOV A,B INC A
MOVC A,@A+DPTR PUSH A RET
ORG 4000H
DB 10H,80H,30H,50H,30H,50H
A=50H SP=50H (51H)=30H (52H)=50H PC=5030H 3.10 写出完成如下要求的指令,但是不能改变未涉及位的内容。 (A)把Acc.3,Acc.4,Acc.5和Acc.6清0。
解:ANL A,#87H (B)把累加器A的中间4位清0。
解:ANL A,#C3H (C)使Acc.2和Acc.3置1。
解:ORL A,#0CH
3.11 假定A=83H,(R0)=17H,(17H)=34H,执行以下指令:
ANL A,#17H
ORL 17H,A XRL A,@R0 CPL A
后,A的内容为(0CBH)
3.12 假设A=55H,R3=0AAH,在执行指令后ANL A,R3后, A=(00H), R3=(0AAH) 3.13 如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下
列指令后:
POP DPH POP DPL POP SP
则:DPH=(3CH) DPL=(5FH) SP=(4FH) 3.14 假定SP=60H,A=30H,B=70H,执行下列指令:
PUSH A PUSH B
后,SP的内容为(62H),61H单元的内容为(30H),62H单元的内容为(70H)。
3.15 下列程序段经汇编后,从1000H开始的各有关存储单元的内容将是什么? ORG 1000H TAB1 EQU 1234H TAB2 EQU 3000H DB “START”
DW TAB1,TAB2,70H