当我阅读以下摘录时,我正在研究计算系统的要素:
Hack 计算机包括一个黑白屏幕,分为 256 行,每行 512 像素。屏幕内容由从 RAM 地址 16384 (0x400) 开始的8K 内存映射表示。物理屏幕中的每一行,从屏幕的左上角开始,在 RAM 中由 32 个连续的 16 位字表示。因此,顶部 r 行和左侧 c 列的像素映射到位于 RAM[16384 + r * 32 + c%16] 的字的 c%16 位(从 LSB 到 MSB 计数)。要写入或读取物理屏幕的像素,需要读取或写入 RAM 驻留内存映射中的相应位(1 = 黑色,0 = 白色)。
那么,如果屏幕是 256 行,每行 512 个像素,并且每个像素是一个位,那么整个屏幕的 8K 内存映射如何呢?
256 行 * 512 位 = 131072 / 8 位 / 字节 / 1024 字节 / K = 16K
那不是16K内存映射吗?
我能想到的唯一一件事是,因为字长是 16 位,也许这是一个因素?我一直都知道“字节”表示 8 位,但如果它的定义取决于计算机的字长,也许这会为我解开这个谜。有人可以向我解释那段中描述的屏幕是如何用 8K 内存映射而不是 16K 表示的吗?