3一2 51单片机指令的寻址方式 存储器配置(片内RAM) ·89C51片内RAM128字节(00H-7FH) 89C52片内RAM256字节(00H0FFH) 只能寄存器间接寻址 FFH FFH SFR分布在 52子系列才有 80H-FFH 的RAM区 其中92个位 可位寻址 89C52 80H 80H 7FH 256字节 普通RAM区 89C51 30H 只能直接寻址 128字节 2FH 位寻址区 開 工作寄存器区 21
21 存储器配置(片内RAM) • 89C51片内RAM 128字节(00H—7FH) • 89C52片内RAM 256字节(00H—0FFH) 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区 SFR分布在 80H-FFH 其中92个位 可位寻址 80H FFH 89C51 128字节 89C52 256字节 只能直接寻址 只能寄存器间接寻址 3-2 51单片机指令的寻址方式
3一251单片机指令的寻址方式 3.寄存器寻址 ·以通用寄存器的内容为操作数的寻址方式。通用寄存器指A、 B、DPTR以及RO~R7。 ·从寄存器中读取操作数或存放操作数进寄存器 例如:CLR A ;A-0 INC DPTR ;(DPTR)-(DPTR+1) ADD R5,#20H;(R5)←(R5+#20H) MOV A,B (A)(B) MOV30H,R0;(30H)←-(R0) MOVA,R1;(A)←-(R1)
• 以通用寄存器的内容为操作数的寻址方式。通用寄存器指A、 B 、DPTR以及R0~R7 。 • 从寄存器中读取操作数或存放操作数进寄存器 例如:CLR A ;A←0 INC DPTR ;(DPTR)←(DPTR+1) ADD R5,#20H ;(R5)←(R5+#20H) MOV A,B ; (A) ←(B) MOV 30H,R0 ;(30H)←(R0) MOV A,R1 ; (A) ←(R1) 3.寄存器寻址 3-2 51单片机指令的寻址方式
3一251单片机指令的寻址方式 4.寄存器间接寻址 。 寄存器中的内容是一个地址,由该地址单元寻址到所需的操作数。 间接寻址的存储器空间包括内部数据RAM和外部数据RAM。 ·能用于寄存器间接寻址的寄存器有R0,R1,DPTR,SP。 其中R0、R1必须是工作寄存器组中的寄存器。SP仅用于堆栈操作。 注意: 1)“间接”表示某寄存器中的“内容”只是一个“单元地址”, 这个地址单元中存放的数据才是要找的“操作数”。 2)符号“@”表示“在.”,其含义与读音皆同“at
• 寄存器中的内容是一个地址,由该地址单元寻址到所需的操作数。 间接寻址的存储器空间包括内部数据RAM和外部数据RAM。 • 能用于寄存器间接寻址的寄存器有R0,R1,DPTR,SP。 其中R0、R1必须是工作寄存器组中的寄存器。SP仅用于堆栈操作。 注意: 1)“间接”表示某寄存器中的“内容”只是一个“单元地址” , 这个地址单元中存放的数据才是要找的“操作数” 。 2)符号“@”表示“在.”,其含义与读音皆同“at” 。 4.寄存器间接寻址 3-2 51单片机指令的寻址方式
3一251单片机指令的寻址方式 [MOVR1,#30H;(R1)←立即数30H] MOV@R1,#0FH;(30H)←立即数0FH MOV A,@R1 (A)+((30H))=#0FH 片内 RAM RO 30H 30H 34H 34H 图3-1MOV@R0,A间接寻址示意 图
片内 RAM R0 30H A 34H 30H 34H 图3-1 MOV @R0,A间接寻址示意 图 3-2 51单片机指令的寻址方式 [ MOV R1,#30H ;(R1)← 立即数30H ] MOV @R1,#0FH ;(30H)←立即数0FH MOV A,@R1 ;(A)←((30H))=#0FH
3一251单片机指令的寻址方式 RAM RAM P2 34H DPTR 2000H R1 10H 3410H45H 2000H 30H A 45H A 30H 图3-2 MOVX A, 图3-3MOVX@DPTR, @R1间接寻址示意图 A间接寻址示意图
片 外 RAM P2 34H A 45H 3410H 45H R1 10H 片 外 RAM DPTR 2000H A 30H 2000H 30H 图3-2 MOVX A, @R1间接寻址示意图 图3-3 MOVX @DPTR, A间接寻址示意图 3-2 51单片机指令的寻址方式