31寻址方式 指令的格式: LOOP. MOV RO ;将R0的内容送A [标号]操作码第一操作数第二操作数 [注释] (目的操作数) (源操作数) 寻址方式:寻找(或确定)操作数所在单元地址的方式。 寻址方式越多,计算机寻址能力越强,但指令系统也越复杂 说明:以下讨论的寻址方式都是针对源操作数的。但实际上目 的操作数也有寻址问题
3.1 寻址方式 指令的格式: LOOP: MOV A, R0 ;将R0的内容送A [标号] 操作码 第一操作数 第二操作数 [注释] (目的操作数) (源操作数) 寻址方式:寻找(或确定)操作数所在单元地址的方式。 寻址方式越多,计算机寻址能力越强,但指令系统也越复杂。 说明:以下讨论的寻址方式都是针对源操作数的。但实际上目 的操作数也有寻址问题
311寄存器寻址 MOVA Rn 操作数在寄存器中,如Ro~R7,A、B、C(位)、DPTR 312直接寻址MoVA40H 操作数直接以单元地址形式给出(也可以寄存器名称形式给出,但 A B DPTR除外) 如:MoVA,Po MOV RO THO 313寄存器间接寻址MoVA@R1 操作数是通过寄存器间接得到的 3.14立即寻址 MOV A #40H 操作数在指令中直接给出。 315基址寄存器加变址寄存器寻址 以DPTR或PC为基址寄存器,以A为变址寄存器, 以两者相加形成的16位地址为操作数的地址 MOVCA A+DPTR MOVC A(@A+PC
3.1.1 寄存器寻址 MOV A, Rn 操作数在寄存器中,如R0~R7,A、B、Cy(位)、DPTR 3.1.2 直接寻址 MOV A, 40H 操作数直接以单元地址形式给出(也可以寄存器名称形式给出,但A B DPTR 除外) 如: MOV A, P0 ; MOV R0, TH0 3.1.3 寄存器间接寻址 MOV A, @R1 操作数是通过寄存器间接得到的。 3.1.4 立即寻址 MOV A, #40H 操作数在指令中直接给出。 3.1.5 基址寄存器加变址寄存器寻址 以DPTR或PC为基址寄存器,以A为变址寄存器, 以两者相加形成的16位地址为操作数的地址。 MOVC A, @A+DPTR MOVC A, @A+PC
5.16位数据传输指令 MOV dPtR #data16: dptr+# data16 DPTR-数据指针,为SFR中DPH、DPL MOV DPTR,#2010H 相当于: MOV DPH,#20H MOV DPL #10H
5. 16位数据传输指令 MOV DPTR, #data16; DPTR← #data16 DPTR----数据指针,为SFR中DPH、DPL MOV DPTR, #2010H 相当于:MOV DPH, #20H MOV DPL, #10H
6.堆栈操作指令 进栈指令 PUSH direct 如:(SP)=60H,(A=30H,(B)=70H时,执行 (SP+3) PUSH ACC;(SP)+1=61H→SP,(A)→61H(SP+2) PUSH B;(SP)+1=62H→SP,(B)→62H (SP+1) 结果:(61H)=30H,(62H)=70H,(SP)=62H (SP) 退栈指令 PoP direct 如:(SP)=62H,(62H)=70H,61H)=30H时,执行 POP DPH;(SP)→DPH,(SP)-1=61H→sP POP DPHL;(SP)→DPL,(SP)-1=60H→SP 结果:(DPTR)=7030H,(SP)=60H 堆栈的存储原则:先进后出
6. 堆栈操作指令 进栈指令 PUSH direct 如: (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 (SP+3) (SP+2) (SP) (SP+1) 退栈指令 POP direct 如: (SP)=62H, (62H)=70H ,(61H)=30H 时,执行 POP DPH ;((SP)) →DPH, (SP)-1=61H→SP POP DPHL ;((SP)) →DPL, (SP)-1=60H→SP 结果: (DPTR)=7030H, (SP)=60H 堆栈的存储原则:先进后出
7.累加器A与外部数据传输指令 MOVX A, @DPTR A+((DPTR)) 地址范围64K MOVX A,@R;A←(R) 地址范围0~255 MOVX @DPTR, A;((DPTRD)+(A) MOVX@R,A;(R)←(A
7. 累加器A与外部数据传输指令 MOVX A, @DPTR ; A← ((DPTR)) 地址范围64K MOVX A, @Ri ; A← ((Ri)) 地址范围0~255 MOVX @DPTR, A ; ((DPTR)) ←(A) MOVX @Ri , A ; ((Ri)) ←(A)