Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 小端值和大端值_Assembly_Endianness - Fatal编程技术网

Assembly 小端值和大端值

Assembly 小端值和大端值,assembly,endianness,Assembly,Endianness,我目前正在学习计算机系统,对正在发生的事情一无所知。我的家庭作业中有这样一个问题: 在字节可寻址系统中,字节序列从地址0x10010000 0x23、0x1a、0x25、0xaf、0xef、0xa5、0x5a、0x61、0x6f、0x73开始。如果系统使用48位寄存器并支持加载命令“ld48bit,”从内存加载48位信息。在以下场景中,“ld48位$t0,0x10010002”之后的寄存器t0的内容是什么 系统使用big-endian约定 该系统使用小端点约定 这是否意味着我们将0x100100

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

在字节可寻址系统中,字节序列从地址
0x10010000 0x23、0x1a、0x25、0xaf、0xef、0xa5、0x5a、0x61、0x6f、0x73开始。如果系统使用48位寄存器并支持加载命令“
ld48bit,
”从内存加载48位信息。在以下场景中,“
ld48位$t0,0x10010002
”之后的寄存器
t0
的内容是什么

  • 系统使用big-endian约定
  • 该系统使用小端点约定

  • 这是否意味着我们将
    0x10010002
    的值加载到
    $t0
    中,但我们将其更改为48位而不是8位?然后,我们在使用大端号时按降序列出
    t0
    的值,在使用小端号时按升序列出?老实说,我不知道如何首先解决这个问题。任何帮助都将不胜感激。谢谢大家!

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

    在big-endian内存存储的情况下,遇到的第一个字节是最重要的,因此数据寄存器将“显示”以与当前相同的顺序保存字节

    0x25afefa55a61
    
    在小端存储器存储的情况下,遇到的第一个字节是最低有效的,因此读入寄存器的字节顺序将颠倒

    0x615aa5efaf25
    

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

    谢谢!不过,我不明白为什么我们也必须忽略前2位。@Riadiani,因为问题说“字节序列是从地址
    0x10010000
    开始的”,但接着给出指令
    ld48bit$t0,0x10010002
    ,它比数组基地址大2个字节。