第4章作业
一、填空:
1、假定(A)=85H,(R0)=30H,(30H)=0AFH.执行指令:ADD A,@R0 后,累加器A的内容为( 34H ),CY的内容为( 1 ),OV的内容为( 1 )。. 2、假定累加器A的内容30H,DPTR的内容2000H执行指令: 1000H:MOVC A,@A+DPTR
后,把程序存储器( 2030H )单元的内容送累加器A中。 3、假定(SP)=40H,(39H)=30H,(40H)=60H。执行下列指令: POP DPH ,POP DPL后,DPTR的内容为( 6030H ),SP的内容是( 38H )。 4、在调用子程序时,为保证程序调用和返回不致混乱,常采用保护现场的措施。通常在进入子程序后要用( PUSH )指令保护现场DPH、DPL、ACC等。在退出子程序之前要用POP指令依次恢复现场,用( RETI )指令返回。
5、程序状态寄存器的作用是用来保存程序运行过程中的各种状态信息。若累加器A中的数据为01110010B,则PSW中的P=( 0 )。
6、欲使P1口的低4位输出0,高4位不变,应执行一条( ANL P1,#0F0H )命令。
7、在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行( 256 )次。 8、假定(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H.执行指令: INC A INC R3 INC 30H INC @R0
后,累加器A的内容为( 100H ), R3的内容为( 10H ),30H的内容为( 100H ),40H的内容为( 01H )。 9、MCS-51的指令可分为几种不同的寻址方式。如:MOV A,20H属于( 直接寻址 )寻址方式,MOVC A,@A+DPTR 属于( 变址寻址 )寻址方式,MOV C, bit 属于( 直接寻址 ) 寻址方式。
10、假定(SP)=60H, (ACC)=30H,(B)=70H, 执行下列命令: PUSH ACC PUSH B
后,SP的内容为( 62H ), 61H的单元的内容为( 30H )。 11、MOVX A,@DPTR指令中源操作数的寻址方式是(间接寻址 ) 12、执行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 13、MOV C,20H.0 的操作方式是( 位寻址 )。 14、对程序存储器的读操作,只能用( 查表指令 )。 15、下列指令中错误的有( B )。 A、CLR A
B、MOVC @DPTR,A C、MOV P1,A D、JBC TF0,LOOP
16、如果(P0)=65H ,则当
CPL P0.2 SETB C
MOV P0.4 ,C
执行后(P0)=( 71H ) 17、8051单片机中,将累加器A中的数送入片外RAM的40H单元,可执行的指令(MOV DPTR, #0040H MOVX @DPTR, A)
18、已知累加器A的数值为98H,它与0FAH相加,相加后会影响标志位CY、AC和OV位。各个位的值是(CY=1,AC=1,OV=1 )。
19、执行如下三条指令后,30H单元的内容是( 40H ) 。 M O V R 1,#30H M O V 40H,#0 E H M O V @R 1,40H 20、要用传送指令访问MCS-51片外RAM,它的指令操作码助记符是(MOVX A,@DPTR ) 21、JNZ REL指令的寻址方式是( 相对寻址 )
22、在程序运行过程中执行PC=0200H的一条指令LCALL addr16,该调用子程序的返回指令是( B )。
A、 RETI B、RET C、END D、LJMP 23、下列指令中错误的是( D )。
A、MOV A,R4 B、MOV 20H,R4 C 、MOV R4,30H D、MOV ﹫R4,R3 24、下列指令不是变址寻址方式的是( C )。
A、JMP @A+DPTR B、MOVC A,@A+PC C、MOVX A,@DPTR D、MOVC A,@A+DPTR 二、阅读并分析程序结果
1、阅读下列程序,分析其功能。 MOV R7,#5 MOV A,#30H
MOV DPTR,#2000H
LOOP: MOVX @DPTR,A INC A INC DPTR
DJNZ R7,LOOP SJMP $
功能:把片内RAM30H开始的5个单元的内容移到片外RAM 2000H开始的5个单元 2、以下程序段执行后,(40H)= 5EH ,(41H)= F1H 。 CLR C
MOV A,#56H SUBB A,#0F8H MOV 40H,A MOV A,#78H SUBB A,#0EH MOV 41H,A
3、试说明下段程序中每条指令的作用,并分析指令执行完成后,R0中的内容是什么? MOV R0,#0A7H
XCH A,R0 SWAP A XCH A,R0 作用:把A7H 付给R0;把A与R0中的内容互换;把A中的内容高四位与低四位互换; 把A与R0中的内容互换;R0中的内容是7AH。
4、说明下段程序中每条指令的作用,并写出执行下列指令序列后40H单元中的内容: MOV R0,#60H MOV 60H,#80H MOV 40H,@R0
作用:把60H付给R0;把80H付给60H;把((R0))中的内容给40H;40H中的内容是80H
5、(A)=3BH,执行ANL A,#9EH指令后,(A)=1AH (CY)=0 (不受影响)
6、如果(DPTR)=5678H,(SP)=42H,(3FH)=12H ,(40H)=34H,(41H)=50H,(42H)=80H,则执行下列指令后: POP DPH POP DPL RET 则:(DPH)=80H____;(DPL)=__50H___;(SP)= 40H ;(DPTR)= 8050H ;(42H)= 80H 。
7、执行下列程序段中第一条指令后: (P1.7)=( 0 ), (P1.3)=( 0 )(P1.2)=( 0 ); 执行第二条指令后: (P1.5)=( 1 ),(P1.4)=( 1 ),(P1.3)=( 1 )。 ANL P1,#73H ORL P1,#38H
8、已知(R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H,分析每条指令的功能,并写出执行如下程序段后( 40H ) =45H MOV @R0 , #11H MOV A , R2 ADD A , 20H MOV PSW , #80H SUBB A , P0 XRL A , #45H MOV 40H , A
9、已知 ( R0 )=20H, (20H )=36H, (21H) =17H, (36H) =34H, 分析每条指令的功能,并写出执行如下程序段后(R0)=36H(R2)=d6H MOV A , @R0 MOV R0 , A MOV A , @R0 ADD A , 21H ORL A , #21H RL A MOV R2 , A RET
10、执行下面一段程序; MOV SP, #60H MOV A, #10H MOV B, #01H PUSH A PUSH B POP A POP B 则(A)= 01H(B)=10H
11、设在31H单元存有#23H,执行下面程序: MOV A, 31H ANL A, #0FH MOV 41H, A MOV A, 31H ANL A, #0F0H SWAP A
MOV 42H, A 则(41H)=03H(42H)=02H
12、分析说明下列程序,说明划线语句功能,并说明程序所实现的功能: ORG 0
MOV DPTR,#1000H 功能:使DPTR指向片外的1000H单元 MOV R0,#255 CLR A
LP:MOVX @DPTR,A 把DPTR所指的单元内容清零 INC DPTR
DJNZ R0,LP 判断R0-1是否为零,不为零则跳到LP处执行程序。为零则执行下一条指令
JMP $ END
功能:把片外1000H开始的256个单元清零 13、设在MCS-51单片机片内RAM中,(30H)=40H,(40H)=52H,(52H)=60H,P1=0CFH, (60H)=20H,当下列程序执行完毕后,各单元的内容分别为多少?请填入给定的各个寄存器及片内单元中。 MOV RO,#30H MOV A,@RO MOV R1,A MOV B,@R1 MOV @R1,A MOV P3,P1 MOV 60H,@R0
(A)= 40H (B)= 52H (R0)= 30H (R1)= 40H (P1)= 0CFH (P3)= 0CFH (20H)= 00H (52H)= 60H (40H)= 40H (60H)= 40H