资源描述:
《单片机原理与接口技术 赵嘉蔚 清华大学出版社》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、习题与思考题3-5指出下列指令中45H代表什么。MOVA,#45HMOVA,45HMOV45H,46HMOVC,45H答案:MOVA,#45H中的45H代表立即数45H,该立即数为16进制。MOVA,45H中的45H代表直接地址45H单元。MOV45H,46H中的45H代表目的操作数所指定的单元为45H。MOVC,45H中的45H代表45H位。3-6分析下列程序执行的结果。(1)MOVA,#60HMOVR0,#40HMOV@R0,AMOV41H,R0XCHA,R0执行结果为:(A)=40H(R0)=60H(40H)=60H(41H)=40H(2)MOVDPTR,#2
2、003HMOVA,#18HMOV20H,#38HMOVR0,#20HXCHA,@R0执行结果为:(DPH)=20H(DPL)=03H(A)=38H(20H)=18H(R0)=20H(3)MOV20H,#01HMOVA,20HINCACPLAMOVDPTR,#2000HMOVX@DPTR,A执行结果为:(20H)=01H(A)=FDH(DPTR)=2000H(2000H)=FDH3-8按要求写出相应的指令。(1)把寄存器R6的内容送到累加器A中。·11·(2)把外部RAM1000H单元的内容传送到内部RAM30H单元中。(3)清除内部RAM3FH单元的高4位。(4)使
3、累加器A的最低位置1。(5)清除进位位。(6)使ACC.4和ACC.5置1。(7)把外部ROM2000H单元中的内容送到内部RAM的20H单元中。(8)把外部ROM2000H单元中的内容送到外部RAM的3000H单元中。答案:(1)MOVA,R6(2)MOVDPTR,#1000HMOVXA,@DPTRMOVR0,#30HMOV@R0,A(3)ANL3FH,#0FH(4)ORLA,#01H(5)CLRC(6)ORLA,#30H(7)CLRAMOVDPTR,#2000HMOVCA,@A+DPTRMOV20H,A(8)CLRAMOVDPTR,#2000HMOVCA,@A+
4、DPTRMOVDPTR,#3000HMOVX@DPTR,A3-10编写程序段完成如下要求。(1)将寄存器R0中的内容乘以10(积小于256)。(2)将片内RAM30H单元开始的15个字节的数据传送到片外RAM3000H开始的单元中。(3)将片外RAM2000H开始的5个字节的数据传送到片内RAM20H开始的单元中。(4)有10个字节的二进制数存放在片内RAM以40H开始的单元内,编程找出其中的最大值并存于内部50H单元中。(5)将片外RAM空间2000H~200AH中的数据的高4位变零,低4位不变,原址存放。(6)将外部RAM2040H单元的内容与3040H单元的内
5、容互换。答案:(1)MOVB,#0AH·11·MOVA,R0MULABMOVR0,A(2)ORG0000HMOVR0,#30HMOVDPTR,#3000HMOVR7,#0FHLOOP:MOVA,@R0MOVX@DPRT,AINCR0INCDPTRDJNZR7,LOOPSJMP$END(3)MOVDPTR,#2000HMOVR0,#20HMOVR7,#05HLOOP:MOVXA,@DPTRMOV@R0,AINCR0INCDPTRDJNZR7,LOOPSJMP$END(4)ORG0000HMOV50H,40H;50H放最大值,且初始化最大值(默认第一个数)MOVR3,#
6、09H;比较次数MOVR0,#41HSTART:MOVA,@R0CJNEA,50H,LOOPLOOP:JCLOOP1;如果A比50H的值小,则跳转到LOOP1MOV50H,@R0;如果比50H的值大,则更新50H(最大值)的值LOOP1:INCR0DJNZR3,STARTSJMP$END(5)MOVDPTR,#2000HMOVR1,#0BH·11·LOOP:MOVXA,@DPTRANLA,#0FHMOVX@DPTR,AINCDPTRDJNZR1,LOOPSJMP$(6)MOVDPTR,#2040HMOVXA,@DPTRMOVR0,#20HMOV@R0,AMOVDPT
7、R,#3040HMOVXA,@DPTRXCHA,@R0MOVX@DPTRAMOVA,@R0MOVDPTR,#2040HMOVX@DPTR,A3-14被乘数是16位无符号数,低8位在M1单元,高8位在M1+1单元;乘数为8位无符号数,在M2单元。试编写将两数相乘并将积存入R2、R3和R4中的程序(R2内为高8位、R4内为低8位)。M1DATA20HM2DATA30HORG0000HMOVA,M1MOVB,M2MULABMOVR4,AMOVR3,BMOVA,M1+1MOVB,M2MULABADDA,R3MOVR3,AMOVA,BADDCA,#00HMOVR2,ASJ