天津大学出版社的单片机课后习题答案Word格式文档下载.docx

上传人:b****1 文档编号:3936510 上传时间:2023-05-02 格式:DOCX 页数:34 大小:27.31KB
下载 相关 举报
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第1页
第1页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第2页
第2页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第3页
第3页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第4页
第4页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第5页
第5页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第6页
第6页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第7页
第7页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第8页
第8页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第9页
第9页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第10页
第10页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第11页
第11页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第12页
第12页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第13页
第13页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第14页
第14页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第15页
第15页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第16页
第16页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第17页
第17页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第18页
第18页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第19页
第19页 / 共34页
天津大学出版社的单片机课后习题答案Word格式文档下载.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

天津大学出版社的单片机课后习题答案Word格式文档下载.docx

《天津大学出版社的单片机课后习题答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《天津大学出版社的单片机课后习题答案Word格式文档下载.docx(34页珍藏版)》请在冰点文库上搜索。

天津大学出版社的单片机课后习题答案Word格式文档下载.docx

MCS-51的寻址方式及特点

MCS-51的寻址方式有七种:

1.直接寻址:

指令中直接给出操作数所在的单元地址或位地址 

P68

2.立即寻址:

在指令中紧跟在操作码之后的字节是操作数 

P69

3.寄存器寻址:

操作数在指令中给出的寄存器内 

4.寄存器间接寻址:

指令中指定的寄存器内存的是操作数的地址 

P70

5.变址寻址:

指令中给出由基址加变址形成的16位地址作为操作数的地址 

P71

6.相对寻址:

指令中给出相对偏移量,该相对偏移量与PC当前值求和得到转移地址 

P72

7.位寻址:

指令中给出的位地址或位寄存器里存是所寻的位操作数 

3-2 

MCS-51的指令按功能分类及各类的作用

MCS-51的指令按功能分5类:

1.数据传送指令:

主要用于数据的传送与交换和栈操作。

P74

2.算术运算指令:

主要用来作算术四则运算、增量、减量及二—十进制调整。

P81

3.逻辑运算指令:

主要用来作“与”、“或”、“异或”、“清除”“求反”及“左右移位”等逻辑运算。

P88

4.位操作指令:

主要用来作“与”、“或”、“清除”、“置位”“求反”等布尔操作及“位传送”操作。

P90

5.控制转移指令:

主要用于改变程序计数器PC的值, 

以控制程序执行的走向,有转移、调用及返回操作.P91

3-3 

变址寻址和相对寻址中偏移量的异同点

变址寻址:

@A+DPTR 

基址:

DPTR, 

变址:

A

@A+PC 

PC当前值, 

中为8位二进制无符号数偏移量(A)∈[0,255] 

即[00H,0FFH]

相对寻址:

相对偏移量为8位二进制带符号数的补码

rel∈[-128,+127]

[rel]补码∈[00H,0FFH]

相同点:

偏移量∈[00H,0FFH]

不同点:

变址寻址中偏移量为8位二进制无符号数;

相对寻址中偏移量为8位二进制带符号数的补码

3-4 

指出下面每条指令的寻址方式:

MOVA,#30H 

–寄存器、立即–30H立即数

MOVC,30H 

–寄存器、位 

–30H 

位地址

MOVXA,@DPTR 

–寄存器、间接

jC 

LAB1 

–相对

MOV 

30H,@R1 

–直接、间接 

字节地址

MOV30H,R5 

–直接、寄存器 

–30H字节地址

MOVCA,@A+PC 

–寄存器、变址

sjmpLAB2 

3-5 

运行下列程序后各单元及A、PSW的内容

(1)

1.

MOVA,#2 

;

(A)=02H 

00000001(psw)

MOVR1,#30H 

(R1)=30H 

00000001

MOV@R1,A 

((R1))=(30H)=02H 

MOV35H,R1 

(35H)=30H 

XCHA,R1 

(A)=30H,(R1)=02H 

00000000

2.

MOVA,#0F5H 

(A)=0F5H 

00000000

MOV30H,#9BH 

