第三章MCS51指令系统 其中: B仅在乘除法指令中为寄存器寻址,在其他指令中为直接寻址。 A既可以是直接寻址,也可以是寄存器寻址。 直接寻址和寄存器寻址的差别在于直接寻址是以操作数所在的单 元地址(占一个字节)出现在指令码中,而寄存器寻址是寄存器编 码出现在指令码中。由于可用作寄存器寻址的寄存器少、编码位 数少(少于三位二进制数),通常操作码和寄存器编码合用一个字 节,因此寄存器寻址的指令机器码短,执行快。 除了上面所指的几个寄存器外的特殊功能寄存器一律属于直接寻 址
第三章 MCS-51 指令系统 1 6 其中: B仅在乘除法指令中为寄存器寻址,在其他指令中为直接寻址。 A既可以是直接寻址,也可以是寄存器寻址。 直接寻址和寄存器寻址的差别在于直接寻址是以操作数所在的单 元地址(占一个字节)出现在指令码中,而寄存器寻址是寄存器编 码出现在指令码中。由于可用作寄存器寻址的寄存器少、编码位 数少(少于三位二进制数),通常操作码和寄存器编码合用一个字 节,因此寄存器寻址的指令机器码短,执行快。 除了上面所指的几个寄存器外的特殊功能寄存器一律属于直接寻 址
第三章MCS51指令系统 324寄存器间接寻址 以寄存器中的内容为地址,以该地址中的内容为操作数的寻 址方式称为寄存器间接寻址。 可用的寄存器:R0、R1和DPTR。 在寄存器的名称前面加前缀标志“@”以区别于寄存器寻址 方式。例如, MOVA,@R0;A←(R0)
第三章 MCS-51 指令系统 1 7 3.2.4 寄存器间接寻址 以寄存器中的内容为地址,以该地址中的内容为操作数的寻 址方式称为寄存器间接寻址。 可用的寄存器:R0、R1和DPTR。 在寄存器的名称前面加前缀标志“@”以区别于寄存器寻址 方式。例如, MOV A,@R0 ;A←((R0))
第三章MCS51指令系统 MOVA,@R0;A←(R0) 内部 RAM地址 若(R0)=34H,(34H)=56H SFRL56H、0EOH(A) 低12856H34H 单元 34H/OOH(RO 图3-4指令MOVA,@RO的操作示意图
第三章 MCS-51 指令系统 1 8 34H 内部 RAM SFR 56H 低128 56H 单元 00H (R0) 34H 0E0H (A) 地址 … … … … 图3-4 指令MOV A, @R0的操作示意图 若(R0)=34H,(34H)=56H MOV A,@R0 ;A←((R0))
第三章MCS51指令系统 寄存器间接寻址的寻址范围:片内RAM和片外RAM 当寻址片内RAM时,使用R0或R1作间址寄存器,其通用形 式为aRi(i=0或1)。 当寻址片外RAM时,使用DPTR作间址寄存器,其通用形式 为 @DPTR。 MOV A @R0 ;A←(R0) MOV aRI, A ;(R0)←A MOⅴXA,@R0 ;A←(R0) MOⅴXA,@DPTR;A←(DPTR)
第三章 MCS-51 指令系统 1 9 寄存器间接寻址的寻址范围:片内RAM和片外RAM。 当寻址片内RAM时,使用R0或R1作间址寄存器,其通用形 式为 @Ri(i=0或1) 。 当寻址片外RAM时,使用DPTR作间址寄存器,其通用形式 为 @DPTR。 MOV A, @R0 ;A←((R0)), MOV @R1,A ;((R0))←A MOVX A, @R0 ;A←((R0)) MOVX A, @DPTR ;A←((DPTR))
第三章MCS51指令系统 32.5变址寻址(或基址加变址寻址) 以DPTR或PC作基址寄存器,累加器A作变址寄存器,并 以两者内容相加形成的16位地址作为操作数地址的寻址方式称 为变址寻址,或基址加变址寻址方式 寻址空间:程序存储器ROM。 指令:MOVC 例如: ORG 1000H MOCA,@A+DPTR;A←(A)+(DPTR),机器码为93H 若(DPTR)=2030H,(A)=50H
第三章 MCS-51 指令系统 1 10 3.2.5 变址寻址(或基址加变址寻址) 以DPTR或PC作基址寄存器,累加器A作变址寄存器,并 以两者内容相加形成的16位地址作为操作数地址的寻址方式称 为变址寻址,或基址加变址寻址方式。 寻址空间:程序存储器ROM。 指令:MOVC 例如: ORG 1000H MOVC A,@A+DPTR;A←((A)+(DPTR)),机器码为93H 若(DPTR)=2030H,(A)=50H