据我所知,英特尔x86是小端。但是,如何编写汇编以编程方式确定处理器的字节顺序?
答案 0 :(得分:7)
为每个字节存储一个具有不同值的单词(例如0x0001
)。从同一地址加载一个字节,然后检查它匹配的原始字的哪个字节。
答案 1 :(得分:1)
在C中实现它,因为C可以移植到其他架构。我们已经知道英特尔是小端的。在组装中没有使用它。如果小端,则此示例返回1,否则返回0.
int host_endian()
{
static const union {
uint16_t i;
uint8_t c[2];
} test = { 0x1234 };
return (test.c[0] == 0x34) ? 1 : 0;
}