寻址方式
-
寻址空间
-
对程序存储器,片外数据存储器都是以字节为单位寻址的。而对片内数据存储器,有些存储单元既可以字节为单位寻址,又可以位为单位寻址。位地址空间包括特殊功能寄存器SFR中能被8整除的寄存器地址中的88个位地址。格式如下:
SFR 位地址 字节地址 A E7~E0 E0H B F7~F0 F0H 特殊功能寄存器:(MSB:最高有效位–Most S Bit)
- A(ACC) -> E0H
- B -> F0H
- PSW:程序状态字 -> D0H
- SP:堆栈指针 ->
- DPTR:数据指针(由DPH和DPL组成,DPH是高位,DPL是低位)->
- P0P3:P0口锁存器P3口锁存器 ->
- IP:中断优先级控制寄存器 ->
- IE:中断允许级控制寄存器 ->
- TMOD:定时器/计数器方式控制寄存器(Time MOD) ->
- TCON:定时器/计数器控制寄存器(Time CON)->
- TH0:定时器/~0(高字节)->
- TL0 ->
- TH1 ->
- TL1 ->
- SCON:串行口控制寄存器
- SBUF:串行口数据缓冲器
- PCON:电源控制寄存器(Power CON)
-
一共有22个特殊功能寄存器,其中有11个特殊功能寄存器由于字节地址正好能被8整除,所以既可以按字节寻址,又可以按位寻址,不带括号。剩余的11个寄存器只能按字节地址进行寻址。
-
位地址空间还包括片内数据存储器地址20H~2FH区间内的128个位地址字节地址和位地址对应如下:
字节地址 位地址 2FH 7F~79 ~ ~ 20H 07~00
-
-
符号注释
- Rn:当前选中的工作寄存器组R0R7(n=07)。它在RAM中的地址由PSW中的R0和R1决定【RAM有四个工作寄存器区,刚好由0,1决定】
- Ri:当前选中的工作寄存器组中可以作为地址指针的两个工作寄存器R0,R1。片内的地址通过计算可得。
- # data:8位立即数。其中"#"是立即寻址符,符号后面的数是立即数。
- # data 16:16位立即数
- direct :8位片内RAM(包括SFR)的直接地址。
- addr 11:11位目的地址
- addr 16:16位目的地址
- rel:相对地址,用于相对转移指令,书写源程序时,rel一般用符号表示,汇编程序自动计算rel的偏移量。
- bit:片内RAM或SFR的直接寻址位地址
- @:寄存器间接寻址符
- /:位操作命令中,表示对该为先取反再参与操作,但不影响该原位原值
-
立即寻址
MOV A,#45H ;MOV DPTR,#DATA ;机器代码 74(PC) 45