1、第三章 指令系统 习题参考答案(三) 1、 80C51系列单片机的指令系统有何特点? 答:80c51的指令系统的特点有:(1)执行时间短。一个机器周期指令有64条,2个时间周期指令有45条,而4个机器周期指令仅有2条(即乘法和除法指令);(2)指令编码字节少。单字节的指令有49条,双字节的指令有45条,三字节的指令仅有17条;(3)位操作指令丰富。这是80c51单片机面向控制特点的重要保证。 2、 80C51单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器空间如何? 答:(1)寄存器寻址。 对应的寄存器有: ·工作寄存器R0~R7
2、 ·累加器A ·寄存器B ·数据指针DPTR (2)直接寻址。 对应的存储空间有: ·片内RAM低128字节(以地址形式表示) ·SFR(以地址形式或SFR符号形式表示,但符号将转换为相应的SFR地址) (3)寄存器间接寻址。 对应的空间有: ·片内RAM(采用@R0,@R1或SP); ·片外RAM(采用@R0,@R1或@DPTR) (4)变址寻址。 对应的空间有: ·ROM空间(采用@A+DPTR
3、@A+PC) (5)相对寻址。 ·ROM空间(采用JC rel) (6)位寻址。 ·片内RAM的20H~2FH单元的128可寻址位 ·SFR的可寻址位 3、 访问特殊功寄存器SFR可以采用哪些寻址方式? 答:直接寻址、位寻址 4、 访问内部RAM单元可以采用哪些寻址方式? 答:寄存器寻址、直接寻址、寄存器间接寻址 5、 访问外部RAM单元可以采用哪些寻址方式? 答:寄存器间接寻址 6、 访问外部程序存储器可以采用哪些寻址方式? 答:立即寻址、变址寻址、相对寻址 7、 为什么说布尔处理功能是80C51单片机
4、的重要特点? 答:布尔处理功能是MCS-51系列单片机的一个重要特征,在物理结构上,MCS-51单片机有一个布尔(位)处理器,对位地址空间具有丰富的位操作指令。它在进行位操作时,以进位标志做为位累加器。 8、 对于80C52单片机几个内部RAM还存在高128字节,应采用何种方式访问? 答:对片外RAM进行访问时,需要以下四条指令进行: 读: (1) MOVX A,@DPTR; (2) MOVX A,@Ri; 写: (3) MOVX @DPTR,A; (4) MOVX @ Ri,A; 9、 试根据指令编码表写出下列指令的机器码。 (1) MOV A
5、 ,#88H (2) MOV R3, 50H (3) MOV P1.1, #55H (4) ADD A, @R1 (5) SETB 12H 答: 指令对应的机器码为 (1) 74H (2)ABH (3) 75H (4) 27H 10、 完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指令序列。 (1) 将R0的内容传送到R1; (2) 内部RAM单元60睥内容传送到寄存器R2; (3) 外部RAM单元1000H的内容传送到内部RAM单元60H; (4) 外部RAM单元100
6、0H的内容传送到寄存器R2; (5) 外部RAM单元 10000H的内容传送到外部RAM单元2000H。 答:(1)MOV A, R0; MOV R1,A; (2) MOV R2,60H; (3)MOV DPTR,#1000H; MOVX A,@DPTR; MOV 60H,A; (4)MOV DPTR,#1000H; MOVX A,@DPTR; MOV R2
7、A; (5)MOV DPTR,#1000H; MOVX A,@DPTR; MOV R0,#2000H; MOVX @R0,A; 11、 若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。试 分析执行下列程序段后上述各单元内容的变化。 答:MOVX A,@R1 ;A=60H MOV @R1,40H ; (30H)=08H MOV 40H,A
8、 ;(40H)=40H MOV R1,#7FH ;(R1)=7FH 即最终结果为 (R1)=7FH, (40H)=40H, (30H)=08H,( A)=60H 12、若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20)=0FH,试指出CY、AC和OV的值。 答: (1)MOV A, @R0 ; (A)=2CH, R0=40H (2)MOV 40H,#0FH ; (40H)=0FH (3)ADD A,R4
9、 ; (A)=22H, (CY)=1, (AC)=1, (OV)=0 (4)SWAP A ; (A)=8EH (5)DEC @R1 ; (20H)=0EH, (R1)=20H (6)XCHD A, @R1 ; (A)=EFH, (20H)=08H, (R1)=20H 13、若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H和42H单元中的内容各为多少? 答: MOV A ,50H ; (A)=40H
10、 MOV R0, A ; (R0)=40H MOV A,#00H ; (A)=00H MOV @R0, A ; (40H)=00H MOV A ,3BH ; (A)=(3BH) MOV 41H, A ; (41H)=(3BH) MOV 42H, 41H ; (42H)=(3BH) 即最终结果为 (R0)
11、40H , (40H)=00H , (A)=(3BH) ,(41H)=(3BH) , (42H)=(3BH) 14、试用位操作指令实现下列逻辑操作。要求不得改变未涉及位的内容。 (1)使ACC。0置位; (2)清除累加器高4位; (3)清除ACC.3, ACC.4, ACC.5, ACC.6. 答:(1) CLR ACC.0 ; 使ACC.0置位 (2) CLR ACC.7 CLR ACC.6 CLR ACC.5 CLR ACC.4 (3) CLR ACC.3
12、 CLR ACC.4 CLR ACC.5 CLR ACC.6 15、试编写程序,将内部RAM的20H、21H和22H三个连续单元的内容存入2FH、2EH和2DH单元。 答: MOV A,20H MOV R0,#2FH LOOP: MOV @R0,A INC A DEC R0 CJNE R0,#2CH, LOOP SJMP $ 16、试编写程序,完
13、成两个16位数的减法:F4DH—2B4EH,结果存入内部RAM的30H和31H,31H单元存差的高8位,30H单元存差的低8位 答: CLR C MOV A, #4DH MOV R0,#4EH SUBB A,R0 MOV 30H, R0 MOV A,#7FH MOV R0,#2BH SUBB A,R0 MOV 31H, R0 17、试编写程序,将R1中的低4位数与R2中的高4位数合并成一个8位数,并将其存入在R1中。 答:MOV A, R
14、2 MOV 40H,R1 MOV R1,#40H XCHD A,@R1 MOV R1,A 18、试编写程序,将内部RAM的20H和21H单元的两个无符号数相乘,结果存放在R2、R3中,R2中存放高8位,R3存放低8位。 答:MOV A,20H MOV B,21H MUL AB MOV R2, B MOV R3, A 19、若(CY)=1,(P1)=10100011B,(P3)=01101100B。试指出执行下列程序段后,CY、P
15、1口及P3口内容的变化情况。 答:MOV P1.3, C MOV P1.4, C ; (P1)=10111011B MOV C, P1.6 ; (CY)=0 MOV P3.6, C MOV C, P1.0 ; (CY)=1 MOV P3.4, C ; (P2)=00111100B 即最终为 (CY)=1 ,(P1)=10111011B ,(P2)=00111
16、100B 20、若单片机的主频为12MHz,试用循环转移指令编写延时20ms的延时子程序,并说明这种软件延时方式的优缺点。 答:分析:一个机器周期=12个晶振周期=1us 利用一对内外循环,运行20000个机器周期,从而延迟20ms。 汇编程序如下: LOOP: MOV R1,#00H INC R1 NEXT: MOV R0,#00H INC R0 NOP CJNE R0,#13H , NEXT NOP CJNE R1,#C8H,LOOP SJMP $ 5






