寄存器值问题的小端表示

问题描述 投票:0回答:1

我有以下汇编代码行:

mov rax,067FEh

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

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

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

谢谢

assembly gdb endianness
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.