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地址也需要共用
|