Bill Gates前几天宣布退休的时候我正在玩自己的8位玩具, 当时马上想起一个他的编程笑话. 那是30年前吧, 他跟幸运的Paul Allen在一个8位CPU上写BASIC软件的时候, 突然被告知可以用的内存从4k字节增加到了8k字节, 他们还没来得及高兴就开始发愁多出来的内存该怎么使用了.
我比Bill Gates落后30年, 今天我依然还在8位CPU上写程序, 为几k字节的内存发愁.
Z80有64k字节地址空间, 我们使用方式如下:
0x0000-0x1fff: AR1688内部SRAM, 用于运行Z80程序
0x2000-0x3fff: AR1688内部SRAM, 用于Z80软件全局变量和栈. 全局变量地址从底部往上增加, 栈由顶往下减少. 有可能因为栈溢出到全局变量位置上导致程序跑飞
0x4000-0x7fff: AR1688内部SRAM, 有几个部分一起共用这部分地址. 例如96k字节DSP内存在这里分成了6部分供Z80访问. 另外一部分用于malloc/free函数的SRAM也在这部分地址上
0x8000-0xffff: 外部程序存储器, LCD, 网络芯片如RTL8019AS和DM9003使用的地址. 同样这32k地址也需要共用
|