天津大学出版社的单片机课后习题答案Word下载.docx
- 文档编号:17024460
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:29
- 大小:28.99KB
天津大学出版社的单片机课后习题答案Word下载.docx
《天津大学出版社的单片机课后习题答案Word下载.docx》由会员分享,可在线阅读,更多相关《天津大学出版社的单片机课后习题答案Word下载.docx(29页珍藏版)》请在冰豆网上搜索。
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当前值,
A
中为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
C
(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
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@
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 天津大学 出版社 单片机 课后 习题 答案