资源描述:
《单片机分析程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、四、分析程序并填空()1.执行下列程序段后,(P1)=___9BH____。MOVP1,#5DHCPLP1.1CPLP1.2CLRP1.6SETBP1.72.执行下列程序段后,(A)=__8BH_____,(CY)=__不影响__。MOVA,#C5HRLA3.下列程序段执行后,(R0)=___7FH____,(7EH)=__00H__,(7FH)=_41H______。MOVR0,#7EHMOV7EH,#0FFHMOV7FH,#40HINC@R0INCR0INC@R04.已知(SP)=60H,子程序
2、SUBTRN的首地址为0345H,现执行位于0123H的ACALLSUBTRN双字节指令后,(PC)=__0345H_,(61H)=___25H____,(62H)=__01H__。5.阅读下列程序,说明其功能。MOVR0,#dataMOVA,@R0RLAMOVR1,ARLARLAADDA,R1MOV@R0,ARET;(data)×10操作6.改错1.MULRoRl乘法指令应使用A、B寄存器操作2.MOVA,@R7间接寄存器使用R7有误,间址寄存器只能使用R0、R13.MOVA,#3000H8位累加
3、器A不能接受16位数据4.MOVC@A+DPTR,AMOVC指令为对程序存储区操作指令,累加器的内容不可通过变址方式送入程序存储器,两操作数写反了。5.UMP#1000H长转移指令中的操作数为16位转移地址,不能用立即数的形式来表达。7.说明MCS—51单片机的下列各条指令中源操作数的寻址方式(可直接在每条指令后面书写)1.ANLA,20H直接寻址2.ADDCA,#20H立即寻址3.JZrel相对寻址4.CLRC位寻址5.RRA寄存器寻址8.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后
4、,A中的结果是什么?(5分)设(60H)=35H,((A)=19H,(R0)=30H,(30H)=0FH。(1)MOVA,#48H;寻址方式:立即寻址((A)=48H(2)ADDA,60H;寻址方式:直接寻址;((A)=4EH(3)ANLA,@R0;寻址方式:寄存器间接寻址;((A)=09H9.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?(15分)MOVR1,#30H;(R1)=30HMOVA,#64H;((A)=64HADDA,#47H;((A)=ABH(CY)=0(A(
5、C)=0DAA;((A)=11H,(CY)=1(A(C)=1MOV@R1,A;(R1)=30H,(30H)=11H此程序段完成的功能:(5分)求两个BCD码数(64H和47H)的和,并将结果放在内部RAM的30H单元。10.已知(R0)=20H,(20H)=10H,(P0)=30H,(R2)=20H,执行如下程序段后(40H)=MOV@R0,#11HMOVA,R2ADDA,20HMOVPSW,#80HSUBBA,P0XRLA,#45HMOV40H,A答:(20H)←11H((A)←20H((A)←(
6、(A)+(20)(CY)=1((A)-(P0)-(CY)→((A)即((A)←00H((A)+45H→((A)即((A)←45H(40H)←45H11.已知(R0)=20H,(20H)=36H,(21H)=17H,(36H)=34H,执行过程如下:MOVA,@R0MOVR0,AMOVA,@R0ADDA,21HORLA,#21HRLAMOVR2,ARET则执行结束(R0)=(R2)=答:((A)←((R0))((A)=36H(R0)←((A)(R0)←36H((A)←((R0))((A)←34H((A
7、)←((A)+(21H)34H+17H=4BH((A)←((A)21H4BH21H=6BH((A)←D6H(R2)←D6H(R0)=36H(R2)=D6H12.执行下面一段程序;MOVSP,#60HMOVA,#10HMOVB,#01HPUSHAPUSHBPOPAPOPBA,B的内容是:(A)=(B)=答:((A)=01H((B)=10H13.设在31H单元存有#23H,执行下面程序:MOVA,31HANLA,#0FHMOV41H,AMOVA,31HANLA,#0F0HSWAPAMOV42H,A则(4
8、1H)=(42H)=答:(41H)=03H(42H)=02H三.计算题(22分)14.((A)=3BH,执行ANLA,#9EH指令后,((A)=1AH(CY)=不受影响15.JNZREL为2B指令,放于1308H,转移目标地址是134AH,求偏移量REL=40H16.若((A)=C3H,(R0)=AAH,执行ADDA,R0后,((A)=6DH(CY)=1(OV)=1(A(C)=0177.若((A)=50H,((B)=A0H,执行MULAB后,((A)=00H((B)=