资源描述:
《传送指令算术指令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、指令格式如下:[标号]:操作码[目的操作数][,源操作数];[注释]标号加在指令之前,标号必须以字母开始,后跟1~8个字母或数字,并以“:”结尾。注意:不能用指令助记符、伪指令或寄存器名来作标号。标号代表指令第一个字节所存放的存储单元的地址。是用英文缩写的指令功能助记符。寻址方式立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址(1)MOV指令实现数在片内RAM单元之间、寄存器之间、寄存器与RAM单元之间的传送。MOV<目的操作数>,<源操作数>;目的操作数单元←源操作数(或单元)访问片内RAM的一般传送指令表如表3-1所示
2、:(课本51页)MOVA,R1;将工作寄存器R1中的值送入A,R1中的值保持不变。MOVA,30H;将30H单元中的值送入A,30H单元中的值保持不变。MOVA,@R1;如执行命令前R1中的值为30H,则是将30H单元中的值送入A中。MOVA,#34H;将立即数34H送入A中,执行完本条指令后,A中的值是34H。以累加器为目的操作数指令为例:例:分析程序的执行结果。设(30H)=50H,试分析执行下面程序后各有关单元的内容。程序执行结果是(A)=30H,(R0)=60H,(R1)=30H,(60H)=50H,(40H)=50H,(3
3、0H)=50H内容未变。MOV60H,#30H;立即数30H送60H单元,(60H)=30HMOVR0,#60H;立即数60H送入R0,(R0)=60HMOVA,@R0;60H单元内容送入A,(A)=30HMOVR1,A;A中的内容送入R1,(R1)=30HMOV40H,@R1;30H中的内容送40H单元,(40H)=50HMOV60H,30H;30H单元的内容送入60H,(60H)=50H例:设内部RAM(30H)=40H,(40H)=10H,(10H)=00H,(P1)=0CAH,分析以下程序执行后各单元及寄存器、P2口的内容。
4、执行上述指令后的结果为:(R0)=30H,(R1)=(A)=40H,(B)=10H,(40H)=(P1)=(P2)=0CAH,(10H)=20H。MOVR0,#30H;(R0)=30HMOVA,@R0;(A)=40HMOVR1,A;(R1)=40HMOVB,@R1;(B)=10HMOV@R1,P1;(40H)=0CAHMOVP2,P1;(P2)=(P1)=0CAHMOV10H,#20H;(10H)=20H指令助记符操作功能注释MOVXA,@DPTR;(A)←((DPTR))MOVXA,@Ri;(A)←((Ri)),i=0或1MOVX
5、@DPTR,A;((DPTR))←(A)MOVX@Ri,A;((Ri))←(A),i=0或1(2)累加器与外部数据存储器数据传送指令对片外扩展的数据存储器RAM或I/O口进行数据传送,必须采用寄存器间接寻址的方法,通过累加器A来完成。这类指令共有以下4条单字节指令,指令操作码助记符都为MOVX。例:若外部数据空间存储单元地址是2097H,访问该单元,将其内容读入A。(P52页)方法1:MOVDPTR,#2097HMOVXA,@DPTR方法2:MOVP2,#20H;将高8位地址→P2MOVR0,#97H;低8位地址→R0MOVXA,@
6、R0;指定的外部RAM内容→A例:设外部RAM(1203H)=1FH,分析以下指令执行后的结果。MOVDPTR,#1203H;(DPTR)←1203HMOVXA,@DPTR;(A)←((DPTR))MOV30H,A;(30H)←(A)MOVA,#0FH;(A)←0FHMOVX@DPTR,A;((DPTR))←(A)执行结果为:(DPTR)=1203H,(30H)=1FH,(1203H)=(A)=0FH。例:把片内6AH单元中的数取出,传送到外部数据存储单元3000H单元中去。MOVX@DPTR,AMOVA,6AHMOVDPTR,#3
7、000H(3)程序存储器内容送累加器MOVC(MoveCode):读取程序存储器数据表格的数据传送;第一条指令的基址寄存器为DPTR,因此其寻址范围为整个程序存储器的64K空间,表格可以放在程序存储器的任何位置。指令助记符操作功能注释机器码(H)MOVCA,@A+DPTR;(A)←((A)+(DPTR))93MOVCA,@A+PC;(PC)←(PC)+1,(A)←((A)+(PC))83第二条指令的基址寄存器为PC,该指令中访问程序存储器的地址为(A)十(PC),其中(PC)为程序计数器的当前内容,即查表指令的地址加1。因此,当基址
8、寄存器为PC时,查表范围实际为查表指令后256个字节的地址空间。例:在程序存储器中,数据表格为:7010H:02H7011H:04H7012H:06H7013H:08H执行程序:1004H:MOVA,#10H;A10H1006H:MO