单片机课后答案第三章胡辉主编
2.答:MCS-51共有7种基本寻址方式:
?立即寻址:操作数由指令直接给出,常用于初始化操作。 立即寻址是将操作数直接存放在指令中,作为指令的一部分存放在代码段里。立即数可以是8位或16位,数据前加#以区分地址。
?直接寻址: 直接寻址是将操作数的地址直接存放在指令中。这种寻址方式的寻址范围为内部数据存贮器和特殊功能寄存器。?寄存器寻址:寄存器寻址是指操作数存放在寄存器中,并且寻址时的寄存器已隐含在指令的操作码中。寻址范围:工作寄存器、A、B、DPTR、Cy。
?寄存器间址:寄存器间址是指操作数存放在以寄存器
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
为地址的单元中,即操作数是通过寄存器间接得到的。用来存放操作数地址的寄存器称为指针。寻址范围:内部数据存储器、外部数据存储器。指针只能用R0\R1\DPTR,为与寄存器寻址区别,在寄存器前加@。?变址寻址:变址寻址是指操作数存放在变址寄存器和基址寄存器的内容相加形成的数为地址的单元中。其中累加器A作变址寄存器、程序计数器PC或寄存器DPTR作基址寄存器。寻址范围:程序存储器,只能用于读数。
?相对寻址:相对寻址是将程序计数器PC的当前值与指令第二字节给出的偏移量相加,从而形成转移的目标地址。寻址范围:只有访问程序
存储器时,出现在转移指令中,用于程序跳转。目的地址=转移指令地址+转移指令字节数+偏移量rel。
?位寻址:位寻址,是指对片内RAM中20H,2FH中的128个位地址,
以及SFR中的11个可进行位寻址的寄存器中的位地址寻址。7.答: MOV A,#15H ;将立即数15H送入累加器A,(A)=15HMOV B,#06H ;将立即数06H送入寄存器B,(B)=06HMOV R0,#09H ;将立即数09H送入寄存器R0,(R0)=09HMUL AB ;累加器A中内容与寄存器B中内容相乘,乘积结果高8位送入寄存器B,低8位送入累加器A,(A)=7EH,(B)=00HMOV B,R0 ;寄存器R0中内容送入寄存器B,(B)=09HDIV AB ;A中内容除以B中内容,商送入累加器A,余数送入寄存器B,(A)=0EH,(B)=00H
8.答: ORG 0100H
MOV DPTR,#1050H
MOVX A,@DPTR
MOV R2,A
MOV DPTR,#1060H
MOVX A,@DPTR
XCH A,R2
MOVX @DPTR,A
MOV A,R2
MOV DPTR,#1050H
MOVX @DPTR,A
END
9.答:
? MOV A,R1
MOV R0,A
? MOV 35H,30H
? MOV A,38H
MOV P1,A
? MOV DPTR,#0100H
MOVX A,@DPTR
PUSH ACC ;不可直接用MOV指令,否则只是修改堆栈指针
? MOV A,40H
MOV DPTR,#1002HMOVX @DPTR,A
? MOV DPTR,#1050HMOVX A,@DPTR
MOV DPTR,#0025H ;注意25H也是外部地址,所以也需要用间接寻址
MOVX @DPTR,A
? MOV DPTR,#1000HCLR A
MOVC A,@A+DPTRMOV 40H,A
? MOV DPTR,#2000H
CLR A
MOVC A,@A+DPTRMOV DPTR,#1000HMOVX @DPTR,A
10.答:
ORG 0100H
CLR C
MOV A,#9AH
SUBB A,#61
ADD A,#38
DA A
CPL C
JNC L1
MOV 31H,A
MOV A,#9AH
SUBB A,31H
L1: MOV 31H,A
CPL C
MOV A,#9AH
SUBB A,#50
ADD A,#68
DA A
CPL C
JNC L2
MOV 30H,A
MOV A,#9AH
SUBB A,30H
L2: MOV 30H,A
END
注意:是BCD码减法11.答:
ORG 0100H
MOV A,30H
ADD A,31H
MOV R2,A
CLR A
ADDC A,#00HMOV R3,A
CLR C
MOV A,32H
ADD A,R2
MOV R2,A
CLR A
ADDC A,R3
MOV R3,A
END
12.答:
? MOV DPTR,#1500H
MOVX A,@DPTRANL A,#0F0HMOVX @DPTR,A? MOV A,30HORL A,#0FHMOV 30H,A
? MOV A,30H
XRL A,#0F0H
MOV 30H,A
? MOV A,50H
ORL A,#0F0H
ANL A,#0F0H
MOV 50H,A
? MOV A,50H
CPL A
MOV 50H,A 只能对A进行取反操作13.答:
MOV A,@R0 ;(A)=0FH
MOV @R0,32H ;((R0))=0CH
MOV 32H,A ;(32H)=0FH
MOV R0,#31H ;(R0)=31HMOV A,@R0 ;(A)=01H ;
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目有错误,第二个30H应为31H14.答:
MOV R0,#30H ;(R0)=30HMOV A,@R0 ;(A)=33H
MOV @R0,40H ;((R0))=44HMOV 40H,A ;(40H)=33H
MOV R0,#55H ;(R0)=55H15.答:
MOV A,#11H ;将立即数11送入累加器A,(A)=11HMOV B,A ;将累加器A的内容送入寄存器B,(B)=11HADD A,B ;无符号数A+B,结果存在累加器A中,(A)=22HMOV 30H,A ;将A中数据存入内存30H中,(30H)=22HINC A ;累加器A中内容自加1,(A)=23H
MOV 31H,A ;将A中数据存入内存31H中,(31H)=23HADDC A,30H ;累加器A中内容与30H单元中内容相加,(A)=45H
SUBB A,B ;(A)=(A)-(B)=34H
MOV R0,30H ;30H内容送入寄存器R0,(R0)=22HDEC R0 ;R0内容自减1,结果放回R0,(R0)=21HADD A,@R0 ;累加器A中内容与指针R0对准单元中的数据相加,结果放回累加器A。最终结果无法确定。
16.答:
(1) MOV A,#88H ;(A)=88H
ADD A,#0BFH ;(A)=(A)+0BFH=47H
CY=1, AC=1, OV=1, P=0(2) CLR C ; CY=0
MOV A,#36H ;(A)=(36H)
SUBB A,#68H ;(A)=(A)-68H-CY=0CEH
CY=1, AC=1, OV=0, P=1(3) CLR C
MOV A,#36H
SUBB A,#68H
DEC A ;(A)=0CDH
CY=1, AC=1, OV=0, P=1(4) MOV A,#0A6H
MOV B,#38H
MUL AB ;(A)=09H,(B)=01H
CY=0, OV=1, P=0
(5) MOV A,#52H
MOV B,#09H
DIV AB ;(A)=09H,(B)=01H
CY=0, OV=0, P=0
(6) MOV A,#60H
XRL A,#60H ;(A)=00H
P=0
19.答:
ORG 0100H
MOV R3,#20H
MOV R1,#30H
MOV DPTR,#2000H
L1: MOV A,@R1
MOVX @DPTR,A
INC R1
INC DPTR
DJNZ R3,L1
END
21.答:
(SP)=68H, (67H)=0F2H, (68H)=25H, (PC)=2100H ;注意:ACALL需要PC与rel拼
装地址
24.答:
(1) ORG 0100H
MOV DPTR,#2000H
MOVX A,@DPTR
MOV B,#03H
MUL AB
MOV 20H,A
INC DPTR
MOVX A,@DPTR
MOV B,#02H
MUL AB
ADD A,20H
MOV 20H,A
END
(2) ORG 0100H
MOV DPTR,#2001H
MOVX A,@DPTR
MOV B,#02H
MUL AB
MOV 20H,A
DEC DPTR
MOVX A,@DPTR
MOV B,#05H
MUL AB
CLR C
SUBB A,20H
MOV 20H,A
END
26.答:
(1) (A)=30H,(R0)=8AH,P=0(2) (A)=A5H,(30H)=8AH,P=0(3) (A)=A8H,P=1
(4) (A)=85H,(30H)=0AAH,P=1(5) (A)=0A5H,(30H)=8AH ,P=0(6) (A)=0BAH,CY=1,P=1,OV=0 (7) (A)=2FH,CY=1,P=1,OV=1(8) (A)=0BAH,CY=0,P=1,OV=0 (9) (A)=30H,CY=1,P=0,OV=1(10) (A)=0E0H,CY=1,P=1,OV=0 (11) (A)=90H,CY=0,P=0(12) (A)=15H,CY=1,P=1
28.答:
ORG 0100H
MOV A,R3
MOV B,R4
MUL AB
MOV 30H,A
MOV 31H,B
END