51单片机寻址方式.pdf
"51单片机寻址方式" 一、 立即寻址 立即寻址是指在指令中直接给出操作数的方式。它使用“#”作前缀,例如 MOV A,#20H。这意味着操作数20H就是立即数,存放在程序存储器中的常数。在 8051 单片机中,立即寻址方式的指令都是双字节的。例如,MOV A,#3AH 这条指令的指令代码为 74H、3AH,是双字节指令,这条指令的功能是把立即数 3AH 送入累加器 A 中。 二、 直接寻址 直接寻址是指指令中直接给出操作数的地址。例如,MOV A,30H,这条指令中操作数就在 30H 单元中,也就是 30H 是操作数的地址,并非操作数。直接寻址可以用来表示内部数据存储器、位地址空间以及特殊功能寄存器。在 80C51 单片机中,直接地址只能用来表示内部数据存储器、位地址空间以及特殊功能寄存器。 三、 寄存器寻址 寄存器寻址是指操作数存放在工作寄存器 R0 ~ R7 中,或寄存器 B 中。例如,MOV A,R2 寄存器寻址的寻址范围是:4 个工作寄存器组共有 32 个通用寄存器,但在指令中只能使用当前寄存器组。寄存器寻址方式是指操作数在寄存器中,因此指定了寄存器名称就能得到操作数。 四、 寄存器间接寻址 寄存器间接寻址是指寄存器的内容作为操作数存放的地址,指令中间接寻址寄存器前用“@”表示前缀。例如,MOV R0,#30H ;将值 30H 加载到 R0 中 MOV A,@R0 ;把内部 RAM 地址 30H 内的值放到累加器 A 中 MOVX A,@R0 ;把外部 RAM 地址 30H 内的值放到累加器 A 中。 在 8051 单片机中,有 7 种寻址方式,它们分别是:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、间接寻址和基址变址寻址。在学习这些寻址方式时,我们需要了解它们的特点和使用场景,以便更好地应用于实际编程中。