首页 文章

小端和大端值

提问于
浏览
-1

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

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

  • 系统使用大端约定 .

  • 系统使用小端序约定 .

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

1 回答

  • 1

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

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

    0x25afefa55a61
    

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

    0x615aa5efaf25
    

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

相关问题