正在加载图片...
3.2.2直接寻址 ·指令中直接给出操作数地址的寻址方式,能进行直接寻址的存储空间有SFR寄存器 和内部数据RAM。 例如: MOV PSW,#2OH;PSW←#2OH,PSW为直接寻址寄存器的符号地址 MOVA,30H;A←3OH内部RAM单元中的内容,3OH为直接给出的内部RAM的地 址。 ANL 70H, #48H 把RAM中70H单元内容同48H相“与”结果一〉7OH单元中 3.2.3寄存器寻址 以通用寄存器的内容为操作数的寻址方式。通用寄存器指A、B、DPTR以及R0~R7。 例如:CLRA;A←0 INC DPTR;DPTR←DPTR+1 ADd R5, 20H R5+#20H+R5 3.2.4寄存器间接寻址 ·以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。间接寻址的存储 器空间包括内部数据RAM和外部数据RAM ·能用于寄存器间接寻址的寄存器有RO,R1,DPTR,SP。其中R0、R1必须是工作寄 存器组中的寄存器。SP仅用于堆栈操作 例如:MOV@R0,A:内部RAM(R0)←A其指令操作过程示意图如图所示。 又如:MOXA,@R1:A←外部RAM(P2R1)其指令操作过程示意图如图所示 再如:MOVX@DPTR,A;外部RAM(DPTR)←A 其指令操作过程示意图如图所示。 3.2.5变址寻址 ·变址寻址只能对程序存储器中数据进行操作。由于程序存储器是只读的,因此变 址寻址只有读操作而无写操作,在指令符号上采用MOVC的形式(如图所示) 例如: MOVC A,@A+DPTR;A←(A+DPTR) 又如, MOVC A,@A+PC A←(A+PC) 这条指令与上条指令不同的是,基址寄存器是PC 3.2.6相对寻址 ·以当前程序计数器PC的内容为基础,加上指令给出的一字节补码数(偏移量)形 成新的PC值的寻址方式 相对寻址用于修改PC值,主要用于实现程序的分支转移。 例如,SJMP08H PC←PC+2+08H 指令操作示意图如图所示。3.2.2 直接寻址 • 指令中直接给出操作数地址的寻址方式,能进行直接寻址的存储空间有SFR寄存器 和内部数据RAM。 例如:MOV PSW,# 20H ;PSW←#20H, PSW为直接寻址寄存器的符号地址。 MOV A,30H ;A←30H内部RAM单元中的内容,30H为直接给出的内部RAM的地 址。 ANL 70H ,#48H 把RAM中70H单元内容同48H相“与”结果—〉70H单元中 3.2.3 寄存器寻址 • 以通用寄存器的内容为操作数的寻址方式。通用寄存器指A、B 、DPTR以及R0~R7 。 例如:CLR A ;A←0 INC DPTR ;DPTR←DPTR+1 ADD R5,# 20H ;R5←#20H+R5 3.2.4 寄存器间接寻址 • 以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。间接寻址的存储 器空间包括内部数据RAM和外部数据RAM。 • 能用于寄存器间接寻址的寄存器有R0,R1,DPTR,SP。其中R0、R1必须是工作寄 存器组中的寄存器。SP仅用于堆栈操作。 例如:MOV @R0,A ;内部RAM(R0)←A其指令操作过程示意图如图所示。 又如:MOVX A,@R1;A←外部RAM(P2R1)其指令操作过程示意图如图所示。 再如:MOVX @DPTR,A;外部RAM(DPTR)←A 其指令操作过程示意图如图 所示。 3.2.5 变址寻址 • 变址寻址只能对程序存储器中数据进行操作。由于程序存储器是只读的,因此变 址寻址只有读操作而无写操作,在指令符号上采用MOVC的形式(如图所示)。 例如:MOVC A,@ A+DPTR;A←(A+DPTR) 又如,MOVC A,@ A+PC ;A←(A+PC) 这条指令与上条指令不同的是,基址寄存器是PC。 3.2.6 相对寻址 • 以当前程序计数器PC的内容为基础,加上指令给出的一字节补码数(偏移量)形 成新的PC值的寻址方式。 • 相对寻址用于修改PC值,主要用于实现程序的分支转移。 例如,SJMP 08H ;PC←PC+2+08H 指令操作示意图如图 所示
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有