




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机汇编程序设计基础习题答案一、填空题1、给程序做注释使用 ;(或半角分) 号来标识。2、注释可以写在一行指令上 ,也可以写在一个指令 之后。TOC\o"1-5"\h\z3、在设计汇编语言源程序时,可以使用顺序结构的程序,也可以使用某些指令构成 分支 结构、循环结构和子程序调用结构的程序。4、寻址方式是指 寻找操作数的方式 。5、机器语言是机器码的集合 。6、MCS-51单片机的指令的一般格式中,包括标号 、助记符 、目的操作数 、源操作数 和 注释等部分。7、MCS-51汇编语言源程序的扩展名为 •asm。二、程序设计题1、求50H与40H单元内容之和,结果存入20H,进位位存入21H。解答:MOVA。50HADD A,40HMOV20H.ACLRAADDCA.#00HMOV21H,ASJMP$2、编程实现双字节加法运算(R1)(R0)+(R7)(R6)—(31H)(30H)。解答:MOVA.R0ADDA,R6MOV30H.AMOVA,R1ADDCA.R7MOV31H,ASJMP$3、试编写程序,求出内部RAM20H单元中的数据含“1”的数,并将结果存入21H单元。解答MOV 21H,#00HMOVA,20HCLRCMOVR7,#08HLOOP:RLCAJNCNEXTINC21HNEXT:DJNZR7,LOOPSJMP$4、试编写程序,将内部RAM的20H〜2FH共16个连续单元清零。解答:MOVR0,#20HMOVR7,#10HCLRANEXT:MOV@R0,AINCR0DJNZR7,NEXTSJMP$5、编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。解答:STRAT:MOVR0,#30HMOV R7,#0FHMOV DPTR,#3000HLOOP:MOVA,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R7,LOOPRET6、片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和<256).解答:ADDIO:MOVR0,30HMOV R7,#9MOV A,@R0LOOP:INCR0ADD A,@R0DJNZ R7,LOOPMOV 30H,ARET7、试编写程序,查找在内部RAM的30H〜50H单元中出现FFH的次数,并将查找的结果存入51H单元。解答:MOV 51H,#00HMOVR1,#30HMOVR7,#21HLOOP:CJNE@R1,#0FFH,NEXTINC51HNEXT:INCR1DJNZR7,LOOPSJMP$8、设单片机的fosc=6MHz,编写实现100ms延时的子程序。解答:DELAY:MOVR7,#64HA0: MOVR6,#0FAHDJNZR6,$DJNZR7,A0RET9、从内部RAM的30H单元开始存放一组用补码表示的带符号数,其数目以存放在20H单元。编写程序统计出其中的正数、0和负数的数目,并奖结果分别存入21H、22H、23H单元。解答:MOVR0,#30HMOV21H,#00HMOV22H,#00HMOV23H,#00HMOVA,@R0JZNEXT1JBACC.7,NEXT2INC23HSJMPNEXT3NEXT2:INC21HSJMPNEXT3NEXT1:INC22HNEXT3:INCR0DJNZ20H,LOOPSJMP$10、在程序存储器中从tab开始的16个单元连续存放0-15的平方值,设计程序,任意给一个数x(0WxW15),查表求出z的平方值,并把结果存入y单元。解答:设x单元为30H,Y单元为31H。文件名:a.asm,查表求x的平方值,X的值在0~15之间。ORG3000HMOVDPTR,#tabMOV A,XMOVCA,@A+DPTRMOVy,ASJMP$tab:DB00H,01H,04H,09H,10H,19H,24H,31HDB40H,51H,64H,79H,90H,0A9H,0C4H,0E1HXDATA30HYDATA31HEND11、从XX单元开始,连续存放10个无符号数,设计程序,从中找出最大值送入yy单元。解答:设XX单元为40H,YY单元为30H。
ORG0020HMOVR0.#xxMOVB,@R0MOVR7.#09HINCR0LOOP:MOVA,BCLRCSUBBA,@R0JNCNEXTMOVB,@R0NEXT:INCR0DJNZR7,LOOPMOVYY,BSJMP$XXDATA 40HYYDAIA 30HEND12、从x单元开始,连续存放30个无符号数,统计奇数和偶数的个数,并分别存入丫和z单元。解答:设x单元为30H,丫单元为50H,z单元为51H。ORG2000HSTART:MOVR1,#00HMOVR2,#00HMOVR7,#1EHMOVR0,#XLOOP:MOVA,@R0JNBACC.0,NEXTINCR1SJMPA1NEXT:INCR2Al:INCR0DJNZR7,LOOPMOVy,R1MOVZ,R2SJMP$x DATA30Hy DATA50HzDATA5lHEND13、从x单元开始,连续存放30个带符号数,求出各个数的绝对值,将结果存入原单元。解答:设x单元为30HSTART:MOVR7,#1EHMOVR0,#XLOOP: MOVA,@R0JNBACC.7,NEXTCPLAINCAMOV@R0,ANEXT:INCR0DJNZR7,LOOPSJMP$XDATA30HEND14、用查表法编一子程序,将R3中的BCD码转换成ASCII码.解:MAIN:MOVA,R3;待转换的数送AMOVDPTR,#TAR;表首地址送DPTRMOVCA,@A+DPTR;查ASCII码表MOVR3,A;查表结果送R3RETTARDB30H,31H,32H,33H,34HDB35H,36H,37H,38H,39H15、片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中.解:START:MOVR0,#40H;数据块首地址送R0MOVR7,#09H;比较次数送R7MOVA,@R0;取数送ALOOP: INCR0MOV30H,@R0;取数送3OHCJNEA,30H,NEHT;(A)与(30H)相比NEXT:JNCBIE1;(A)三(30H)转BIR1MOVA,30H;(A)<(30H),大数送ABIE1: DJNZR7,LOOP;比较次数减1,不为0,继续比较MOV50H,A;比较结束,大数送50HRET16、利用调子程序的方法,进行两个无符号数相加。请编主程序及子程序。
解用R0和R1作数据指针,R0指向第一个加数,并兼作“和”的指针,R1指向另一个加数,字节存放到区2中作计数初值。主程序:JAFA:MOV R0,#20H;指向加数最低字节MOV R1,#29H;指向另一加数最低字节MOV R2,#04H;字节数作计数值ACALL JASUB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电梯应急安全知识
- 2025年私人住宅租赁合同(月付款方式)
- 2025年海西货运上岗证模拟考试试题
- 2025年通化货运从业资格证模拟考试下载题
- 2025移动硬盘买卖合同范本
- 2025年廊坊货运从业资格证模拟考试题库下载
- 2025劳动合同注意事项的总结
- 如何对待财务规划的变更计划
- 职场技能提升的年度计划
- 提高急诊医患沟通能力的策略计划
- 工程伦理案例分析
- 中学生物学教材分析
- 优秀初中语文说课课件
- A06442《个人所得税自行纳税申报表(A表)》 (填写样例)
- 2022全科医师转岗培训理论考试题库及答案
- 建筑空间组合论
- 特种工作作业人员体格检查表
- 清远市城市树木修剪技术指引(试行)
- 广州国际文化中心详细勘察报告正文-171229end
- 警察礼仪(PPT53页)
- 《关于加强高等学校食堂管理工作的意见》解读
评论
0/150
提交评论