"xchg rax, rax"(xchg.xorpd.net)의 수수께끼를 풀고 있습니다. 이것들은 x86_64 어셈블리에 대한 수수께끼입니다. 여기서 코드 조각이 무엇인지 이해해야합니다. 이 수수께끼 번호 0x15입니다 :이상한 상수를 가진 작은 asm 코드 이해
이 코드는 내가 완전히 이해가 안 돼요하지만, 어떤 방법으로 RAX 내부의 가치를 향상하기위한 것입니다 것 같다mov rdx,0xffffffff80000000
add rax,rdx
xor rax,rdx
. 일부 입출력을 시도했지만 아직이 코드의 기능을 이해하지 못했습니다. 이 0xffffffff80000000 번호는 무엇입니까? 누군가가 솔루션의 올바른 방향으로 나를 가리킬 수 있습니까? 나는 이것에 대해 정말로 궁금해.
(xorpd가 제공하지 않는) 컨텍스트가 없으면 말하기 어렵습니다. 32 비트 숫자를 가져다가 가장 중요한 비트를 설정하면 -2,147,483,648이됩니다. 이 값을 64 비트 숫자로 나타내면 FFFFFFFF80000000이됩니다. 그게 무슨 의미가 있을까요? 던노. 유일한 사용은 64 비트 숫자 (양수와 음수)를 32 비트 숫자로 변환하는 정말 이상한 방법입니다. FWIW. –