、直接寻址 指令中直接给出操作数所在存储单元的地址。 可以直接寻址的存储单元是:片内RAM中的所有 单元,即片内RAM的低128字节和所有的特殊功能寄 存器(SFR) 如:MOVA,3AH;(3AH)→A MOV Pl, RO (R0)→P1口 nc 58H ;(58H)+1→58H sUBB A, TLO: (A-(TLO) >A
二、直接寻址 指令中直接给出操作数所在存储单元的地址。 可以直接寻址的存储单元是:片内RAM中的所有 单元,即片内RAM的低128字节和所有的特殊功能寄 存器(SFR) 。 如:MOV A,3AH ;(3AH)→A MOV P1,R0 ;(R0)→P1口 INC 58H ;(58H)+1 →58H SUBB A,TL0 ;(A)-(TL0) →A
三、立即数寻址 操作数在指令中,在操作码后面。用“#”表示。 操作数可以是8位的,也可以是16位的。 如:MOVA,3AH;(3AH)→A MOVA,#3AH;3AH→A MOV DPTR,#23C8H 23C8H>DPTR Add A,#OD4H ;(A)+0D4H→A
三、立即数寻址 操作数在指令中,在操作码后面。用“#”表示。 操作数可以是8位的,也可以是16位的。 如:MOV A,3AH ;(3AH)→A MOV A,#3AH ;3AH→A MOV DPTR,#23C8H ;23C8H →DPTR ADD A,#0D4H ;(A)+0D4H →A
四、寄存器间接寻址 指令中寄存器中的内容给出的是操作数的地址。 8051.定:R0、R和DPTR可以作为间接寻址寄存器 1、R0、R1间址访问片内RAM的低128B或片外RAM 的低256B空间 如:设(R0)=65H,(65H)=47H MOVA,@RO;(65H)→A,A中的值是47H MOV @RO,#3AH 3AH265H MOVX A,@R0;外RAM的(65H)→A
四、寄存器间接寻址 指令中寄存器中的内容给出的是操作数的地址。 8051规定:R0、R1和DPTR可以作为间接寻址寄存器。 1、R0、R1间址访问片内RAM的低128B或片外RAM 的低256B空间 如:设(R0)=65H,(65H)=47H MOV A,@R0 ;(65H)→A,A中的值是47H MOV @R0,#3AH ;3AH→65H MOVX A,@R0 ;外RAM的(65H) →A
2、DPTR间址访问片外RAM的64KB空间 如:设(DPTR)=2000H MOVX QDPTR,A;A→外RAM的2000H单元 MOVX A, @DPTR;外RAM的2000H单元→A DPTR ROM 数据存储器 02F1H 地址 +→030H1BH RO 65H70 65 47H A「1Hh A[47H4② A□1B4 图31间接寻址MVA,@R0,意图 图32变址寻址示意图
2、DPTR间址访问片外RAM的64KB空间 如:设(DPTR)=2000H MOVX @DPTR,A ;A→外RAM的2000H单元 MOVX A,@DPTR ;外RAM的2000H单元→ A
五、变址寻址(基址+变址间接寻址) DPTR或PC作为基地址寄存器、A作为变地址寄存 器的间接寻址 只能访问程序存储器,范围:64KB 如: MOVC A,@A+DPTR;(A)+(DPTR)→A MOVC A,OA+PC ;((A)+(PC))>A JMP @A+DPTR ;((A)+(DPTR))>PC 该寻址方式多用于查表操作
五、变址寻址(基址+变址间接寻址) DPTR或PC作为基地址寄存器、A作为变地址寄存 器的间接寻址。 只能访问程序存储器,范围:64KB 如:MOVC A,@A+DPTR ;((A)+(DPTR))→A MOVC A,@A+PC ;((A)+(PC))→A JMP @A+DPTR ;((A)+(DPTR))→PC 该寻址方式多用于查表操作