作业(5)
姓名 班级 学号
一.问答及填空题
1、MCS-51系列单片机指令系统的寻址方式有那些方式
答:共有7种寻址方式,分别是直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、基址加变址、位寻址、相对寻址
2、8051单片机指令按功能可以分为哪几类?分别举例写出指令说明?
答:分为5类,分别是数据传送类( MOV A,30H )、算术操作类( ADD A,30H )、逻辑运算类( RLC A )、控制转移类( JZ rel )、位操作类( MOV C,30H )
3.当MCS-51执行MOVC A,@A+PC指令时,伴随着( PSEN* )控制信号有效。 4.指令格式是由( 操作码 )和( 操作数 )所组成,也可能仅由(操作码 )组成
5.在基址加变址寻址方式中,以(A )作变址寄存器,以(PC )或( DPTR )作基址寄存器。
6、8051唯一的一条16位数据传送指令为( MOV DPTR,#data16 )。 7.51单片机访问片内特殊功能寄存器(SFR)时采用的寻址方式是( 直接寻址 ) 访问特殊功能寄存器(SFR)只能用直接寻址方式
8.若(A)=98H,CY=1,则执行指令“RRC A”后累加器A的值为( CC ),CY的值为( 0 )。
9.若累加器A中的内容为30H,则执行如下指令
1000H: MOVC A,@A+PC 后,其功能是将程序存储器中地址为 ( 1031H )的单元内容送入累加器A中。
当前指令的地址是 1000H 是单字节指令 所以(PC) =1001H @A+PC=30H+1001H=1031H
10、如果(A)=34H,(R7)=ABH,执行XCH A, R7;结果(A)= (ABH), (R7)= (34H)。 二、判断指令对错
(1)MOV 28H,@R2 (错) @Ri i只能取1或0 @R2是错的 (2)DEC DPTR (错)DPTR 没有减1指令 (3)INC DPTR (对) DPTR 只有加1指令
(4)CLR R0 (错) CLR 字节清零 指令 只能针对A累加器 CLR A (5)CPL R5 (错) CPL 字节求反 指令 只能针对A累加器CPL A (6)MOV R0,R1 (错) R 寄存器之间没有传送指令
(7)PUSH DPTR (错) PUSH 和POP 指令 后面只能是直接寻址是八位地址 DPTR 是十六位寄存器 , 正确的指令如下 PUSH DPH PUSH DPL (8)MOV F0,C (对)位传送类指令必须在C和位之间传送 (9)MOV F0,Acc.3 (错) 两个位地址 没有C 10)MOVX A,@R1 (对)
(11)MOV C,30H (对) 30H 也是位地址
(12)RLC R0 (错)逻辑移位指令只能针对A累加器 RLC A 三、判断对错
1、MCS-51单片机可执行指令:MOV 28H,@R2。( 错) @Ri i只能取1或0 @R2是错的
2、判断指令的正误:MOV T0,#3CF0H;
(错 )
唯一的一条16位数据传送指令为( MOV DPTR,#data16 )
3、当MCS-51执行MOVX A,@R1指令时,伴随着WR信号有效。( 错 ) 这条是读外部RAM的指令 因此伴随着RD*信号有效 4、指令中直接给出的操作数的寻址方式称为直接寻址(错) 是立即寻址
5、MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的。(对 )
PC的长度决定程序存储器的寻址范围 ,8051单片机PC是16位的所以寻址范围是64K
四、选择题
1.当需要从MCS-51单片机程序存储器取数据时,采用的指令为( b )。 a) MOV A, @R1 b)
c)MOVX A, @ R0 d)MOVX A, @ DPTR
因为是访问程序存储器(查表指令)MOVC A, @A + DPTR 是正确的
2.MCS-51执行完MOV A,#08H后,PSW的哪一位被置位( d ) a) .C b). F0 c)OV d).P
传送类指令只影响 状态寄存器PSW 中 标志位 P
3.以下运算中对溢出标志OV没有影响或不受OV影响的运算是( a )。 (a)逻辑运算 (b)符号数加减法运算 (c)乘法运算 (d)除法运算 逻辑运算对OV没有影响
4. 若(A)=86H,(PSW)=80H,则执行RRC A指令后A=( a ) (a)C3H (b) B3H (c) 0DH (d) 56H
5.8051单片机中,将累加器A中的数送入外RAM的40H单元,可执行的指令( d )。
(a) MOV R1 ,40H (b) MOV R1 ,#40H MOVX @R1 , A MOVX R1 , A (c) MOVX 40H , A (d) MOV R1, #40H
MOVX @R1 , A
访问片外的RAM存储器写指令只能用寄存器寻址方式 因为是写 所以答案是D 6. 已知累加器A的数值为98H,它与FAH相加,相加后会影响标志位CY、AC和OV位。各个位的值是( d )。
(a) 0、0、0 (b) 1、0、1 (c) 1、1、1 (d) 1、1、0
7.如果(P0)=65H ,则当 执行下列程序后执行后(P0)=( c )
CPL P0.2 : (P0)=65H =01100101 P0.2 位求反 1变0(P0)=01100001 SETB C ;置C为1
MOV P0.4 ,C ;把 P0.4位置成1(P0)=01110001=71H (a)61H (b) 75H (c) 71H (d) 17H
五、指令分析题
1.执行下列程序段后,(P1)=( 8BH )。 MOV P1,#5DH ;( P1)=0 1 0 1 1 1 0 1
CPL P1.1 ; ( P1)=0 1 0 1 1 1 1 1 CPL P1.2 ; ( P1)=0 1 0 1 1 0 1 1 CLR P1.6 ; ( P1)=0 0 0 1 1 0 1 1 SETB P1.7 ; ( P1)=1 0 0 1 1 0 1 1 2.执行下列程序段后
MOV A,#0C5H ;(A)=1 1 0 0 0 1 0 1 RL A ;(A)= 1 0 0 0 1 0 1 1 (A)= ( 8BH ),(CY)= ( 不变 )。RL A是不带C的逻辑左移 不影响C
3.下列程序段执行后,(R0)= ( 7FH ),(7EH)= ( 00H ),
(7FH)= ( 41H )。
MOV R0,#7EH ;(R0)= ( 7EH ) MOV 7EH,#0FFH ;(7EH)= ( FFH ) MOV 7FH,#40H ;(7FH)= ( 40H ) 1NC @R0 ;(7EH)= ( 00H ) 1NC R0 ;(R0)= ( 7FH ) 1NC @R0 ;(7FH)= ( 41H )
4.已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALL SUBTRN双字节指令后,(PC)= (0345H ),(61H)=_ (25H ) (62H)= (01H )
5.假定(SP)=40H , (3FH)=30H,(40H)=60H。执行下列指令:
POP DPH (SP)=40H 把(40H)单元的内容送给DPH=60H SP-1→SP (SP)=3FH
POP DPL (SP)=3FH 把(3FH)单元的内容送给DPL=30H SP-1→SP (SP)=3EH
后,DPTR的内容为 (6030H),SP的内容是( 3EH ) 。
6.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么,设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。 (1)MOV A,#48H ;寻址方式:(立即寻址 ) (A)= (48H ) (2)ADD A,60H ;寻址方式:( 直接寻址 ) (A)= (4EH) (3)ANL A,@R0 ;寻址方式:( 寄存器间接寻址 ) (A)= (09H) 7.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?
MOV R1,#30H ;(R1)=(30H ) MOV A,#64H ;(A)=(64H ) ADD A,#47H ;(A)=(ABH) ,(CY)=( 0 ) , (AC)=( 0 ) DA A ;(A)= ( 11H ) ,(CY)=( 1 ) , (AC)= ( 1 ) MOV @R1,A ;(R1)=( 30H ) ,(30H)=( 11 ) 答:把两个十进制数 64和47 相加后送到 30H单元 8、分析下列程序的功能 PUSH ACC PUSH B POP ACC POP B
答:A累加器和B寄存器内容互换
9.写出完成如下要求的指令,但是不能改变未涉及位的内容。 (A)把ACC.3, ACC.4,ACC.5和 ACC.6清“0”。 答: ANL A,#87H (B)把累加器A的中间4位清“0”。 答: ANL A,#0C3H (C)使ACC.2和 ACC.3置“1”。 答: ORL A,#0CH
10.试编写一个程序,将内部RAM中45H单元的高4位清0,低4位置1。
答: ANL ORL 45H,#0FH 45H,#0FH