Assembly 十进制中的大端和小端

Assembly 十进制中的大端和小端,assembly,cpu-registers,endianness,Assembly,Cpu Registers,Endianness,我需要在32位寄存器中打印该值。可能有多种打印设置。该程序应支持显示为小尾数或大尾数以及十六进制或十进制。我真的很困惑endianness的概念 例如,假设寄存器中的值为0x1000FFE7。如果打印设置是big-endian和hex,我将其打印为E7FF0010,如果是little-endian,我将按原样打印。打印设置为十进制如何 我正在做的是转换成十六进制的大端数,然后找到相应的十进制数并打印出来。这似乎正确吗?或者,在十进制的情况下,它似乎无关紧要 您使用的是哪种计算机语言? 一般来说,

我需要在32位寄存器中打印该值。可能有多种打印设置。该程序应支持显示为小尾数或大尾数以及十六进制或十进制。我真的很困惑endianness的概念

例如,假设寄存器中的值为0x1000FFE7。如果打印设置是big-endian和hex,我将其打印为E7FF0010,如果是little-endian,我将按原样打印。打印设置为十进制如何


我正在做的是转换成十六进制的大端数,然后找到相应的十进制数并打印出来。这似乎正确吗?或者,在十进制的情况下,它似乎无关紧要

您使用的是哪种计算机语言? 一般来说,小端先存储较低的字节,而大端先存储较高的字节。
请参阅

小数表示法也受尾数的影响。您需要进行的转换与十六进制显示相同(因此,对字节重新排序,然后像往常一样打印)


更一般地说,代码取决于主机系统。It程序只应在little endian系统上运行,那么您是对的,但通常您需要更改顺序,如果打印的endian与运行的系统代码的endianness不同。

这对我来说不是问题。我已将寄存器中的值加载为little endian。我只需要根据所选的尾数打印它们。寄存器没有尾数(右移总是被二除,等等)。只有存储一个单词,然后读回单个字节,它才会起作用。