(30H)=9BH

MOVR0,#30H 

(R0)=30H

ADDA,#28H 

(A)=1DH 

10000000

ADDCA,@R0 

(A)=0B9H 

01000001

3.

CLRC 

(CY)=0

MOV40H,#7AH 

(40H)=7AH

MOVA,#92H 

(A)=92H 

00000001

MOVR0,#40H 

(R0)=40H

SUBBA,@R0 

(A)=92H-7AH-0=18H,(PSW)=44H

4.

MOVA,#79H 

(A)=79H 

MOV30H,#89H 

(30H)=89H

ADDA,30H 

(A)=02H 

11000001

DAA 

(A)=68H 

10000001

SWAP 

(A)=86H 

3-6 

写出能完成下列数据传送的指令

⑴ R1内容传送到R0 

MOVA,R1;

MOVR0,A

(2)内部RAM25H单元内容送到35H单元 

35H,25H或MOVA,25H;

MOV35H,A 

MOV35H,25H

(3)内部RAM25H单元内容送到P1口

① MOVA,25H;

MOVP1,A 

② MOVP1,25H 

③ MOV90H,25H

(4)内部RAM40H单元内容送外部RAM2005H单元

MOVA,40H;

MOVDPTR,#2005H;

MOVX@DPTR,A

(5)外部RAM3000H单元内容送内部RAM25H单元

MOVDPTR,#3000H;

MOVXA,@DPTR;

MOV25H,A

(6)外部ROM1000H单元内容送内部RAM35H单元

MOVDPTR,#1000H;

CLRA;

MOVCA,@A+DPTR;

(7)外部ROM4000H单元内容送外部RAM4000H单元

MOVDPTR,#4000H;

CLRA;

(8)外部RAM1000H单元内容送SP堆栈指针

MOVXA,@DPTR;

MOVSP,A

3-7 

BCD码减法,求7954H-4157H=3797H。

算法1:

 

999AH-4157H=5843H

5843H+7954H并调整

ORG0000H

BCDS:

 MOVA,#9AH

CLRC

SUBBA,#57H

30H,A

MOVA,#99H

SUBBA,#41H

MOV31H,A

MOVA,#54H

ADDA,30H

DA 

MOV20H,A

A,#79H

ADDCA,31H

MOV21H,A

CPLC

MOV2FH,C

SJMP$

END

循环程序

ORG 

0000H

BCDS1:

MOV20H,#54H

MOV21H,#79H

MOV30H,#57H

31H,#41H

MOVR0,#30H

MOVA,#9AH

SUBBA,@R0

MOV40H,A

INCR0

MOV41H,A

MOVR0,#40H

MOVR1,#20H

MOVR2,#2

LOOP:

MOVA,@R0

ADDCA,@R1

MOV@R0,A

INCR1

DJNZR2,LOOP

7FH,C

顺序程序 

算法2

ADDA,20H 

CY)=0

CPL 

(CY)=1

ADD 

A,21H

MOV41H,A 

SJMP 

$

3-8写出下段程序中每一步A、B中的结果

MOVA,#22H 

(A)=22H

MOVB,#05H 

(B)=05H

MOVR0,#08H

MULAB 

(A)=0AAH,(B)=0 

 00000000

MOVB,R0 

DIV 

AB 

(A)=15H,(B)=02H 

3-9试写出完成如下操作的程序

(1) 

 MOVDPTR,#1000H

 MOVXA,@DPTR

 ANLA,#11110000B

 MOVX@DPTR,A

 SJMP 

(2) 

ORL 

50H,#00001111B

(3) 

XRL 

50H,#11100000B

(4) 

50H,#11110000B

(5) 

50H,#0FFH

3-10 

30H开始的20个单元数据传送到外部3000H

MOVDPTR,#3000H

MOVR7,#20

Loop1:

MOVA,@R0

INCDPTR

DJNZR7,Loop1 

3-11 

根据R3条件转移 

1

CjneR3,#15,NEQ

sjmpL1 

=15

NEQ:

jnCL1 

>

15

sjmp$ 

<

L1:

