欢迎来到天天文库
浏览记录
ID:37910863
大小:186.50 KB
页数:21页
时间:2019-06-02
《《单片机原理及接口技术》 梅丽凤第五版 _习题解答(课后答桉)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、3-11解答:(1)由于在工作寄存器与工作寄存器之间不能直接传送数据,所以需要借助累加器A。MOVA,R1MOVR0,A(2)片外RAM向片内RAM传送数据,不能直接进行,需要借助累加器A。由于片外RAM是60H单元,地址小于FFH,所以间址寄存器使用Ri即可。MOVR1,#60HMOVXA,@R1MOVR0,A(3)MOVR1,#60HMOVXA,@R1MOV40H,A(4)片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外。MOVDPTR,#1000HMOVXA,@DPTRM
2、OVR1,#40HMOVX@R1,A(5)ROM中的数据需要使用查表指令才能读出来,所以此题不能使用一般的传送指令从ROM中读数据。MOVDPTR,#2000HMOVA,#00HMOVCA,@A+DPTRMOVR2,A(6)MOVDPTR,#2000HMOVA,#00HMOVCA,@A+DPTRMOV40H,A(7)MOVDPTR,#2000HMOVA,#00HMOVCA,@A+DPTRMOVDPTR,#0200HMOVX@DPTR,A3-12解答:片外RAM与片内RAM之间的数据传送不能直接进行,需
3、要借助累加器A。数据交换需要使用数据交换指令XCH。MOVDPTR,#1000HMOVXA,@DPTRXCHA,60HMOVX@DPTR,A3-13解答:本题需要采用查表指令。ORG0200HMOVDPTR,#TABMOVA,R7MOVCA,@A+DPTRORG0300HTAB:DB0,1,4,9,16,25,36,49,64,813-16解答:本题涉及的是16位数的减法运算,首先应让低8位相减,然后让高8位带着借位相减。注意:应在低8位相减前将进位位CY清空0。CLRCMOVA,#56HSUBBA,
4、#78HMOVR0,AMOVA,#23HSUBBA,#45HMOVR1,A3-17解答:A←(A)∧23H,(A)=03H42H←(42H)∨(A),(42H)=37HA←(A)((R0)),(A)=34HA←(),(A)=CBH结果:(A)=CBH3-18解答:(1)MOVDPTR,#1000HMOVXA,@DPTRCPLAMOVX@DPTR,A(2)MOVR0,#60HMOVXA,@R0ANLA,#3FHXRLA,#03HMOVX@R0,A3-20解答:MOVDPTR,#1000HMOVXA,@D
5、PTRMOVB,#10MULABMOV30H,AMOV31H,BMOVDPTR,#2000HMOVXA,@DPTRMOVB,#32MULABADDA,30HMOV30H,AMOVA,BADDCA,31HMOV31H,A3-21解答:MOVR7,#10MOVDPTR,#block1MOVR0,#block2LOOP:MOVXA,@DPTRMOV@R0,AINCDPTRINCR0DJNZR7,LOOP3-22解答:MOVA,#01HLOOP:MOVP0,ARLALCALLDELAYSJMPLOOPDELA
6、Y:MOVR7,#00HDELAY1:MOVR6,#00HDJNZR6,$DJNZR7,DELAY1RET3-23解答:ORLC,11HMOV11H,CMOVC,P1.0ORLC,10HANLC,11HMOVP1.0,C3-24解答:(1)正确。(2)错误。原因:清零指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H~7FH),所以该条指令错误。(3)错误。原因:ACC是直接字节地址,不能用于清零指令。(4)正确。ACC.0是一个位,可以应用到清零指令中。(5)正确。
7、(6)错误。原因:取反指令只能用于累加器ACC和位操作,而本题中E0H只能是字节地址(位地址的范围是00H~7FH),所以该条指令错误。(7)错误。原因:ACC是直接字节地址,不能用于取反指令。(8)正确。ACC.0是一个位,可以应用到取反指令中。3-25解答:ANLA,BORLA,CMOVF,C3-27解答:(1)MOVP1,#0CAH;P1←CAH,P1=CAH=11001010BMOVA,#56H;A←56H,A=56H=01010110BJBP1.2,L1;若P1.2=1,则转移至L1JNBA
8、CC.3,L2;若ACC.3=0,则转移至L2…L1:…L2:…执行完本段程序后将转移至L2,因为P1.2=0,ACC.3=0,所以转至L2。(2)MOVA,#43H;A←43H,A=43H=01000011BJBACC.2,L1;若ACC.2=1,则转移至L1JBCACC.6,L2;若ACC.6=1,则转移至L2,同时将ACC.6清零…L1:…L2:…执行完本段程序后将转移至L2,因为ACC.2=0,ACC.6=1,所以转至L2,并且将ACC.6清零。
此文档下载收益归作者所有