Little 和 Big Endian 值

Little and Big Endian Values

我目前正在学习计算机系统,对发生的事情一无所知。我的作业中有这样的问题:

在一个字节可寻址系统中,字节序列是从地址 0x10010000 0x23, 0x1a, 0x25, 0xaf, 0xef, 0xa5, 0x5a, 0x61, 0x6f, 0x73 开始的。如果系统使用 48 位寄存器并支持加载加载命令 'ld48bit <rt>, <address>' 从内存中加载 48 位信息。在以下情况下,'ld48bit $t0, 0x10010002' 之后的寄存器 t0 的内容是什么?

  1. 系统使用大端约定。
  2. 系统使用小端约定。

这是否意味着我们将 0x10010002 的值加载到 $t0,但我们将其更改为 48 位而不是 8 位?那我们把t0的值用big endian的时候降序排列,用little endian的时候升序排列?老实说,我不确定如何首先解决这个问题。任何帮助,将不胜感激。谢谢!

您有一个 10 字节 - 80 位的数组。处理器可以加载 6 字节 - 48 位。但它被要求从 (address + 2) 读取。这意味着您列出的前 2 个字节和后 2 个字节将被忽略。

在大端内存存储的情况下,遇到的第一个字节是最重要的,因此数据寄存器将'appear'按照您提供的相同顺序保存字节。

0x25afefa55a61

在小端内存存储的情况下,遇到的第一个字节是最低位的,所以读入寄存器的字节顺序会颠倒

0x615aa5efaf25

人类通常使用大端描述格式,例如在1000中,最高位在前。