51单片机
特殊指令MOVC实现读取程序存储区域的静态数据,只能读取,不能写入,因此不能实现自编程。
外部存储器通过P2、P0端口连接地址和数据总线,可实现扩展。P0与P2组合实现地址输出,
P0实现数据总线,因此一个数据周期需要两个总线周期。16位地址可访问64K外部地址空间。
外部内存地址与内部内存地址是平行的,因此都有0x0001,但是访问外部存储器通过MOVX指令实现。
-----------------
AVR:程序存储空间与SRAM数据存储空间独立编址。
数据存储空间:通用寄存器、IO寄存器、临时数据区。
静态数据存储在程序存储空间,用LPM、SPM指令存取静态常量。
全局变量:存放在SRAM中,对于C语言来说,由编译器规划整个SRAM数据区域的内存分配。
SRAM:全局变量、栈空间、堆空间,如果没有实现malloc,那么就没有实现堆管理。那么内存分配基本就是从栈上分配。因此就只存在两个区域,一个全局变量区,一个局部变量区(栈)。
AVR的内存地址空间的首地址是R0-R31通用寄存器。其它的状态寄存器SREG和堆栈指针寄存器SP
AVR可以实现自编程,通过SPM指令修改程序存储区。
------&#x