单片机原理及应用课后习题答案__张兰红(4)

2019-03-27 16:20

http://www.wkfxw.com 文库分享网

内低 128

个字节有直接寻址、位寻址、间接寻址,高 128 字节有间接寻址。 3.3 要访问片外 RAM,可有哪几种寻址方式 ? 解:访问片外 RAM 有寄存器间接寻址方式。 3.4 要访问 ROM,可有哪几种寻址方式 ?

解:要访问 ROM 有直接寻址、变址寻址、相对寻址

3.5 试分别对 51 子系列和 52 子系列,说明 MOV A,direct 指令与 MOV A,@Rj 指令的访问范围。

解:MOV A,direct 指令中 direct 对于 51 子系列的访问范围为内 RAM 中的低 128B 单元,从 00H

到 7FH,访问 SFR 的范围是从 80H 到 FFH;52 子系列的访问范围与 51 子系列的访问范围相同。

MOV A,@Rj 指令对于 51 子系列的访问范围为内 RAM 的 128B 单元,从 00H 到 7FH,对于

52 子系列的访问范围为片内 RAM 从 00H 到 FFH。

3.6 传送指令中有哪几小类是访问 RAM 的?哪几个类是访问 ROM 的,CPU 访问 ROM 多不多?

什么时候需要访问 ROM?

解: 访问 RAM 的有:以累加器 A 为一方的传送指令,不以累加器为一方的传送指令,用立即数置

数的指令,访问片外 RAM 的传送指令, 进栈出栈指令,交换指令。 访问 ROM 的有: 基址寄存器加变址寄存器间址指令

23

因为 ROM 是只读存储器,用作程序存储器,已事先存入各种程序,常数、表格等,CPU 访问

ROM 不多,当执行程序,程序转移以及用户访问时需要访问 ROM。 3.7 区分下列指令的不同功能: ⑴ MOV A ,#24H 与 MOV A,24H ⑵ MOV A ,R0 与 MOV A, @R0 ⑶ MOV A, @R0 与 MOVX A,@R0

解:⑴ 前者是将立即数 24H 送入 A 中,后者是将 24H 单元的内容送入 A 中. (2) 前者将 R0 中的内容送入 A 中,后者是将以R0 中的内容为地址所在单元的内容送入 A 中.

(3) 前者是将片内 RAM 以 R0 中的内容为地址所在单元的内容送入 A 中,后者是将片外 RAM

的以 R0 中的内容为地址所在单元的内容送入 A 中.

3.8 设片内 RAM30H 单元的内容为 40H,设片内 RAM40H 单元的内容为 10H,片内 RAM10H 单

元的内容为 00H,(P1)=0CAH,请写出下列指令执行后的结果。 MOV R0, #30H MOV A, @R0 MOV R1, A MOV B , @R1 MOV @R0 , P1

http://www.wkfxw.com 文库分享网

MOV P3 , P1 MOV 10H ,#20H MOV 30H, 10H

解: MOV R0, #30H ; R0←30H MOV A, @R0 ; A←40H MOV R1, A ; R1←40H MOV B , @R1 ; B←10H

MOV @R0 , P1 ; 30H ←0CAH MOV P3 , P1 ; P3←0CAH MOV 10H ,#20H ; 10H←20H MOV 30H, 10H ; 30H←20H

3.9 已知:(A)=35H,(R0)=6FH,(P1)=(90H)=FCH,(SP)=C0H,试写出下列指令的执行结果。 (1) MOV R6,A (2) MOV @R0,A (3) MOV A,#90H (4) MOV A,90H (5) MOV 80H,#81H (6) MOVX @R0,A (7) PUSH A (8) SWAP A (9) XCH A,R0

24

解: (1)MOV R6, A ; (R6)=35H (2)MOV @R0, A ; (6FH)=35H (3)MOV A, #90H ; (A)=90H (4)MOV A, 90H ; (A)=FCH (5)MOV 80H, #81H; (80H)=81H (6)MOV @R0, A ; (6FH)=35H

(7)PUSH A ; (SP)=C1H,(C1H)=35H (8)SWAP A ; (A)=53H

(9)XCH A, R0 ; (A)=6FH,(R0)=35H

3.10 已知:(A )=02H,(R 1)=7FH,(D PTR)=2FFCH,片 内 RAM(7FH)=70H,片 外 RAM(2FFEH)=11H,

ROM(2FFEH)=64H,试分别写出下列指令的执行结果。 (1) MOV A ,@R1 (2) MOVX @DPTR,A (3) MOVC A,@A+DPTR (4) XCHD A,@R1

解:(1) (A)=70H (2) 片外 RAM(2FFCH)=02H

(3) (A)=64H (4) (A)=00H 片内 RAM(7FH)=72H 3.11 已知:(A)=78H,(R1)=78H,(B)=04H,C=1,片内 RAM(78H)=DDH,片内 RAM(80H)=6CH, 试分别写出下列指令的执行结果(如涉及标志位,也要写出)。 (1) ADD A ,@R1 (2) ADDC A,78H

http://www.wkfxw.com 文库分享网

(3) SUBB A,#77H (4) INC R1 (5) DEC 78H (6) MUL AB (7) DIV AB

(8) ANL 78H,#78H (9) ORL A,#OFH (10) XRL 80H,A

解:(1)(A)=55H (PSW)=11×××1×0 (2)(A)=56H (PSW)=11×××1×0 (3)(A)=00H (PSW)=00×××0×0

25

(4)(R1)=79H (5)(78H)=DCH

