寄存器值问题的小端表示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寄存器值问题的小端表示相关的知识,希望对你有一定的参考价值。

我有以下汇编代码行:

mov rax,067FEh

当我在执行期间用gdb检查寄存器rax的值时,我得到:

(gdb) p/x $rax
$2 = 0x67fe
(gdb) p/t $rax
$3 = 110011111111110

但是,我的机器是一个小的Endian架构,所以我不明白为什么寄存器中的二进制值是110011111111110而不是11111110 01100111最低字节(fe)?

谢谢

答案

软件级别(和程序集是那样的)并没有真正看到(显示?)Endianes,除非你明确地尝试逐字节读取。通常,当您通过单词阅读时,任何(正常)汇编程序或调试程序应在应用任何Endinaes校正后正确地向程序员显示完整单词。

以上是关于寄存器值问题的小端表示的主要内容,如果未能解决你的问题,请参考以下文章

什么是ia-32处理器数据存储的小端方式

C# Winform flag寄存器的状态由字母表示转换为01表示的小程序(有大提升)

大小端存储在哪一章

大端模式和小端模式

java内存,大端小端判断

从二进制形式转换浮点 NaN 值,反之亦然导致不匹配