80c51汇编语言程序设计,章4 80C51的汇编语言程序设计
章4 80C51的汇编语言程序设计
1.80C51单片机汇编语言有何特点?
答:
汇编语言结构紧凑、灵活,汇编成的目标程序效率高,具有占存储空间少、运行速度快、实时性强等优点。它是面向机器的语言,对于单片机硬件的操作直接、方便,有利于初学者对单片机结构的认知。
但它与高级语言相比移植性不好、编程复杂、对编程人员的基础要求高。
2.利用80C51单片机汇编语言进行程序设计的步骤如何?
答:
一、任务分析
首先,要对单片机应用系统的设计目标进行深入分析,明确系统设计任务:功能要求和技术指标。然后对系统的运行环境进行调研。这是应用系统程序设计的基础和条件。
二、算法设计
经过任务分析和环境调研后,已经明确的功能要求和技术指标可以用数学方法(或模型)来描述,进而把一个实际的系统要求转化成由计算机进行处理的算法。并对各种算法进行分析比较,并进行合理的优化。
三、流程描述
程序的总体构建。先要确定程序结构和数据形式,资源分配和参数计算等。然后根据程序运行的过程,规划程序执行的逻辑顺序,用图形符号将程序流程绘制在平面图上。应用程序的功能通常可以分为若干部分,用流程图将具有一定功能的各部分有机地联系起来。
流程图可以分为总流程图和局部流程图。总流程图侧重反映程序的逻辑结构和各程序模块之间的相互关系;局部流程图反映程序模块的具体实施细节。
3.常用的程序结构有哪几种?特点如何?
答:
顺序程序:无分支、无循环结构的程序,其执行流程是依指令在存储器中的存放顺序进行的;
分支程序:可以改变程序的执行顺序;
循环程序:按某种控制规律重复执行的程序,控制一部分指令重复执行若干次,以便用简短的程序完成大量的处理任务。
4.子程序调用时,参数的传递方法有哪几种?
答:
利用累加器或寄存器;
利用存储器;
利用堆栈。
5.什么是伪指令?常用的伪指令功能如何?
答:
伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令。常用的伪指令包括:
ORG,功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地址;
END,功能是结束汇编;
DB,功能是从标号指定的地址单元开始,在程序存储器中定义字节数据;
DW,功能是从标号指定的地址单元开始,在程序存储器中定义字数据空间;
EQU,功能是将表达式的值或特定的某个汇编符号定义为一个指定的符号名;
BIT,功能是将位地址赋给指定的符号名。
6.设被加数存放在内部RAM的20H、21H单元,加数存放在22H、23H单元,若要求和存放在24H、25H中,试编写出16位无符号数相加的程序(采用大端模式存储)。
答:程序如下:
ORG 0000H
MOV R0,#21H
MOV R1,#23H
MOV A,@R0
ADD A,@R1
MOV 25H,A
DEC R0
DEC R1
MOV A,@R0
ADDC A,@R1
MOV 24H,A
SJMP $
END
7.编写程序,把外部RAM中1000H~101FH的内容传送到内部RAM的30H~4FH中。
答:
ORG 0000H
MOV
DPTR,#1000H
MOV
R0,#30H
MOV
R7,#32
LOOP:MOVX A,@DPTR
MOV
@R0,A
INC
R0
INC
DPTR
DJNZ
R7,LOOP
RET
8.编写程序,实现双字节无符号数加法运算,要求(R0R1)+(R6R7)→(60H61H)。
答:
ORG 0000H
MOV A,R1
ADD A,R7
MOV 61H,A
MOV A,R0
ADDC A,R6
MOV 60H,A
SJMP
$
END
9.若80C51的晶振频率为6MHz,试计算延时子程序的延时时间。
DELAY:MOV R7,#0F6H
LP:MOV R6,#0FAH
DJNZ R6,$
DJNZ R7,LP
RET
答:延时时间:2μs*{[1+((1+2*250+2)*246)+2]+2}=0.247486秒(含调用指令2个机器周期)
10.在内部RAM的30H~37H单元存有一组单字节无符号数。要求找出最大数存入BIG单元。试编写程序实现。
答:
ORG
0000H
BIG DATA
2FH
ONE DATA
2AH
TWO DATA
2BH
START:MOV R7,#7 ;比较次数
MOV
R0,#30H
LOOP:MOV A,@R0
MOV
ONE,A
INC
R0
MOV
TWO,@R0
CLR
C
SUBB
A,@R0
JC
NEXT ;ONE小,TWO大继续比下一对数
MOV
@R0,ONE ;ONE大放后面(交换)
DEC
R0
MOV
@R0,TWO ;TWO小放前面
INC
R0 ;
NEXT:DJNZ
R7,LOOP
MOV
BIG,37H
SJMP
$
END
11.编写程序,把累加器A中的二进制数变换成3位BCD码,并将百、十、个位数分别存放在内部RAM的50H、51H、52H中。
答:单字节二进制数转换为压缩的BCD码仅需要2个字节;在将压缩的BCD码拆分存于3个单元。
org
0
MOV
52H,#0
MOV
51H,#0
MOV
50H,#0
MOV
A,#0FDh
LCALL
DCDTH
SJMP
$
DCDTH:MOV
R7,#8
MOV
R0,A ;暂存于R0
LOOP:CLR C
MOV
A,R0
RLC
A
MOV
R0,A
MOV
R1,#51H;
MOV
A,@R1 ;
ADDC
A,@R1 ;
DA
A ;
MOV
@R1,A ;
DEC
R1
MOV
A,@R1
ADDC
A,@R1
DA
A
MOV
@R1,A
DJNZ
R7,LOOP
INC
R1 ;50H已是结果,R1指向51H,51H单元需拆分
MOV
A,#00H
XCHD
A,@R1
MOV
52H,A
MOV
A,@R1
SWAP A
MOV @R1,A
RET
END
12.编写子程序,将R1中的2个十六进制数转换为ASCII码后存放在R3和R4中。
答:
ORG 0
MOV R1,#5BH
MOV A,R1
ANL
A,#0F0H
SWAP
A
ACALL
ASCII
MOV
R3,A
MOV
A,R1
ANL
A, #0FH
ACALL
ASCII
MOV
R4, A
SJMP
$
ASCII:PUSH ACC
CLR
C
SUBB
A, #0AH
POP
ACC
JC
LOOP
ADD
A, #07H
LOOP: ADD A, #30H
RET
END
13.编写程序,求内部RAM中50H~59H十个单元内容的平均值,并存放在5AH单元。
答:
ORG
0000H
MOV
R7,#10
MOV
R0,#50H
MOV
B,#10
CLR
C
CLR
A
LOOP:ADDC A,@R0
INC
R0
DJNZ
R7,LOOP
DIV
AB
MOV
5AH,A
SJMP
$
END
14.如图4.10所示,编制程序实现:上电后显示“P”,有键按下时显示相应的键号“0”~“7”。
答:
实现程序如下:
TEMP EQU
30H
ORG 0000H
JMP START
ORG
0100H
START:MOV SP,#5FH
MOV
P0,#8CH ;正序显示"P"
MOV P3,#0FFH ;输入方式
CLR CY
NOKEY:MOV A,P3
CPL
A
JZ NOKEY ;无键按下
MOV TEMP,P3 ;有键按下
CALL D10ms
MOV A,P3
CJNE A,TEMP,NOKEY ;去抖动
MOV
R2,#0 ;键号计数器复位
MOV
A,TEMP
LP:RRC
A
JNC
DONE
INC R2
SJMP LP
DONE:MOV
A,R2
MOV DPTR,#CODE_P0
MOVC A,@A+DPTR
MOV
P0,A
JMP NOKEY
D10ms:MOV R5,#10 ;10MS
D1ms:MOV R4,#249
DL:NOP
NOP
DJNZ R4,DL
DJNZ R5,D1ms
RET
CODE_P0:
DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB
80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END
80c51汇编语言程序设计,章4 80C51的汇编语言程序设计相关推荐
- 用汇编语言程序设计实现c=a b,汇编语言程序设计1.pdf
第三章 汇编语言程序设计第三章 汇编语言程序设计 概述概述 汇编语言程序的格式汇编语言程序的格式 伪操作命令伪操作命令 DOS 和和BIOS调用调用 汇编语言程序设计举例汇编语言程序设计举例 汇编程序 ...
- 计算机组成原理汇编语言设计实验,《计算机组成原理汇编语言程序设计》实验指导书.doc...
<计算机组成原理汇编语言程序设计>实验指导书,汇编语言实验指导书,微机原理与汇编语言,微机原理及汇编语言,汇编转c语言原理,汇编语言原理,汇编语言和编译原理,汇编语言编译原理,计算机原理与 ...
- 16位汇编语言学习笔记(2)—— 汇编程序设计
文章目录 4. 顺序程序设计 4.1 十进制的算数运算 4.2 输入输出功能调用 4.3 综合案例 5. 分支程序设计 5.1 转移指令 5.1.1 条件转移指令 单标志条件转移指令 无符号数专用条件 ...
- 汇编语言与计算机系统组成课后答案,汇编语言与计算机系统组成
前言 第1篇 计算机系统组成基础 第1章 计算机系统概论 1.1 计算机的基本概念 1.1.1 存储程序的工作方式 1.1.2 信息的数字化表示 1.1.3 计算机体系结构.组成与实现 1.2 计算机 ...
- c语言程序设计第二版(张磊),C语言程序设计教程(第2版) 教学课件 张磊 第1章 程序设计概述.pdf...
C语言程序设计 第1章 程序设计概述 C语言程序设计教程 第2版 中国铁道出版社 张磊 编著 C语言程序设计(第2版)张磊编著中国铁道出版社 第1章 程序设计概述 1.1 程序设计语言 1.2 算 ...
- 第三章 系统指令与汇编程序设计 3.1 单片机指令系统
第三章 系统指令与汇编程序设计 3.1 单片机指令系统 3.1.1 寻址空间及常用符号 3.1.2 寻址方式 3.1.3 数据传送与交换指令 3.1.4 算术运算指令 3.1.5 逻辑操作指令 3.1 ...
- 第14章传智书城前台程序设计
第14章传智书城前台程序设计 一.填空题 1.在传智书城注册页面中,可以采用[ 单击图片 ]方式切换验证码图片. 2.[ 用户注册 ]是用户参与网站活动最直接的桥梁. 3.图书根据其[ 题材 ]和[ ...
- QT编程从入门到精通之三十四:“第五章:Qt GUI应用程序设计”之“5.5 Qt Creator使用技巧”
目录 第五章:Qt GUI应用程序设计 5.5 Qt Creator使用技巧 第五章:Qt GUI应用程序设计 在"Qt 程序创建基础"上,本章将继续深入地介绍Qt Creator ...
- python程序设计第七章答案_MOOC课程答案第七章单元测试答案_Python语言程序设计答案免费微信公众号...
MOOC课程答案第七章单元测试答案_Python语言程序设计答案免费微信公众号 更多相关问题 [问答题,简答题] 什么叫仰视图? [问答题,简答题] 常见事故一般分为? [问答题,简答题] 进行气藏. ...
最新文章
- aspx页面与ascx控件脚本冲突的问题
- java shape类_Java——Shape类
- Python3 写JSON数据到文件(多行格式化版)
- 日常((⊙_⊙)…)
- 输入关键字生成对联_教你一秒变大师,亲手提笔写对联
- 美国CISA 列出300个已遭利用漏洞,督促组织机构及时修复
- openlayers5学习笔记-001
- 微信公众号完美解决关注后三次获取media_id重复3次的问题
- 如何在Mac电脑上的聚焦搜索中隐藏内容?
- 阶段3 1.Mybatis_09.Mybatis的多表操作_2 完成account表的建立及实现单表查询
- aid learning安装应用_Aid Learningapp下载
- MySQL(9)-----多表创建及描述表关系(需求)
- Xftp6-连接Linux传输文件---干货!!!(无私奉献无需积分)
- 搜索引擎算法研究(一)
- 2019icpc南京网络赛 Holy Grail(SPFA)
- 小牛电动Q2财报:国外不乐观,国内狂下沉
- Oracle创建同义词
- 利用LVS(Linux Virtual Server)系统实现Web服务器集群的负载均衡
- 华为手机热点无法连接_别傻了!不能只会给别人开热点,要尝试华为手机的WiFi分享功能...
- APP软件中的DID作用