我是汇编语言的新手
数字-123,456可以存储在一个单词中吗?
-123, 456 在 Dword 的范围内,但我很困惑,如果 Dword 仍然是一个字还是两个字,因为 Dword 用于 32 位字
“词”这个词的问题在于它非常模棱两可。它曾经表示计算机的“本机字大小”。这在早年到处都是。尺寸也很奇怪,6 的倍数很流行,比如 18 位和 36 位。那时候大家都明白,“字”没有说比特数。直到很久以后,术语“字节”才有意义。
当微处理器出现时,情况发生了变化,首先是 8 位和 16 位版本。其中“word”必须与“16-bits”同义。这持续了很长时间,直到 32 位处理器变得普遍。像 386 这样的处理器,其原始字长为 32 位,但仍可以处理 16 位数量。因此,为了避免打破大量假设,并至少保持一些现有的汇编代码兼容,他们不得不想出一个新词来表示 32 位的数量。这变成了“dword”、双字或 2 x 16 位。并且“word”保持 16 位,即使它现在与本机字大小无关。
单词的大小是特定于架构的。它们通常指的是 ISA 本地处理的单元。在双字或双字的情况下,它只是一个单位,其大小是单词大小的两倍。
因此,如果您正在谈论一个字的大小为 16 位的架构(例如 Intel 8086),那么 DWORD 可以保存 32 位的信息。由于 -123456 是 FFFE1DC0(带符号扩展至 32 位),它确实可以存储在一个 DWORD 中。