第四章80C51的程序设计习题及答案.doc
文本预览下载声明
第四章 80C51的程序设计习题及答案
1、80C51单片机汇编语言有何特点?
答:优点;源程序结构紧凑、灵活,汇编成的目标程序效率高,具有占存储空间少、运行速度快、实时性强等优点。
缺点:由于它的是面向机器的语言,所以它缺乏通用性,编程复杂繁琐,但应用相当广泛。
2、利用80C51单片机汇编语言进行程序设计的步骤如何?
答:(1).需要对单片机应用系统预先完成的任务进入深入的分析,明确系统的设计任务、功能要求、技术指标。
(2).要对系统的硬件资源和人工作环境进行分析和熟悉.
(3).利用数学方法或数学模型来对其进行描述,从而把一个实际问题转化成由计算机进行处理的问题。
(4).对各种算法进行分析比较,并进行合理的优化。
3、常用的程序结构有哪几种?特点如何?
答:常用的程序结构有以下几种:
(1)顺序程序结构:顺序结构是按照逻辑操作顺序,从某一条指令开始逐条顺序进行,直到某一条指令为止;比如数据传送与交换、查表程序和查表程序的设计等;在顺序结构中没有分支,也没有子程序,但它是组成复杂程序的基础和主干;
(2)分支程序结构:它的主要特点是程序执行流程中必然包含有条件判断指令,符合条件要求的和不符条件合要求的有不同的处理程序;
(3)循环程序结构 :它在本质上只是分支程序中的一个特殊形式,它由循环初始化、循环体、循环控制和结束部分构成;在循环次数已知情况下,采用计数循环程序,其特点是必须在初始部分设定计数的初始值,循环控制部分依据计数器的值决定循环次数;根据控制循环结束的条件,决定是否继续循环程序的执行。
(4)子程序:它的主要特点是,在执行过程中需要由其它的程序来调用,执行完后又需要把执行流程返回到调用该子程序的主程序。
4、子程序调用时,参数的传递方法有哪几种?
答:在80C51单片机中,子程序调用时,参数的传递方法由三种:
(1)、利用累加器A或寄存器;
(2)、利用存储器;
(3)、利用堆栈。
5、什么是伪指令?常用的伪指令功能如何?
答:伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令。常用的伪指令有:
(1)起始地址设定伪指令ORG,该指令的功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地址;
(2)汇编结束伪指令END,该指令的功能是汇编程序遇到END伪指令后立即结束汇编;
(3)字节数据定义伪指令DB,该指令的功能是从标号指定的地址单元开始,在程序存储器中定义字节数据;
(4)字数据定义伪指令DW,该指令的功能是从标号指定的地址单元开始,在程序存储器中定义字数据;
(5)空间定义伪指令DS,该指令的功能是从标号指定的地址单元开始,在程序存储器中保留由表达式所指定的个数存储单元作为备用空间,并都填以零值;
(6)赋值伪指令EQU,该指令的功能是将表达式的值或特定的某个汇编符号定义为一个指定的符号名;
(7)位地址符号定义伪指令BIT,该指令的功能是将位地址赋给指定的符号名。
6、设被加数存放在内部RAM的20H、21H单元,加数存放在22H、23H单元,若要求和存放在24H、25H中,试编写出16位数相加的程序。
答: ORG 1000H
MOV R1,#21H
MOV R2,#23H
MOV R3,#25H
CLR C
LP;MOV A,@R2
ADDC A,@R1
MOV @R3,A
DEC R1
DEC R2
DEC R3
DJNE R1,#1FH,LP
SJMP $
7、编写一段程序,把外部RAM中1000H~1030H单元的内容传送到内部RAM的30H~60H单元中。
答: ORG 0030H
MOV R1,#49
MOV R0,#30H
MOV DPTR,#1000H
LOOP: MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R1,LOOP
SJMP $
END
8、编写程序,实现双字节无符号数加法运算,要求(R1R0)+(R7R6)→(61H60H)。
答:
MOV A,R0
ADD A,R6
MOV 60H,A
MOV A,R1
显示全部