(6)(BA)=01E0H, C=1 OV=1 (7)(B)=00H,(A)=1EH (8)(78H)=58H (9)(A)=7FH (10)(80H)=14H

3.12 请对下列各组数分别计算“与”、“或”、“异或”的结果: (1) 10011010B 和 00001111B (2) 11010011B 和 01011010B (3) 11001100B 和 00110011B (4) 10101010B 和 11111111B

解:(1)结果分别为 00001010B 10011111B 10010101B (2)结果分别为 01010010B 11011011B 10001001B (3)结果分别为 00000000B 11111111B 11111111B (4)结果分别为 10101010B 11111111B 01010101B

3.13 为达到下列要求,请说明应采用何种逻辑操作,采用什么操作数,要求不得改变各未涉及位的 内容。

(1) 使累加器的最低位置1 (2) 清除累加器的高四位 (3) 使 A.2 和 A .3 置 1。

(4) 清除 A.3、A .4、 A.5、A .6

解:(1)逻辑或操作 操作数:00000001B (2)逻辑与操作 操作数:00001111B (3)逻辑或操作 操作数:00001100B (4)逻辑与操作 操作数:10000111B

3.14 写出下列各条指令的机器码,并逐条写出依次执行每一条指令后的结果和 PSW 的内容:

(1) CLR A

(2) MOV A, #9BH (3) MOV B,#0AFH

http://www.wkfxw.com 文库分享网

26

(4) ADD A,B

解: (1)机器码 E4H ;(A)=0 (2)机器码 749BH ;(A)=9BH (3)机器码 75F0AFH ;(A)=AFH

(4)机器码 25F0H ;(A)=4AH;(PSW)=11XXX1X1B

3.15 要选用工作寄存器 3 组,请采用三种不同的指令实现之。 解: (1) SETB PSW.4 SETB PSW.3

(2) ORL PSW,#18H (3) MOV PSW,#18H

3.16 列举三种能使累加器 A 内容清零的指令,并比较其优缺、点。 解: (1) ANL A,#00H (2) MOV A,#00H (3) CLR A

3.17 回答问题:

(1) 算术操作类指令对标志位的影响。 (2) 逻辑操作类指令对字节内容的修改。

解:(1)算术操作指令的执行将影响特殊功能寄存器中状态寄存器 PSW 的 3 个标志位: C:(PSW.7)进位标志;Ac:(PSW.6)辅助进位标志;OV:(PSW.2)辅助进位标志 3 个标志除特别指出外,指令服从以下规则:

① 操作结果在最高位有进位输出(加法时)或借位输入(减法时),C=1;否则;C=0。 ② 操作结果的低 4 位有进位输出( 加法时)或 有向高4 位的借位( 减法时),A c=1;否 则;A c=0。

③ 溢出标志OV满足逻辑关系式OV=C6⊕ C 7; C6 为加法时,累加器 A 的 D6 位向 D7 产生的进位,或减法时累加器 A 的 D6 位向 D7 产生的

借位,有进位或借位时,C6=1;

C7 为加法时,累加器 A 的 D7 位向更高位产生的进位,或减法时累加器 A 的 D7 位向更高位产

生的借位,有进位或借位时,C7=1;

OV 标志位常用于加减指令对带符号数做补码加、减运算时,(OV)=1 表示加、减运算的结果超出

了 A 所能表示的带符号数的范围(128~ 127)。

(2)①若要对内部的某几位清零,而其它位保持不变,可以选用 ANL direct,#data 指令,在需

27

要清零的位上对应的 data 的相应位清零。

② 若要对内部的某几位置 1 可以选用ORL direct,#data 指令,在需要置 1 的位上对应的 data

的相应位置 1。

③ 若要对内部的某几位求反可以选用XRL direct,#data 指令,在需要求反的位上对应的 data

http://www.wkfxw.com 文库分享网

的相应位置 1。若要对内部 RAM 某单元求反可以选用 XRL direct,#0FFH。

3.18 要将片内 RAM 0FH 单元的内容传送去专用寄存器 B,对 0FH 单元的寻址可有三种方法:

(1) R 寻址; (2) R 间址;

(3) Direct 寻址;

请分别编写出相应程序,比较其字节数、机器周期数和优缺点。 解: (1) MOV R0,0FH MOV B,R0

(2) MOV @R0,0FH MOV B,@R0 (3) MOV B,0FH

(1) 占四个字节数,四个机器周期数;(2) 占四个字节数,四个机器周期数;(3) 占三个字节

数,三个机器周期数;所以第三种方法最好。

3.19 设(R0)=7EH, (DPTR)=10FEH,片 内 RAM 7EH 单元的内容为 0FFH;7F单元的内容为 38H,

试为下列程序的每条指令注释其执行结果。 INC @R0 INC R0 INC @R0 INC DPTR INC DPTR INC DPTR

解: INC @R0;将 7EH 单元的内容加1,即 7EH←00H INC R0 ;R0←7FH INC @R0 ;7FH←39H INC DPTR ;DPTR←10FFH INC DPTR ;DPTR←1100H INC DPTR ;DPTR←1101H

28

3.20 试编程:引用“与”运算,判断某 8 位二进制数是奇数还是偶数

解: 设该 8 位二进制数放在累加器 A 中,如果是奇数,将 F0 标志置 1,如果是偶数,将 F0 标志 清 0。 ORG 2000H

START:MOV R0,A ANL A,#01H JZ LOOP MOV A,R0 SETB PSW.5 SJMP HERE

LOOP: MOV A,R0 CLR PSW.5


单片机原理及应用课后习题答案__张兰红(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电话英语-情景会话

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: