mcs51单片机第四章习题解答.doc

mcs51单片机第四章习题解答.doc

ID:59120392

大小:69.50 KB

页数:13页

时间:2020-09-15

mcs51单片机第四章习题解答.doc_第1页
mcs51单片机第四章习题解答.doc_第2页
mcs51单片机第四章习题解答.doc_第3页
mcs51单片机第四章习题解答.doc_第4页
mcs51单片机第四章习题解答.doc_第5页
资源描述:

《mcs51单片机第四章习题解答.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、4—1若有两个无符号数。分别存放在内部存储器50H、51H单元中,试编写一个程序实现,结果存人52H、53H两个单元ORG0000HSJMPSTARTORG0030HSTART:MOVA,50HMOVB,#10MULAB;(50H)x10积的高、低字节分别在B、A中ADDA,51HMOV53H,A;积的低字节加(51H)其和存放在53H中MOVA,#00HADDCA,BMOV52H,A;积的高字节加进位位存放在52H中。SJMP$4—2从内部存储器20H单元开始,有30个数据。试编一个程序,把其中的正数、负数分别送51H和71H开始的存储单元,并分别记下正数、负数

2、的个数送50H和70H单ORG0000HSJMPSTARTORG0030HSTART:MOV1EH,#51H;正数存放首地址51H存暂存于1EH单元MOV1FH,#71H;负数存放首地址71H存暂存于1EH单元MOVR0,#20H;建立取数(源操作数)的地址指针MOVR2,#30;预置数据长度MOV50H,#00H;正数个数统计单元清零MOV70H,#00H;负数个数统计单元清零LOOP:MOVA,@R0;取数JBACC.7,NEG;是负数转NEG处理POSI:MOVR1,1EH;是正数,将暂存的地址送R1(间址寄存器)MOV@R1,A;将正数入存INC50H;正

3、数个数加1INC1EH;正数暂存地址加1修正LOOP1:INCR0;取数地址加1修正DJNZR2,LOOP;计数长度减1,不等于零,继续循环统计SJMP$;结束NEG:MOVR1,1FH;是负数,将暂存的地址送R1(间址寄存器)MOV@R1,A;将负数入存INC70H;负数个数加1INC1FH;负数暂存地址加1修正SJMPLOOP1;转取数地址修正4—3内部存储单元40H中有一个ASCII码字符,试编一程序,给该数的最高位加上奇校验。ORG0000HSJMPSTARTORG0030HSTART:MOVA,40H;取数给ACLRACC.7;A最高位(奇偶校验位)清零

4、JBP,LOOP;40H中的ACSII码原来就是奇数个1(最高位给零)SETBACC.7;40H中的ACSII码原来是偶数个1,最高位置1LOOP:MOV40H,A;入存SJMP$;结束END4—4编写一段程序,将存放在自DATA单元开始的一个四字节数(高位在前),取补后送回原单元。一:若DATA在内部数据存储器中(假如存放在30H起始的4个单元中);解1、采用求反加1的算法ORG0000HSJMPSTARTORG0030HSTART:SETBC;置进位位为1MOVR2,#04H;预置计数长度MOVR0,#DATA1+3;取数指针指向低字节的地址LOOP:MOVA

5、,@R0;取数CPLA;求反ADDCA,#00H;加进位MOV@R0,A;入存DECR0;地址指针修正DJNZR2,LOOP;4字节未处理完,继续循环处理SJMP$;结束DATA1EQU30H;END解2、采用0减原数的算法ORG0000HSJMPSTARTORG0030HSTART:MOVR2,#04H;预置计数长度MOVR0,#DATA1+3;取数指针指向低字节的地址CLRC;进位位清零LOOP:MOVA,#00H;SUBBA,@R0;用零减原数MOV@R0,A;入存DECR0;地址指针修正DJNZR2,LOOP;4字节未处理完,继续循环处理SJMP$;结束D

6、ATA1EQU30H;END二:若DATA在外部数据存储器中(假如存放在1000H起始的4个单元中);解1、ORG0000HSJMPSTARTORG0030HSTART:MOVR2,#04H;预置计数长度MOVP2,#10H;取数指针指向数据低字节的高8位地址MOVR0,#03H;取数指针指向数据低字节的低8位地址SETBC;进位位置1LOOP:MOVXA,@R0;从外部数据存储器取数CPLA;求反ADDCA,#00H;加进位位MOVX@R0,A;入存DECR0;地址指针修正DJNZR2,LOOP;4字节未处理完,继续循环处理SJMP$;结束DATA1EQU30H

7、;解2ORG0000HSJMPSTARTORG0030HSTART:MOVR2,#04H;预置计数长度MOVP2,#10H;取数指针指向低字节数据的高8位地址MOVR0,#03H;取数指针指向低字节数据的低8位地址CLRC;进位位清零LOOP:MOVXA,@R0;从外部数据存储器取数MOVB,A;暂存MOVA,#00HSUBBA,B;用零减原数MOVX@R0,A;入存DECR0;低8位地址地址指针修正DJNZR2,LOOP;4字节未处理完,继续循环处理SJMP$;结束DATA1EQU30H;END4—5以BUFl为起始地址的外存储区中,存放有16个单字节无符号二进

8、制数,试编

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

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

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