文档详情

第4讲 数据传送指令.ppt

发布:2015-09-08约3.69千字共21页下载文档
文本预览下载声明
6.变址寻址方式:是以DPTR或PC作基址寄存器,以累加器A作为变址寄存器 7.位寻址方式 数据传送类指令 使用最频繁的一类指令,通用格式: MOV 目的操作数,源操作数 属“复制”性质,而不是“搬家” 数据传送类指令不影响标志位Cy、Ac和OV,但会影响奇偶标志位P。 1.以累加器为目的操作数的指令 MOV A,#data ; #data→A MOV A,Rn ; (Rn)→A,n=0~7 MOV A,direct ;(direct)→A MOV A,@Ri ; ((Ri))→A,i=0,1 例如: MOV A,R6 ;(R6)→A MOV A,70H ;(70H)→A MOV A,@R0 ;((R0))→A MOV A,#78H ;78H→A 2. 以Rn为目的操作数的指令 MOV Rn,A ; (A)→Rn,n=0~7 MOV Rn,direct ;(direct)→Rn,n=0~7 MOV Rn,#data ; #data→Rn,n=0~7 功能:是把源操作数的内容送入当前一组工作寄存器区的R0~R7中的某一个寄存器。 3.以直接地址direct为目的操作数的指令 MOV direct,A ; (A)→direct MOV direct,Rn;(Rn)→direct, n=0~7 MOV direct1,direct2; MOV direct,@Ri ; ((Ri))→direct MOV direct,#data; #data→direct 功能:把源操作数送入直接地址指出的存储单元。direct指的是内部RAM或SFR的地址。 4.以寄存器间接地址为目的操作数的指令 MOV @Ri,A ;(A)→((Ri)),i=0,1 MOV @Ri,direct ; (direct)→((Ri)) MOV @Ri,#data ; #data→((Ri)) 5.16位数传送指令 MOV DPTR,#data16 ; #data16→DPTR 唯一的16位数据的传送指令 ,立即数的高8位送入DPH,立即数的低8位送入DPL。 6.堆栈操作指令 MCS-51内部RAM中可以设定一个后进先出(LIFO-Last In First Out)的区域称作堆栈. 堆栈指针SP指出堆栈的栈顶位置。 (1)进栈指令 PUSH direct 先将栈指针SP加1,然后把direct中的内容送到栈指针SP指示的内部RAM单元中。 例如: 当(SP)=60H,(A)=30H,(B)=70H时, 执行: PUSH ACC ;(SP)+1=61H→SP,(A)→61H PUSH B ; (SP)+1=62H→SP,(B)→62H 结果:(61H)=30H,(62H)=70H,(SP)=62H (2)出栈指令 POP direct SP指示的栈顶(内部RAM单元)内容送入direct字节单元中,SP减1. 例如: 当 (SP)=62H,(62H)=70H,(61H)=30H, 执行: POP DPH ;((SP))→DPH,(SP)-1→SP POP DPL ;((SP))→DPL,(SP)-1→SP 结果:(DPTR)=7030H,(SP)=60H 注意:堆栈操作指令是直接寻址指令,PUSH或POP后必须直接跟一个地址 例:PUSH ACC PUSH 00H POP ACC PUSH 00H 7.累加器A与外部数据存储器传送指令 MOVX A,@DPTR ;((DPTR))→A,读外部RAM/IO MOVX A,@Ri ;((Ri))→A,读外部RAM/IO MOVX @DPTR,A;(A)→((DPTR)),写外部RAM/IO MOVX @Ri,A ;(A)→((Ri)),写外部RAM/IO 功能:读外部RAM存储器或I/O中的一个字节,
显示全部
相似文档