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
Debugging 为什么Evan';s调试器说我';我要换成eax而不是rax?_Debugging_Assembly_X86_Cpu Registers - Fatal编程技术网

Debugging 为什么Evan';s调试器说我';我要换成eax而不是rax?

Debugging 为什么Evan';s调试器说我';我要换成eax而不是rax?,debugging,assembly,x86,cpu-registers,Debugging,Assembly,X86,Cpu Registers,我正在将一些值移动到rax,但调试器显示它正在移动到eax。怎么了?是用调试器、nasm还是用我的知识?无论如何,代码工作得很好。我使用的调试器是Evan的调试器。简而言之,您和调试器都是正确的 当您将某物移动到RAX时,这会影响RAX、EAX、AX、AL和AH,因为它们指的是相同64位的不同子集: AL是AX的下8位(AH是上8位) AX是EAX的低16位 EAX是RAX的低位32位 EAX是RAX的低32位,请提供实际/预期值的最小示例。我想我明白了。谢谢

我正在将一些值移动到rax,但调试器显示它正在移动到eax。怎么了?是用调试器、nasm还是用我的知识?无论如何,代码工作得很好。我使用的调试器是Evan的调试器。

简而言之,您和调试器都是正确的

当您将某物移动到
RAX
时,这会影响
RAX
EAX
AX
AL
AH
,因为它们指的是相同64位的不同子集:

  • AL
    AX
    的下8位(
    AH
    是上8位)
  • AX
    EAX
    的低16位
  • EAX
    RAX
    的低位32位

EAX是RAX的低32位,请提供实际/预期值的最小示例。我想我明白了。谢谢