Memory management 80年代的计算机程序怎么会这么小?
当你看到为一些80年代的旧电脑编写的程序时,比如commodore64、atari和NES,它们的大小非常小,大部分都在几百KB的范围内 更不用说这些计算机运行的内存非常少,就像Commodore64有64KB的RAM,但却能运行GUI操作系统 这些程序怎么写得这么小 考虑到硬件的限制,他们中的许多人似乎令人难以置信。 在commodore 64上,其320x200@4bpp的分辨率将吞噬其64k内存的一半 而Atari 2600只有128字节的ramMemory management 80年代的计算机程序怎么会这么小?,memory-management,programming-languages,hardware,Memory Management,Programming Languages,Hardware,当你看到为一些80年代的旧电脑编写的程序时,比如commodore64、atari和NES,它们的大小非常小,大部分都在几百KB的范围内 更不用说这些计算机运行的内存非常少,就像Commodore64有64KB的RAM,但却能运行GUI操作系统 这些程序怎么写得这么小 考虑到硬件的限制,他们中的许多人似乎令人难以置信。 在commodore 64上,其320x200@4bpp的分辨率将吞噬其64k内存的一半 而Atari 2600只有128字节的ram 在今天的应用程序中,80%或更多的磁盘大小
除了C64(和C128)之外,我不能为其他系统说话 正如@pojo-guy所说的,我们经常直接进行汇编,这减少了操作系统的开销,因为操作系统在ROM中,所以它不使用RAM。此外,您还可以通过使用内存寄存器来进出ROM,实际上将可用内存“翻倍”(尽管其中一些“可用”内存是只读的,关键是您没有在操作系统例程上浪费宝贵的RAM)。通过使用ROM例程和直接组装,消除了大量(内存)开销 对于位图,您有两种选择:高分辨率或多色模式。在高分辨率(320 x 200)中,每个像素显示前景或背景颜色-因此您只需要320 x 200=64000位或8000字节 标准多色模式以牺牲水平分辨率为代价提供四种颜色。引用C64程序员参考手册: 多色模式下的每个点可以是4种颜色中的一种:屏幕颜色(背景色寄存器0)、背景色寄存器1中的颜色、背景色寄存器2中的颜色或字符颜色。唯一的牺牲是水平分辨率,因为每个多色模式点的宽度是高分辨率点的两倍。最小分辨率由多色模式的额外功能补偿 开销的减少、操作系统的简化(可以完全替换掉)和功能的简化(例如,2位颜色可以让你拥有四种颜色),使事情变得更小。随着技术的进步,编码器也应用了覆盖:在其他部件播放时加载部件 此外,更高级的体系结构(如C128)有单独的视频RAM(16K或64K,取决于您的C128型号),由于图形(或文本)不占用处理空间,因此提供了更多的空间来伸缩编码肌肉 查看任何4k演示比赛,看看有了这样一个小玩意儿,机器到底能做些什么