35.1.7.2. X86-64 (AMD64)




THIS SECTION IS UNDER CONSTRUCTION




AMD: Opteron ['03] --- > Athlon64 ['03]




Intel: Pentium 4 with EM64T ['04]


Регистры

----------------------------------------------------------------- rax eax ax al rbx ebx bx bl rcx ecx cx cl rdx edx dx dl rsi esi si sil rdi edi di dil rbp ebp bp bpl < - Frame pointer rsp esp sp spl < - Stack pointer r8 r8d r8w r8b r9 r9d r9w r9b r10 r10d r10w r10b r11 r11d r11w r11b r12 r12d r12w r12b r13 r13d r13w r13b r14 r14d r14w r14b r15 r15d r15w r15b Zero Register: None Direction: <------------ Memory Access: mov rax,[rip+1234h] Immediately Data add ah,23h Byte order: Little-endian Instruction Len: variable 1-15 bytes long Main Generations: AMD64 Base set + 3DNow! I64ME Base set + SSE3 -------------------------------------------------------------- Форматы обращения к памяти: Format of Postbyte: MM RRR MMM MM - Memory addresing mode RRR - Register operand address (high bit is REX.R) MMM - Memory operand address (high bit is REX.B) 64bit memory (default) MMM Default MM Field Field 00 01 10 11=MMM is reg 0000 [RAX] [RAX+O8] [RAX+O32] 0001 [RCX] [RCX+O8] [RCX+O32] 0010 [RDX] [RDX+O8] [RDX+O32] 0011 [RBX] [RBX+O8] [RBX+O32] 0100 [SIB] [SIB+O8] [SIB+O32] 0101 [RIP+O32] [RBP+O8] [RBP+O32] 0110 [RSI] [RSI+O8] [RSI+O32] 0111 [RDI] [RDI+O8] [RDI+O32] 1000 [R8] [R8+O8] [R8+O32] 1001 [R9] [R9+O8] [R9+O32] 1010 [R10] [R10+O8] [R10+O32] 1011 [R11] [R11+O8] [R11+O32] 1100 [R12] [R12+O8] [R12+O32] 1101 [R13] [R13+O8] [R13+O32] 1110 [R14] [R14+O8] [R14+O32] 1111 [R15] [R15+O8] [R15+O32] 32bit memory (Has 67h 32 bit memory address prefix): MMM Default MM Field Field 00 01 10 11=MMM is reg 0000 [EAX] [EAX+O8] [EAX+O32] 0001 [ECX] [ECX+O8] [ECX+O32] 0010 [EDX] [EDX+O8] [EDX+O32] 0011 [EBX] [EBX+O8] [EBX+O32] 0100 [SIB] [SIB+O8] [SIB+O32] 0101 [EIP+O32] [EBP+O8] [EBP+O32] 0110 [ESI] [ESI+O8] [ESI+O32] 0111 [EDI] [EDI+O8] [EDI+O32] 1000 [R8D] [R8D+O8] [R8D+O32] 1001 [R9D] [R9D+O8] [R9D+O32] 1010 [R10D] [R10D+O8] [R10D+O32] 1011 [R11D] [R11D+O8] [R11D+O32] 1100 [R12D] [R12D+O8] [R12D+O32] 1101 [R13D] [R13D+O8] [R13D+O32] 1110 [R14D] [R14D+O8] [R14D+O32] 1111 [R15D] [R15D+O8] [R15D+O32] Here we show only 64-bit SIB, 32-bit is same but DWORD registers, instead of QWORD. SIB is (Scale/Base/Index): SS BBB III Note: SIB address calculated as : =+*(2^(Scale)) BBB (high bit is REX.B) III (high bit is REX.X Field Base BBB Register Note 0000 RAX 0001 RCX 0010 RDX 0011 RBX 0100 RSP 0101 RIP+O32 If MM=00 (Postbyte) RBP If MM<>00 (Postbyte) 0110 RSI 0111 RDI 1000 R8 1001 R9 1010 R10 1011 R11 1100 R12 1101 R13 1110 R14 1111 R15 Field Index III register Note 0000 RAX 0001 RCX 0010 RDX 0011 RBX 0100 Never Index SS can be 00 0101 RBP 0110 RSI 0111 RDI 1000 R8 1001 R9 1010 R10 1011 R11 1100 R12 1101 R13 1110 R14 1111 R15 Field Scale coefficient SS =2^(SS) 00 1 01 2 10 4 11 8


Особенности

64-битное расширение x86 (IA-32) архитектуры Расширения Multimedia: MMX,SSE,SSE2 {3DNow!/SSE3}

Index Prev Next