第4章 单片机汇编语言程序设计_练习

第4章 单片机汇编语言程序设计_练习

ID:34096801

大小:209.12 KB

页数:10页

时间:2019-03-03

第4章 单片机汇编语言程序设计_练习_第1页
第4章 单片机汇编语言程序设计_练习_第2页
第4章 单片机汇编语言程序设计_练习_第3页
第4章 单片机汇编语言程序设计_练习_第4页
第4章 单片机汇编语言程序设计_练习_第5页
资源描述:

《第4章 单片机汇编语言程序设计_练习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章单片机汇编语言程序设计第4章单片机汇编语言程序设计1.程序设计主要分为哪几种?各有什么特点?答:一般把程序结构分成三种形式,即顺序结构、分支结构和循环结构。相应地,单片机的基本程序设计可分为顺序程序设计、分支程序设计以及循环程序设计。①顺序程序设计是最简单的程序设计。因在顺序程序中,既无分支、循环,也不调用子程序,整个程序按前后顺序依次执行指令。②分支程序的主要特点是程序有两个或两个以上的出口,根据指定的条件选择相应的出口。因为一个程序中包含多个分支,每个分支均有不同的处理程序段,有些分支中又包含分支,这就使得程序的流

2、向十分复杂。因此,在分支程序设计时必须借助程序流程图,以便明确程序各分支的走向。③循环程序的特点是重复执行某种相同的操作。采用循环程序可使原程序大为简化,从而提高程序设计运行效果。设计循环程序应包含循环程序的4个主要部分(详见2(3))。值得注意的是,在程序设计时,可将那些多次使用、功能相对完整的程序编成子程序,以便随时调用。实际上循环程序是子程序中的一种特殊形式。2.AT89C51常用的汇编语言伪指令有哪些?它们的作用是什么?答:常用的伪指令有以下几种,它们的作用分别如下:①起始伪指令ORG,用于规定指令起始地址。②结束伪

3、指令END,用作程序结束标志。③等值伪指令EUQ,用于给字符赋值,必须先定义后使用。④数据地址赋值伪指令DATA,与EUQ类似,但它允许先使用后定义。⑤定义字节伪指令DB,用于定义8位内存单元为数据。⑥定义字伪指令DW,用于定义16位内存单元为数据。⑦定义位地址伪指令BIT,用于定义位单元。3.单片机的程序设计包括哪几个步骤。答:程序设计步骤如下:(1)分析问题。即仔细分析任务书中要实现的功能和性能指标。(2)确定算法。即找到解决问题思路、方法。(3)分配内存单元。即确定数据结构。这一步往往与算法同时考虑。(4)根据算法和数

4、据结构,画出程序流程图。(5)根据流程图编写汇编语言源程序。编辑录入,保存为*.ASM文件。(6)汇编。排除语法错误。(7)调试(DEBUG)。找出错误并更正,再调试,直至通过。(8)编写相关说明文档。4.单片机的分支结构程序指令有哪几条?答:分支结构程序指令有JB、JNB、JC、JNC、JZ、JNZ、CJNE、JBC5.下列程序段经汇编后,从1000H开始的各有关存储单元的内容将是什么?ORG1000HTAB1EQU1234HTAB2EQU3000HDB“MAIN”DWTAB1,TAB2,70H答:(1000H)=‘M’(

5、1001H)=‘A’(1002H)=‘I’(1003H)=‘N’(1004H)=34H(1005H)=12H(1006H)=00H(1007H)=30H(1008H)=70H(1009H)=00H6.试编写1个程序,将内部RAM中45H单元的高4位清0,低4位置1。解:MOVA,45H;ANLA,#0FH;ORLA,#0FH7.已知程序执行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后,POPDPHPOPDPLMOVDPTR,#3000HRLAMOVB,AMOVCA,@A+DPTRPUS

6、HAMOVA,BINCAMOVCA,@A+DPTRPUSHAORG3000HDB10H,80H,30H,80H,50H,80HA=80HSP=40H(41H)=50H(42H)=80HPC=8050H。8.假定A=83H,(R0)=17H,(17H)=34H,执行以下指令:第1页共10页第4章单片机汇编语言程序设计ANLA,#17HORL17H,AXRLA,@R0CPLA后,A的内容为(0CBH)9.设内部RAM中有两个有符号数A和B,求A和B之差,若溢出,则将两数均清零;否则,两数保持不变。解:ORG0100HDATA1E

7、QU20HDATA2EQU30HSDATA:CLRC;进位位清零MOVA,DATA1SUBBA,DATA2JNBOV,ZUN;溢出标志位OV=0,转移MOVDATA1,#00H;清零MOVDATA2,#00HZUN:RET10.已知片内30H单元中有一个8位无符号数。编程将它们乘2,再存回原处。设乘完后结果不超出一个字节。解:MOVA,30H;(30H)→ARLA;A左移一位,相当于乘2MOV30H,A;存回30H单元11.编写程序,把片外RAM从2000H开始连续存放的8个数据送到片内30H开始的单元中。解:DERT:MO

8、VDPTR,#2000H;置数据区首址MOVR0,#30H;置目的地址首址MOVR7,#08H;置数据区长度LOOP:MOVXA,@DPTR;读片外RAM数据MOV@R0,A;送入片内RAMINCDPTR;修改指针INCR0DJNZR7,LOOP;未传送完,继续RET12.已知片内30H、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。