单片机第二章习题答案x.docx
- 文档编号:24558654
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:21
- 大小:21.98KB
单片机第二章习题答案x.docx
《单片机第二章习题答案x.docx》由会员分享,可在线阅读,更多相关《单片机第二章习题答案x.docx(21页珍藏版)》请在冰豆网上搜索。
单片机第二章习题答案x
第二章习题参考答案
一、填空题:
1、一条指令的运行,先从操作数所在地址寻找到本指令有关的操作数、立即寻址、寄存器寻址、间接寻址、直接寻址、变址寻址、相对寻址、位寻址
2、直接寻址、间接寻址
3、[标号]:
操作码助记符[目的操作数],[源操作数];[注释]
4、工作寄存器R0~R7、0~7、工作寄存器R0或R1、0或1、寄存器Ri间接寻址8位存储单元00H~FFH
5、#30H是8位立即数;30H是8位直接寻址
R0工作寄存器R0;@R0寄存器R0间接寻址8位存储单元
A←R1是将工作寄存器R1中的内容送入累加器A;A←(R1)把以R1中的数为地址的存储单元的内容送入累加器A中。
DPTR是数据指针;@DPTR是以DPTR中的数为地址的存储单元的内容
6、汇编语言源程序、机器语言目标程序
7、ORG、END、EQU、DB、DATA
8、64KB、2KB、256B
二、简答题
1、
(1)立即寻址
(2)直接寻址(3)间接寻址(4)寄存器寻址
(5)变址寻址(6)相对寻址(7)直接寻址(8)寄存器寻址
(9)立即寻址(10)直接寻址
2、
(1)立即数
(2)存储单元(3)存储单元(4)立即数
3、
(1)(A)=11H
(2)(A)=22H(3)(A)=44H(4)(A)=33H
4、
(1)(R1)=11H
(2)(R3)=22H(3)(R3)=11H(4)(R3)=44H
5、
(1)(40H)=11H
(2)(40H)=33H(3)(40H)=44H(4)(40H)=66H
(5)(40H)=22H
6、
(1)(44H)=11H
(2)(44H)=66H(3)(44H)=22H
7、
(1)(A)=33H
(2)(B)=55H(3)(40H)=44H(4)(11H)=66H
(5)(33H)=66H
8、SP=61H,(SP)=11H
SP=62H,(SP)=22H
SP=63H,(SP)=33H
SP=64H,(SP)=44H
SP=65H,(SP)=55H
SP=66H,(SP)=66H
SP=67H,(SP)=77H
9、
(1)(A)=0ACHCY=0
(2)(A)=54HCY=1
(3)(A)=23HCY=1(4)(A)=0CEHCY=0
10、
(1)(A)=0DEHCY=0
(2)(A)=62HCY=1
(3)(A)=0CBHCY=0(4)(A)=0FFHCY=0
(5)(A)=4EHCY=0(6)(A)=0CAHCY=1
(7)(A)=0FFHCY=1(8)(A)=00HCY=0
11、
(1)(A)=34H(R0)=0ABH
(2)(A)=0CDH(34H)=0ABH
(3)(A)=0EFH(56H)=0ABH(4)(A)=0ADH(34H)=0CBH
(5)(A)=0BAH
12、
(1)(A)=96H
(2)(A)=91H
(3)(A)=96H(4)(A)=0A3H
(5)(D6H)=0A3H(6)(D6H)=82H
13、
(1)(A)=0DDH
(2)(A)=97H
(3)(A)=0B7H(4)(A)=0D5H
(5)(23H)=0D5H(6)(23H)=0E3H
14、
(1)(A)=0F1H
(2)(A)=10H
(3)(A)=0B6H(4)(A)=2FH
(5)(23H)=2FH(6)(23H)=55H
15、
(1)(A)=0F2H
(2)(A)=0F2H
(3)(A)=0BCH(4)(A)=3CH
16、
(1)(A)=0FEH
(2)(R0)=0FFH
(3)(00H)=0FEH(4)DPTR=0000H
(5)位地址(00H)=0(6)位地址(00H)=1
(7)CY=0(8)CY=1
17、
(1)(A)=00H
(2)(R0)=41H
(3)(40H)=0FEH(4)(30H)=0FFH
(5)CY=1(6)CY=1
(7)位地址(30H)=0(8)位地址(30H)=0
18、循环程序一般由以下四个部分组成:
1)置循环初值。
在进入循环之前,要对循环中需要使用的寄存器和存储器赋予其规定的初使值,如循环次数,循环中工作单元的初值等。
2)置循环体。
循环体是程序中需要重复执行的部分,是循环结构中的主要部分。
3)循环修改。
每执行一次循环,就对有关参数进行相应的修改,使指针指向下一数据所在的位置,为进入下一轮循环做准备。
4)循环控制。
在程序执行中需要根据循环计数器的值或其他条件,来判断控制循环是否该结束。
三、分析程序
1、(A)=22H,(R0)=40H,(30H)=40H,(40H)=22H,(50H)=11H,(60H)=33H
2、(A)=40H,(R1)=50H,(50H)=40H,R0=40H,(60H)=0FFH,(30H)=0FFH
3、(A)=44H,(R0)=44H,(33H)=22H,(44H)=44H
4、MOVR0,#72H;(R0)=72H
XCHA,R0;(A)(R0)
SWAPA;(A0=27H
XCHA,R0;(A)(R0)
结果:
(R0)=27H
5、MOVA,#11H;(A)←11H
MOVB,A;(B)←(A)
ADDA,B;(A)←(A)+(B)
MOV20H,A;(20H)←(A)
INCA;(A)←(A)+1
MOV21H,A;(21H)←(A)
ADDCA,20H;(A)←(A)+(20H)+CY
SUBBA,B;(A)←(A)-(B)
MOVR0,20H;(R0)←(20H)
DECR0;(R0)←(R0)-1
ADDA,@R0;(A)←(A)+((R0))
结果:
A=57H,B=11H,R0=21H,(21H)=23H,(20H)=22H
6、60H
7、A=6BH
8、将PSW.3、PSW.4、PSW.5置1
四、按要求写出下列指令
1、
(1)MOV30H,R0
(2)MOVA,R0
MOVR7,A
(3)MOVB,R0
(4)MOV50H,40H
(5)MOVR2,40H
(6)MOV50H,40H
(7)MOVR5,#40H
(8)MOV50H,#40H
(9)MOV@R1,#40H
(10)MOVA,R6
MOV@R2,A
2、
(1)MOVA,50H
MOVR0,#50H
MOVX@R0,A
(2)MOVA,R0
MOVR0,#50H
MOVX@R0,A
(3)MOVR0,#50H
MOVXA,@R0
MOV50H,A
(4)MOVR1,#50H
MOVXA,@R1
MOVR0,A
(5)MOVDPTR,#2000H
MOVXA,@DPTR
MOV50H,A
(6)MOVDPTR,#2000H
MOVXA,@DPTR
MOVDPTR,#3000H
MOVX@DPTR,A
3、
(1)MOVDPTR,#4000H
CLRA
MOVCA,@A+DPTR
MOV20H,A
(2)MOVDPTR,#4000H
CLRA
MOVCA,@A+DPTR
MOVP1,A
(3)MOVDPTR,#4000H
CLRA
MOVCA,@A+DPTR
MOVR0,A
(4)MOVDPTR,#4000H
CLRA
MOVCA,@A+DPTR
MOVA,#20H
MOVX@R0,A
(5)MOVDPTR,#4000H
CLRA
MOVCA,@A+DPTR
MOVDPTR,#2000H
MOVX@DPTR,A
五、编程题
1、
方法一:
XCHA,R0
XCHA,50H
XCHA,30H
方法二:
PUSH50H
MOV50H,R0
POPR0
方法三:
MOVA,R0
MOVR0,50H
MOV50H,A
2、
ORG0000H
MOVA,30H
CLRC
SUBBA,32H
MOV30H,A
MOVA,31H
SUBBA,33H
MOV31H,A
MOV20H,#00H
MOV20H.0,C
MOV32H,20H
SJMP$
END
3、
ORG0000H
MOVA,R0
MOVB,R1
MULA,B
MOVR2,A
MOVR3,B
SJMP$
END
4、
ORG0000H
MOVA,31H
MOVB,30H
DIVAB
MOV33H,A
MOV32H,B
SJMP$
END
5、
ORG0000H
MOVA,R7
MOVB,#100
DIVAB
MOVR7,A
MOVA,B
MOVB,#10
DIVAB
MOVR6,A
MOVR5,B
SJMP$
END
6、
ORG0000H
MOVR0,30H
MOVA,30H
ANLA,#0FH
MOV32H,A
MOVA,R0
ANLA,#0F0H
MOV31H,A
SJMP$
END
7、
ORGO000H
MOVC,33H
MOV00H,C
MOVC,44H
MOV33H,C
MOVC,00H
MOV44H,C
SJMP$
END
8、
ORG0000H
MOVR0,20H
MOVXA,@R0
ANLA,#0FH
SWAPA
MOVB,A
INCR0
MOVXA,@R0
ANLA,#0FH
ORLA,B
MOVR0,20H
MOVX@R0,A
SJMP$
END
9、
ORG0000H
MOVC,X
ANLC,/Y
MOVF,C
MOVC,Y
ANLC,/X
ORLC,F
MOV20H,C
ANLC,/Z
MOVF,C
MOVC,Z
ANLC,/20H
ORLC,F
MOV20H,C
SJMP$
END
10、
ORG0000H
MOVP1,#0FFH
LOOP:
JNBP1.7,L1
JNBP1.6,L3
CLRP1.0
LJMPLOOP
L1:
JNBP1.6,L2
CLRP1.2
LJMPLOOP
L2:
CLRP1.0
CLRP1.1
CLRP1.2
LJMPLOOP
L3:
CLRP1.1
LJMPLOOP
END
11、
RESULTEQU30H
ORG0000H
MOVA,R7
MOVB,#100
DIVAB
MOVRESULT,A
MOVA,B
MOVB,#10
DIVAB
MOVRESULT+1,A
MOVRESULT+2,B
SJMP$
END
12、
ORG0000H
CLRA
MOVR2,#50H
MOVDPTR,#1000H
LOOP:
MOVX@DPTR,A
INCDPTR
DJNZR2,LOOP
RET
END
13、
ORG0000H
MOVR2,#00H
MOVR3,#20H
MOVR4,#00H
MOVR5,#30H
SE1:
MOVDPL,R2
MOVDPH,R3
MOVXA,@DPTR
MOVDPL,R4
MOVDPH,R5
MOVX@DPTR,A
CJNER2,#0FFH,SE2
INCR2
INCR4
LJMPSE1
SE2:
SJMP$
END
14、
ORG0000H
MOVR0,#30H
MOVR7,#7EH
CLRC
MOVA,00H
LOOP:
ADDCA,@R0
INCR0
DJNZR7,LOOP
MOVB,#02H
MULAB
MOV31H,A
SJMP$
END
15、
ORG0000H
MOVR7,#14H
LOOP1:
MOVR6,#0FAH
LOOP2:
NOP
NOP
DJNZR6,LOOP2
DJNZR7,LOOP1
END
16、
ORG0000H
MOVR5,#1EH
LOOP3:
MOVR7,#0FAH
LOOP1:
MOVR6,#0FAH
LOOP2:
NOP
NOP
DJNZR6,LOOP2
DJNZR7,LOOP1
DJNZR5,LOOP3
SJMP$
END
17、
ORG0000H
MOVR0,#30H
MOV20H,@R0
DEC21H
LOOP:
INCR0
MOVA,@R0
CJNEA,20H,COMP
COMP:
JNCNEXT
MOV20H,A
NEXT:
DJNZ21H,LOOP
SJMP$
END
18、
ORG0000H
MOVR0,#40H
MOVR1,#08H
MOV4AH,#00H
CLRC
LOOP:
MOVA,@R0
LCALLL1
DJNZR1,LOOP
LJMPL2
L1:
ADDCA,4AH
MOV4AH,A
INCR0
RET
L2:
MOVA,4AH
MOVB,#08H
DIVAB
MOV4AH,A
END
19、
RESULTEQU20H
ORG0000H
START:
MOVA,#1AH
CALLBINT
BINT:
MOVDPTR,#ASCII
MOVB,A
SWAPA
ANLA,#0FH
MOVCA,@A+DPTR
MOVRESULT,A
MOVA,B
ANLA,#0FH
MOVCA,@A+DPTR
MOVRESULT+1,A
RET
ASCII:
DB30H,31H,32H,…,39H
DB41H,42H。
43H,…,46H
END
20、
ORG0000H
MOVDPTR,#TAB
MOVA,R2
RLA
JMP@A+DPTR
TAB:
AJMPPRG0
AJMPPRG1
…
AJMPPRGN
END
1.8051单片机的指令系统有何特点?
解:
8051的指令系统由111条指令组成。
如果按字节数分类,有49条单字节指令46条双字节指令和16条三字节指令,以单字节指令为主;如果按照指令执行时间分类,有64条单周期指令、45条双周期指令和2条四周期指令,以单周期指令为主。
8051的指令系统具有以下特点:
(1)存储效率高、执行速度快,可以进行直接地址到直接地址的数据传送,能把一个并行I/O口中的内容传送到内部RAM单元中而不必经过累加器A或工作寄存器Rn。
这样可以大大提高传送速度和缓解累加器A的瓶颈效应。
(2)用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送到累加器A中。
这为编成翻译算法提供了方便。
(3)在算术运算指令中设有乘法和除法指令
(4)指令系统中一些对I/O口进行操作的指令具有“读——修改——写”的功能。
这一功能指:
在执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2度入内部,进行修改、改变,然后重新写到锁存器中去。
这种类型指令包含所有的逻辑操作和位操作指令。
(5)8051单片机内部有一个布尔处理器,对为地址空间具有丰富的位操作指令。
布尔操作类指令有17条,包括布尔传送指令、布尔状态控制指令、布尔逻辑操作指令、布尔条件转移指令。
2.8051单片机指令系统按功能可分为几类?
具有几种寻址方式?
它们的寻址范围如何?
解:
MCS-51单片机指令系统按功能可分为5类:
(1)数据传送指令
(2)算术运算指令
(3)逻辑运算和移位指令
(4)控制转移指令
(5)位操作指令
MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:
寻址方式
使用的变量
寻址范围
立即寻址
程序存储器
直接寻址
内部RAM低128个字节;
特殊功能寄存器SFR
寄存器寻址
R0~R7;A、B、DPTR、C
寄存器间接寻址
@R0、@R1、SP
内部RAM、堆栈指针SP
@R0、@R1、@DPTR
外部RAM
变址寻址
@A+PC、@A+DPTR
程序存储器
相对寻址
PC+偏移量
程序存储器
位寻址
内部RAM低128B位寻址区
可位寻址的特殊功能寄存器位
3.访问特殊功能寄存器和外部数据存储器应采用哪种寻址方式?
解:
访问特殊功能寄存器,应采用直接寻址、位寻址方式。
访问外部数据存储器,应采用寄存器间接寻址方式。
在0~255B范围内,可用寄存器R0、R1间接寻址:
MOVXA,@R0或MOVXA,@R1
MOVX@R0,A或MOVX@R1,A
在0~64KB范围内,可用16位寄存器DPTR间接寻址:
MOVXA,@DPTR
MOVX@DPTR,A
4.“DAA”指令的作用是什么?
怎样使用?
解:
这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。
在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路自动进行的。
用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条“DAA”指令即可。
5.片内RAM20H~2FH单元中的128个位地址与直接地址00H~7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?
解:
虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围00H~7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。
位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。
OVC,bit
MOVbit,C
CLRbit
SETBbit
CPLbit
ANLC,bit
ANLC,/bit
JBbit,rel
JNBbit,rel
6.SJMP,AJMP和LJMP指令在功能上有何不同?
解:
指令的转移范围不同。
SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。
7.MOVCA,@DPTR与MOVXA,@DPTR指令有何不同?
解:
指令的转移范围不同。
SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。
8.在“MOVCA,@A+DPTR”和“MOVCA,@A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址?
使用中有何不同?
解:
使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。
使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 第二 习题 答案