1、直接地址与寄存器
1.1、A和ACC
(1)A是没有地址的,可以当作寄存器使用。
(2)ACC是有地址的,地址为E0H(查数据手册)。
(3)如果使用压栈操作,要用ACC。因为ACC可当做直接地址。
(4)如果使用位操作,要用ACC。因为ACC可位寻址。
(5)使用ACC和A赋值操作时效果是一样的,但机器码不同;
使用E0H和ACC机器码是一样的。
C:0x0000 7410 MOV A,#0x10
C:0x0002 75E010 MOV ACC(0xE0),#0x10
C:0x0005 75E010 MOV ACC(0xE0),#0x10
1.2、R0-R7与00H-07H
(1)R0寄存器对应地址为0x00。
(2)在汇编中,使用0x00和R0效果相同,但使用R0效率更高。
(3)使用0x00和R0生成的机器码不同,一个是直接地址,一个是寄存器。如下。
C:0x0000 7820 MOV R0,#0x20
C:0x0002 750020 MOV 0x00,#0x20
(4)使用0x00是从地址总线上去寻地址0x00这个空间,使用R0是直接操作这个寄存器。这两种方式操作的空间是一样的。
2、ROM和RAM
ROM称为程序存储器,RAM称为数据存储器。
2.1、ROM
(1)51单片机地址线为16跟,即寻址范围为2的16次方字节,65536字节 = 65536/1024=64K字节。
(2)寻址范围为0x00000-0xFFFF。
(3)51单片机内部ROM和外扩ROM独立寻址,所以51单片机最大ROM为128KByte。
(4)通过EA引脚的高低电平来确认总线是访问片内程序存储器还是片外程序存储器。
(5)目前的单片机内部ROM基本能满足需求。
(6)中断向量地址:00H -- 23H,不同芯片查询中断向量表;用户程序存在往后地址。