nop 

≥15

.

sjmpHalt

jCL1 

sjmpHalt 

Halt:

≥15

sjmpL1

jCL1

sjmp$

≤15

jnCL1

2

MOVA,R3

SUBBA,#15

JNC 

GE15 

…. 

(R3)-15 

ORG0100H

JC 

(R3)-15

MOVA,#15

SUBBA,R3

15-(R3)

>15

3-12 

已知(SP)=53H,(PC)=37FEH执行:

ACALL3A00H后:

(SP)=(SP)+2=55H

(PC)=3A00H

((SP-1))=(54H)=00H;

PCL

((SP))=(55H)=38H 

PCH

37FEH:

ACALL3A00H

3800H:

第四章汇编语言程序设计 

思考题与习题4及答案

4-13 

试编程实现将20H单元的两位BCD数相乘,结果以BCD码的形式存于21H单元当中。

4-13-1 

MOV20H,#56H

MOVA,20H

ANLA,#0FH

MOVB,A

ANLA,#0F0H

SWAPA

MOVR2,A

DECB

ADDA,R2

DAA

DJNZB,LOOP

4-13-2

MOVR0,#21H

MOV21H,#0

XCHDA,@R0

MOVB,@R0

4-7 

设一个加数在50H~52H单元中,另一个加数在53H~55H中,进位存放在位地址00中,试编程实现两数求和。

ORG000H

ONE 

DATA 

50H

TWO 

53H

WEI 

BIT 

00H

MOVR0,#ONE

MOVR1,#TWO

MOVC,WEI

MOVR2,#3

MOVWEI,C

4-7-2

SETBRS0

MOVR0,#58H

CLRRS0

4-11试用除法指令将20H单元的两位BCD码变成ASCII码后存入21H和22H单元。

MOV20H,#67H

MOVB,#10H

DIVAB

ADDA,#30H

ORLB,#30H

MOV22H,B

4-1从20H单元开始存放一组带符号数,其数目已存在1FH单元。

要求统计出大于0、小于0和等于0的个数并存于ONE、TWO、THREE三个单元。

EQU 

30H

31H

THREE 

32H

NUM 

1FH

MOVNUM,#0FH

R0,#20H;

-1,2,34,0A0H,0....

MOVR1,#ONE

MOV@R1,#0

CJNER1,#34H,LOOP

LOOP1:

JZ 

MTHREE

JBACC.7,MTWO

INCONE

SJMPDJNZZ

MTHREE:

INCTHREE

MTWO:

INCTWO

DJNZZ:

INCR0

DJNZNUM,LOOP1;

NUM=0FH

4-5在用JMP指令实现128分支的程序中,试用LJMP代替AJMP指令。

修改后的程序有何特点?

最多能实现多少分支?

4-5

AJMP指令表 

128分支占128*2=256字节MEMORY

LJMP指令表 

可以实现256/3=85 

个分支 

特点:

各分支可在64KB存储器中转移。

4-2设自变量X为一无符号数,存放在内部RAM的VAX单元,函数Y存放在FUNC单元,请编出满足如下关系的程序:

X≥50

Y= 

5X 

50>X≥20

2X 

X<20

VAX 

FUNC 

MOVVAX,#55;

15;

20;

25;

50;

55

MOVA,VAX

CJNEA,#20,DO1

DO1:

JNC 

DO2

MOVB,#2

MULAB

SJMPMEM

DO2:

CJNEA,#50,DO3

DO3:

MEM

MOVB,#5

MEM:

MOVFUNC,A 

X

Y

2X=30=14H

50

X=50=32H

20

5X=100=64H

X=55=37H

25

5X=125=7DH

4-3外部RAM从2000H到2100H有一数据块,请编出将它们传送到外部RAM3000H到3100H区域的程序。

4-7 

MOVDPTR,#2000H

MOVP2,#30H

MOVR0,#00H

MOVR2,#0

MOVXA,@DPTR

MOVX@R0,A

DJNZR2,LOOP 

0—FF--0

(DPTR)=2100H

INCP2 

MOVX

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2