单词,双字,四字

时间:2012-03-29 08:31:42

标签: linux assembly x86

这是我的第二个问题,一个接一个。这也是程序集(x86 - 32bit)的问题。

“从头开始编程”说4字节是32位,这是一个字。 但英特尔的“基础架构”指南称,该字为16位(2字节),4字节为双字。 内存使用4字节字,到达另一个字我必须跳过接下来的4个字节,在每个字上我可以做4个偏移(0-3)来读取一个字节,所以英特尔的名字是错的,但这个内存定义来自英特尔那有什么不好的呢?

如何在汇编中操作单词,双字,四字?如何将数字定义为四字?

2 个答案:

答案 0 :(得分:5)

要回答您的第一个问题,处理器字大小是架构的函数。因此,32处理器具有32位字。在软件类型(包括汇编)中,通常需要明确地识别大小,因此历史原因的字类型是16位。因此,如果您在上下文中阅读它们,可能两个来源都是正确的:第一个是指处理器字,而英特尔指南是指字类型。

答案 1 :(得分:0)

我们有不同的“字”:程序字,记忆字,特定于操作系统的字,特定于体系结构的字(程序空间字,闪存字,eeprom字),甚至是地址字。

这只是约会word所指的大小。

我通常通过查看上下文用于显示它们的十六进制数字来查找单词的大小。英特尔最常见的4位(0x0000)类型是两个字节。

有关详细信息,即使byte也是一种惯例。在过去的许多系统中,字节数为7或9位。现在大多数架构都有8位字节。始终为8位结构的正确名称为octet