小端和大端值

时间:2015-10-09 20:07:14

标签: assembly endianness

我目前正在使用计算机系统,并且不知道发生了什么。我的作业中有一个问题:

在字节可寻址系统中,字节序列跟随地址0x10010000 0x23, 0x1a, 0x25, 0xaf, 0xef, 0xa5, 0x5a, 0x61, 0x6f, 0x73。如果系统使用48位寄存器并支持负载加载命令&#39; ld48bit <rt>, <address>&#39;从内存加载48位信息。在t0&#39; ld48bit $t0, 0x10010002&#39;之后注册0x10010002的内容是什么?在以下场景中?

  1. 系统使用大端会议。
  2. 系统使用小端约定。
  3. 这是否意味着我们将$t0的值加载到t0,但我们将其更改为48位而不是8位?然后我们在使用big endian时按降序排列{{1}}的值,在使用little endian时按升序排列?老实说,我不确定如何首先解决这个问题。任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

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

在大端存储器存储的情况下,遇到的第一个字节是最重要的,因此数据寄存器将“出现”以按照您提供的顺序保存字节。

0x25afefa55a61

在小端存储器存储的情况下,遇到的第一个字节是最不重要的,因此读入寄存器的字节顺序将被反转。

0x615aa5efaf25

人类通常使用大端描述格式,例如在1000中,最重要的数字是第一位。