第4章习题-汇编语言程序设计(单片机第二版).doc_第1页
第4章习题-汇编语言程序设计(单片机第二版).doc_第2页
第4章习题-汇编语言程序设计(单片机第二版).doc_第3页
第4章习题-汇编语言程序设计(单片机第二版).doc_第4页
第4章习题-汇编语言程序设计(单片机第二版).doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 习题与参考答案4.1 程序设计语言有哪三种?各有什么异同?汇编语言有哪两类语言?各有什么特点?4.2 在汇编语言程序设计中,为什么要采用标号来表示地址?标号的构成原则是什么?使用标号有什么限制?注释段起什么作用?4.3 MCS-51汇编语言有哪几条常用伪指令?各起什么作用?4.4 汇编语言程序设计分哪几步?各步骤的任务是什么?4.5 汇编语言源程序的机器汇编过程是什么?第二次汇编的任务是什么?4.6 请用除法指令编写例4.2的程序,并计算所占内存字节数和所需机器周期数。4.7 设内部RAM 20H 单元有两个非零的BCD数,请编写求两个BCD数的积并把积送入21H单元的程序。4.8 已知,从内部RAM BLOCK单元开始存放有一组带符号数,数的个数存放在LED单元。请编写可以统计其中正数和负数个数并分别存入NUM和NUM+1单元的程序。4.9 设自变量X为一无符号数,存放在内部RAM的VAX单元,函数Y存放在FUNC单元。请编写满足如下关系的程序:X=50时:Y=X;50X=20时:Y=5X;X20时:Y=2X;4.10 在例4.6的128分支程序中,若用LJMP指令代替AJMP指令,以便分支程序可以放在64KB地址范围的任务位置。请修改原程序,修改后的程序最多可实现多少个分支?4.11 从外部RAM的SOUCE(二进制8位)开始有一数据块,该数据块以$字符结尾。请编写程序,把它们传送到以内部RAM的DIST为起始地址的区域($字符也要传送)。4.12 在例4.11中,若SOUCE为二进制16位,则程序又该如何编。4.13 在外部RAM的低256地址单元区,有起始地址为SOUCE且长度存放在LEN单元的数据块。请编写能对它们进行奇偶校验的程序。凡满足奇校验(奇数个1)的数据均送到内部RAM起始地址为DIST的存储区。4.14 在例4.13中,若SOUCE的地址不在外部RAM的滴56地址区,则程序该如何编写。4.15 外部RAM从2000H到2100H有一数据块,请编写将它们传送到从3000H到3100H区域的程序。4.16 设有一起始地址为FIRST+1的数据块,存放在内部RAM单元,数据块长度存放在FIRST单元而且不为0,要求统计该数据块中正偶数和负奇数的个数,并将它们分别存放在PAPE单元和NAOE单元。试画出能实现上述要求的程序流程图并编写相应程序。4.17 请编写能从以内部RAM的BLOCK为起始地址的100个无符号数中找出最小值并把它送入MIN单元的程序。4.18 已知,在内部RAM中,共有6组无符号4字节被加数和加数分别存放在以FIRST和SUCOND为起始地址的区域(低字节在前,高字节在后)。请编程序和(设和也为4字节),并把和存于以SUM开始的区域。4.19 在内部RAM中,有一个以BLOCK为起始地址的数据块,块长存放在LEN单元。请用查表指令编写程序,先检查它们是否十六进制数中的AF,若是十六进制数中的AF,则把它们变为ASCII码;若不是,则把它们变为00H。4.20 设在片内RAM的20H单元中有一数,其值范围为0100,要求利用查表法求此数的平方值并把结果存入片外RAM的20H和21H单元(20H单元中为低字节),试编写相应程序。4.21 在内部RAM中,从BLOCK开始的存储区有10个单字节十进制数(每字节有2个BCD数),请编程序求BCD数之和(和为3位BCD数),并把它们存于SUM和SUM+1单元(低字节在SUM单元)。4.22 在例4.21中,若改为10个双字节十进制数求和(和为4位BCD数),结果仍存于从SUM开始的连续单元(低字节先存)。请修改相应程序。4.23 已知MDA和MDB内分别存有两个小于10的整数,请用查表子程序实现c=a 2+2ab+b 2 ,并把和存于MDC和MDC+1单元(MDC中放低字节)。4.24 已知外部RAM起始地址为STR的数据块中有一以回车符CR断尾的十六进制ASCII码。请编写程序,将它们变为二进制代码,放在起始地址为BDATA的内部RAM存储区中。4.25 设晶振频率为6MHZ,试编写能延时20ms的子程序。4.26 已知内部RAM的MA(被减数)和MB(减数)中分别有两个带符号数。请编写减法子程序,并把差存入RESULT和RESULT+1(低8位在RESULT单元)中。4.27 设R0内为一补码形式的带符号被除数,R1内为补码形式的带符号除数,请通过编程完成除法,并把商置于R2内且余数置于R3内。4.28 设8031单片机外部RAM从1000H单元开始存放有100个无符号8位二进制数。要求编写子程序,能把它们从大到小依次存入片内从10H开始的RAM存储区,请画程序流程图。解:ORG 0030HMOV R0,#10HMOV R2,100MOV DPTR,#1000HMOV A,#00HLOOP:MOVX A,DPTRMOV R0,AINC AINC DPTRDJNZ R2,LOOPLOOP1: MOV R0,#10H;置数据块指针R0MOV R2,#100;块长送R2CLR F0;交换标志F0清零DEC R2;块长-1为比较次数LOOP2: MOV 08H,R0;第一个数送08HINC R0MOV A,R0;第二个数送AMOV 09H,A;第二个数送ACJNE A,08H,LOOP3;(11H)和(10H)作比较LOOP3: JC LOOP4;若(09H)=(08H),则两者交换DEC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论