资源描述:
《指令系统及程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1、用数据传送指令完成如下功能:(1)工作寄存器R2的内容送给R3;MOVA,R2 MOVR3,A;两个工作寄存器之间不能直接进行数据传送(2)内部RAM20H单元的内容送给内部RAM30H单元; MOV30H,20H;两个直接地址之间可以直接进行数据传送(3)内部RAM20H单元的内容送给外部RAM20H单元; MOV R1,#20H MOV A,@R1 MOVX@R1,A;内部RAM中的数据必须要先送到累加器A再由A送出到外部RAM去 (4)外部RAM20H单元的内容送给外部RAM2000H单元; MOVRI,#20H MO
2、VDPTR,#2000H MOVXA,@R1 MOVX@DPTR,A;两个外部RAM单元也不能直接进行数据传递,必须要先将外部RAM一个单元数据送给A再由A到另一个外部RAM单元中去 (5)ROM30H单元的内容送给内部RAM30H单元; MOVDPTR,#0030H MOVA,#00H MOVCA,@A+DPTR MOV30H,A要先将ROM指定单元数据送给A再由A到内部RAM指定单元中 (6)ROM3000H单元的内容送给外部RAM2000H单元;MOVDPTR,#3000H MOVA,#00H
3、MOVCA,@A+DPTR MOVDPTR,#2000H MOVX@DPTR,A要先将ROM指定单元数据送给A再由A到外部RAM指定单元中去小结:1、注意数据传送类指令有三种:MOV(内部数据传送)、MOVC(从程序存储器中取数)、MOVX(累加器A与外部数据存储器间进行数据传递),要注意区分三种指令,不要混淆;2、外部数据存储器(外部RAM)只能用寄存器间接寻址方式访问,且只能与累加器A进行数据传送;3、外部数据存储器(外部RAM)使用寄存器间接寻址的地址指针选取原则:地址在8位以内(00H-FFH)可以使用R0、R1,也可以使用DPTR;地址超过8位,
4、只能使用DPTR;4、内部数据存储器(内部RAM)低128B可以用直接寻址方式也可以寄存器间接寻址方式访问;内部数据存储器高128B(仅52子系列有)只能用寄存器间接寻址方式访问,地址指针选取R0或R1;5、程序存储器(ROM)是只读的,从ROM中读取数据用MOVC指令,对应变址寻址方式,要预先在A和DPTR(MOVCA,@A+DPTR)或A(MOVCA,@A+PC)中设好相应的值; 2、外部RAM20H单元的内容和外部RAM21H单元的内容相乘,结果低八位送外部RAM22H单元,高八位送外部RAM23H单元MOVR1,#20H MOVXA,@R1 MOVB,A INC
5、R1 MOVXA,@R1 MULAB INCR1 MOVX@R1,A INCR1 MOVA,B MOVX@R1,A外部数据存储器(外部RAM)只能用寄存器间接寻址方式访问,且只能与累加器A进行数据传送;如MOVXB,@DPTR是非法指令。3、完成两个三字节二进制数的加法:第一个数存在内部RAM的30H、31H、32H(32H为最低字节)单元,第二个数存在内部RAM的40H、41H、42H(42H为最低字节)单元,结果存入内部RAM的30H、31H、32H(32H为最低字节)单元。 ORG0000H SJMPMAIN ORG0030H MAIN
6、:CLRC MOVR2,#3 LOOP:MOVR0,#32H MOVR1,#42H MOVA,R0 ADDCA,R1 MOVR0,A DECR0 DECR1 DJNZR2,LOOP SJMP$注意三字节数加法,高字节做加法时要考虑到低字节所产生的进位,所以用ADDC指令。4、用逻辑运算指令完成如下功能:(1)内部RAM20H单元数的低三位清零,其余位保持不变;ANL20H,#0F8H; (2)内部RAM20H单元数的高两位置1,其余位保持不变;ORL20H,#0C0H (3)内部RAM
7、20H单元数的高两位取反,其余位保持不变; XRL20H,#0C0H (4)内部RAM20H单元数的所有位取反;XRL20H,#0FFH说明:1、逻辑与通常用来将累加器A或内部RAM某单元的某几位清0;2、逻辑或通常用来将累加器A或内部RAM某单元的某几位置1;3、逻辑异或通常用来将累加器A或内部RAM某单元的某几位取反;4、注意根据要求选取的立即数5.MOVR0,#30H ;(R0)=30H MOVA,@R0 ;(A)=(30H)=64H MOVDPTR,#1000H ;(DP