单片微机原理及应用徐春辉第5章习题答案Word文件下载.docx
《单片微机原理及应用徐春辉第5章习题答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片微机原理及应用徐春辉第5章习题答案Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
用以英语为基础的语句编程
执行时间长
易于推广和交流;
不依赖于机器,具有通用性
科学运算和数据处理
2.说明伪指令的作用。
“伪”的含义是什么?
常用的伪指令有哪些?
其功能是什么?
伪指令是在“机器汇编”过程中,用来对汇编过程进行某种控制或者对符号和标号进行赋值。
“伪”的含义是指这些指令不属于指令系统中的指令,汇编时也不产生机器代码。
常用伪指令有ORG、EQU、DATA、DB、DW、DS、BIT、END。
功能:
ORG--指出后面程序块或数据块在程序存储器中存放的起始地址。
EQU--赋值命令
DATA--对数据地址或代码地址赋予规定的字符名称
DB--定义字节数据
DW--定义字数据
DS--从指定的地址单元开始,保留若干单元备用。
BIT --定义位地址符号命令
END --汇编结束命令
3.设常量和数据标号的定义为:
ORG2000H
DAT1:
DB1,2,3,4,5
DAT2:
DB‘ABCD’
DAT3:
DW1200H,-2
TAB:
DWDAT1,DAT3
(1)画出上述数据或地址的存储形式。
(2)写出各标号的地址。
(1)
地址
内容(H)
2000H
01
02
03
04
05
2005H
41
42
43
44
2009H
12
00
FF
FE
200DH
20
09
(2)DAT1=2000H;
DAT2=2005H;
DAT3=2009H;
TAB=200DH
4.编写双字节加法程序。
要求:
被加数放在内部RAM的30H(高字节)、31H(低字节)单元中,加数存放在内部RAM的32H(高字节)和33H(低字节)中,运算结果放存放在30H,31H中,进位存放在位寻址区的00H位。
ORG0000H
MOVA,31H
ADDA,33H
MOV31H,A
MOVA,30H
ADDCA,32H
MOV30H,A
MOV00H,C
SJMP$
END
5.试编写程序,找出片内RAM30H~5FH单元中无符号数的最大数,并将结果存入60H单元。
ORG0000H
MOVR0,#30H
MOVR7,#2FH
MOVA,@R0
AGAIN:
INCR0
MOVB,A
CLRC
SUBBA,@R0
JNCL1
MOVA,@R0
AJMPL2
L1:
MOVA,B
L2:
DJNZR7,AGAIN
MOV60H,A
SJMP$
END
6.试编写程序,统计片内RAM的20H~5FH单元中出现55H的次数,并将统计结果送60H单元。
TABEQU20H
ORG0000H
START:
MOV60H,#0
MOVR0,#TAB
LOOP2:
MOVA,#55H
CLRC
SUBBA,@R0
JNZNEXT
INC60H
NEXT:
CJNER0,#60H,LOOP2
7.编写程序,将片外数据存储区中3000H~30FFH单元全部清零。
MOVA,#0
MOVR7,#0
MOVDPTR,#3000H
LOOP:
MOVX@DPTR,A
INCDPTR
DJNZR7,LOOP
8.将外部RAM8000H开始的20个字节数据传送到外部RAM8100H开始的地址单元中去。
DATA1EQU8000H
DATA2EQU00H
ORG0000H
MOVDPTR,#DATA1
MOVR0,#DATA2
MOVR7,#20
MOVXA,@DPTR
MOVP2,#81H
MOVX@R0,A
INCR0
INCDPTR
SJMP$
END
9.编程统计累加器A中“1”的个数。
以下程序将A中“1”的个数放在30H单元。
DATEQU37H
PUSHACC
MOVA,#DAT
MOV30H,#0
JZEXIT
CLRC
RLCA
JNCL1
INC30H
L1:
AJMPNEXT
POPACC
EXIT:
10.编写程序,将30H~34H单元中压缩的BCD码数(每个字节存放两个BCD码数)转换为ASCII码数,并将结果存放在片内RAM60H~69H单元。
ORG0000H
MOVR0,#30H
MOVR1,#60H
MOVR7,#2
AGAIN:
ANLA,#0F0H
SWAPA
ADDA,#30H
MOV@R1,A
ANLA,#0FH
INCR1
MOV@R1,A
INCR0
DJNZR7,AGAIN
SJMP$
11.将内部RAM30H单元的内容转换成三位BCD码(百位、十位、个位),并将结果存入外部RAM1000H开始的单元。
MOVA,30H
MOVDPTR,#1000H
MOVB,#100
DIVAB
MOVX@DPTR,A
INCDPTR
MOVA,B
MOVB,#10
12.请使用位操作指令,编程实现
,其中,20H、2FH、2AH都是位地址。
MOVC,20H
ANLC,2FH
CPLC
ORLC,2AH
MOVP1.0,C
END
13.简述利用KeilμVision调试汇编语言程序的主要步骤。
利用KeilμVision调试软件的主要步骤包括:
建立工程(project)→编写汇编语言源程序并保存→在工程中添加源文件→设置工程→编译并连接,创建目标文件→调试程序。
14.如何产生.hex文件?
编译并连接时,在“ProjectWorkspace”窗口中,右键Target1,选择OptionsForTarget‘Target1’选项,弹出“optionforTarget”对话窗,选Output选项卡,选中CreateHEXFile。
15.在KeilμVision环境中,如何查看寄存器和数据存储单元内容?
点击“Regs”
,可查看寄存器的内容。
在Keil的菜单栏中,选择View→MemoryWindow选项,打开Memory对话窗,在Address栏中输入地址“D:
0030H”,查看片内RAM中0030H的内容。
(X:
外部数据存储器,C:
程序存储器)