当我阅读以下摘录时,我正在使用The Elements of Computing Systems:
黑客电脑包括一个黑白屏幕,每行256行,每行512像素。屏幕内容由一个从地址16384 (0x400)开始的RAM8K内存映射表示。物理屏幕中的每一行,从屏幕的左上角开始,在RAM中由32个连续的16位字表示。因此,位于顶部的第r行和左侧的第c列的像素映射到位于RAM16384 +r* 32 + c%16的字的c%16位(从最低有效位到最高有效位)。要写入或读取物理屏幕的像素,需要读取或写入内存驻留映射中的相应位(1 =黑色,0=白色)。
那么,如果屏幕是256行512像素,每个像素是一个位,那么整个屏幕的8K内存映射是如何实现的呢?
256行* 512位= 131072 /每字节8位/每K 1024字节= 16K
这不是一个16K的内存映射吗?
我能想到的唯一一件事是,因为字长是16位,也许这是一个因素?我一直知道“字节”是指8位,但如果它的定义取决于计算机的字长,也许这将为我解开这个谜团。谁能给我解释一下这一段中描述的屏幕是如何用8K内存映射而不是16K内存映射来表示的?
发布于 2012-11-29 06:45:59
是的,在现代计算中,一个字节总是8位。
这本书用的是单词,而不是字节
在书中,明确提到了单词和单词的大小,而没有一个关于字节的单词(哈哈)。看看..is represented in RAM by 32 consecutive 16-bit words.
这个短语。整个大小以(16位)字而不是字节表示。
因此,8K指的是8 Kiloword。如果这本书中使用了8KB,那么8KB将被正式地写成8KB。
当涉及到处理器架构时,单词是非常重要的。在编程语言中,字通常是2字节(或16位),但在处理器体系结构中,它们也可以是8位或32位,并且它们指的是处理器使用的数据单元的自然大小,因此本书使用字而不是字节是有意义的,因为文本似乎非常面向硬件。
要了解字节和单词之间的关系,请阅读this answer。
不同字节大小的
Wikipedia描述了字节最初(20世纪60年代)是如何基于它需要保存的信息大小的,因此6位字节可以用于(英语)字符,而其他大小的字节将用于不同的数字格式。它从英文字符的6位开始,发展到支持ASCII的7位,最终8位IBM System/360的流行引起了8位字节的全球接受。
字节是表示数据量的软件单元,而字更多地与处理器/存储器体系结构相关,并且表示处理器中的工作单元(寄存器)和存储器中的可寻址单元。如今,一个字节总是被认为是8位,而字是8位的倍数。仍然有一些处理器具有不同的字长,但它们是特殊用途的处理器。正常的硬件,从PC到手机和游戏机都遵循该标准。
发布于 2018-12-27 12:37:01
在现代术语中,一个字节总是有8位。这是自1993年以来的IIRC。ISO/IEC 2382-1:1993。
然而,也存在具有到字节6位/7位的其它位计数的系统已经很常见。然而,还有其他一些更晦涩的问题。
归根结底,我认为今天很少能找到一台不是基于8位对1字节的机器。
发布于 2014-08-27 04:01:04
也许除了造币后的一小段时间,字节一直都是8位的。
短语“1kobyte”被流行为“1ko x 8”,意思是你将有一个千字(1024个可寻址片段)的内存是8位“宽”的,因为每个可寻址片段是8位。
这个词并不总是八位的,但当它不是八位时,它从来没有被称为“八位”,它是“四位”或“十六位”,或者在一些Burroughs记账机的惊人例子中是“128位”。在另一个极端,霍尼韦尔机器最初的组织方式是,存储中的每个单独的位都有一个唯一的地址,因此它们将有如此多的“一公斤一”的存储器包。
在您正在讨论的机器的情况下,它将具有"8 it 16“内存,因此是一个8K内存映射,特别是8Kx16,其中只有8192个地址,每个地址都是16位宽。
考虑到ASCII和EBCDIC,拥有8位地址边界对于有效的文本处理来说是最便宜的,即使您的机器的寄存器更宽。寄存器较窄的机器就这样绝迹了。
所以,是的,一个字节总是8位,而且几乎一直都是。
https://stackoverflow.com/questions/13615764
复制相似问题