如何在采用大端字节顺序的机器上找到存储在内存地址中的值
How to find a value stored in a memory address on a machine that employs big-endian byte ordering
所以我在 class 中被问到这个问题。
如果给我指令 MOVE.L #$12345678,$8000 并且它是在采用大端字节顺序的机器上执行的,我如何找到存储在 $8002 内存地址中的值?这是在摩托罗拉 68K 上使用的。我很纠结这个问题。
谢谢。
With big-endian the most-significant byte of a word is stored at a particular memory address and the subsequent bytes are stored in the following higher memory addresses, the least significant byte thus being stored at the highest memory address.
来源:Wikipedia
在您的情况下,这意味着当您开始将数据写入内存地址 $8000 时,最高有效字节将写入 $8000,然后依次写入次要字节
00: 12
01: 34
02: 56
03: 78
所以我在 class 中被问到这个问题。
如果给我指令 MOVE.L #$12345678,$8000 并且它是在采用大端字节顺序的机器上执行的,我如何找到存储在 $8002 内存地址中的值?这是在摩托罗拉 68K 上使用的。我很纠结这个问题。
谢谢。
With big-endian the most-significant byte of a word is stored at a particular memory address and the subsequent bytes are stored in the following higher memory addresses, the least significant byte thus being stored at the highest memory address.
来源:Wikipedia
在您的情况下,这意味着当您开始将数据写入内存地址 $8000 时,最高有效字节将写入 $8000,然后依次写入次要字节
00: 12
01: 34
02: 56
03: 78