第3章作业
(6)已知片内RAM中,(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。请分析下面指令,说明源操作数的寻址方式以及按顺序执行每条指令的结果。
MOV A , 40H 直接寻址方式(A)=(40H)=48H
MOV R0 , A 寄存器寻址方式(R0)=(A)=48H
MOV P1 , #F0H 立即寻址方式(P1)=0F0H
MOV @R0 , 30H 直接寻址方式(48H)=38H
MOV DPTR , #3848H 立即寻址方式(DPTR)=3848H
MOV 40H , 38H 直接寻址方式(40H)=(38H)=40H
MOV R0 , 30H 直接寻址方式(R0)=(30H)=38H
MOV P0 , R0 寄存器寻址方式(P0)=(R0)=38H
MOV 18H , #30H 立即寻址方式(18H)=30H
MOV A , @R0 寄存器间接寻址方式(A)=(38H)=40H
MOV P2 , P1 直接寻址方式(P2)=(P1)=0F0H
(7)区分下列指令有什么不同?
①MOV A , 00H和MOV A , #00H
MOV A , 00H 直接寻址,(A)=(00H)
MOV A , #00H 立即寻址,(A)=00H
②MOV A , @R0和MOVX A , @R0
MOV A , @R0 读内部RAM的内容
MOVX A , @R0 读外部RAM的内容
③MOV A , R1和MOV A , @R1
MOV A , R1 (A)=(R1)
MOV A , @R1 (A)=((R1))
④MOVX A , @R0和MOVX A , @DPTR
MOVX A , @R0 读外部RAM低256字节
MOVX A , @DPTR 读外部RAM 64K字节
⑤MOVX A , @DPTR和MOVC A , @A+DPTR
MOVX A , @DPTR 读外部RAM 64K字节
MOVC A , @A+DPTR 读程序存储器的内容,地址为(A)+(DPTR)
(8)如果PSW的RS1、RS0为0和1,那么指令MOV A , R0与指令MOV A , 08H有何不同?
解:选第1组工作寄存器组,R0的地址就是08H
2条指令的寻址方式不同,但实质一致,结果相同。
(11)写出完成下列要求的指令。
①累加器A的低2位清零,其余位不变;
②累加器A的高2位置“1”,其余位不变;
③累加器A的高4位取反,其余位不变;
④累加器A的第0位、2位、4位、6位取反,其余位不变。
解:①ANL A , #0FCH
②ORL A , #0C0H
③XRL A , #0F0H
④XRL A , #55H
(16)用位处理指令实现P1.4=P1.0∧(P1.1∨P1.2)∨/P1.3的逻辑功能。
解:MOV C,P1.0
ORL C,P1.2
ANL C,P1.0
ORL C,/P1.3
MOV P1.4,C
(17)试编写程序将片内RAM从INBUF开始存放的10个数据传送到片外RAM以OUTBUF 开始的区域。
解:MOV R0,#INBUF
MOV R1,#OUTBUF (MOV DPTR,#OUTBUF)
MOV R7,#10
LOOP: MOV A,@R0
MOVX @R1,A
INC R0
INC R1 (INC DPTR)
DJNZ R7,LOOP
END