★3.2.2 直接寻址方式
2025年09月26日
★3.2.2 直接寻址方式
直接寻址是指在指令中直接给出存放数据的地址(不是立即数,并且只限于片内RAM范围)。直接寻址只能访问特殊功能寄存器、内部数据存储器和位地址空间。
直接寻址的特点是执行指令时,从该地址对应的单元中直接得到操作数,该寻址方式只能给出8位地址。8位直接地址的符号是direct,书写指令时,direct的具体表示方法如下。
片内RAM低端128B(00H~7FH)的地址单元用这些单元的字节地址表示,其中,工作寄存器区的单元也用字节地址表示,不能使用寄存器名,以区别于寄存器寻址。例如,当使用第0组工作寄存器时,R0的direct地址应写为00H。例如,MOV A,00H或MOV 30H,20H。
片内RAM高端128B(80H~0FFH)中的特殊功能寄存器SFR,通常直接用它们的符号形式表示(但累加器ACC此时不能简写为A,否则为寄存器寻址),也可以用它们的单元地址表示。例如,MOV A,80H或MOV A,P0这两条指令等价。
特别说明:指令中直接给出操作数的单元地址,而不是操作数,该单元地址中的内容才是真正的操作数。格式上没有“#”号,以区别于立即数寻址。直接寻址是访问片内所有特殊功能寄存器的唯一寻址方式。
例3-4:MOV A,30H;机器码为E530H,把直接地址30H单元的内容送累加器A,如图3-4所示。
图3-4 直接寻址操作