Вы находитесь на странице: 1из 10

c  



O  ,
 02.10.2008



AMD64 AMD EM64T


Intel. , , .





, ,
, .
20 . -
,
.
?
, (
!). IA32 (Intel Architecture
32) 4 (2^32) ,
2, , ,

[1].
2,
.
32- -
64- SPARC64 Intel Itanium. hi-end
.
AMD64 AMD EM64T Intel.
, ,
. AMD. EM64T
AMD64 Intel. AMD64
: , , .
AMD64 (
), .
32- 64- ,
16- 32-
.

 c 
 
AMD64 ,
AMD. , [2].
,
AMD x86-64, .

   
 
 
AMD x86-64 , -
x86 [1]. 64-

64- , 16-
32- .
64- x86 ,
. ,
, CAD- . 64 .
, x86
.
.
x86-64 :
1. ( 1):
V 8 (general-purpose registers);
V 16 64-;
V 8 128- XMM ;
V (REX) .

2. "Long Mode" ( ),
1:
V 64- ;
V 64- (RIP);
V (flat) .

V
1. x86-64V

V
1. V
V2V  V V V 
VV  V
 V 
 VV  V
VV

V
 V V  V86V  V

V
V


V V

V V

V
 V V
VV64-
V V
 V
V

V
V V V

V
2. , V
V

VVV2 V V  V86V
V VVe cyVeVV8664 V
V8V 
V

VV 
VV 
 VV


 V

 VV4V  V !" V #" V $" V %"V& V #' V S V %( V S'V V
V
V)  V86-64V
V8V
V 
V

VVVV
 V 
VV32-V
V64-VV*
V

V

V
V


V

V64-V

V
VV

V  V V V V


VV
V
V
 VV V
V 
V V

V

VV
)  V86-64V
VV
V V86VV
V

V
V
 V V
V+,- V
 V VV

V

-V
V 
 V

VV*
V

V86V
V
 V
V

VV
V.

VVV V V  V
  V

 
V  V 

VV  V

VVVV
/

VV0V V  V


V
 V
V 
VV

VVV
V

V 128-V -
 V*
VSS VVSS 2Vs e 1+,VS(2%Ve3e+s1+4V
 V
V V  V
  VV
 
V  V 

VV128V"22V  VV
 V
VVV V

V

V V
V
4VV VV V

V

V V
V
V
V
V
 V V

V
 V
V Vs1+,e-1+s356c31+ V6317e-838VS(2%4V
 VV

 V V -VVV 
V V
 
V

V V
V 64-V -
 V*
V631e18Ve3e+s1+V22"4VV3%9:;V
 VV

   V
 VV
  V  V 

VV64-V22"V
 V


VV128-V
 V
V V
V
 V

VVV V

V
V
V
V
4VV
 V V
V 87V
 V V V 
VV V

VV V87V 
V
  V VV87V  V

.
, XMM
MMX .
1 ,
x86-64.
.
long-. (protected) .
Long- : 64- . 64-
, x86-64.
16- 32 . Long- (real)
(virtual-8086) , .
64- 64- ,
64- .

, 64- . 64- 64 (RIP) c (flat)
, .
64-
REX.
64- 64 , x86-64
. 32 .

REX.
64- 64- RIP. x86
IP
. RIP- -
, .
(opcode)
64- .
64-
16- 32- .
32- 16-
4 . 16- 32 .
,
x86, ( ,
) 64- .

(legacy) 16- 32-


, 16- 32- .
:
V (protected) . 16- 32-
, .
- 4.
V (virtual-8086) . 16- ,
. - 1.
V (real) . 16-
.
. 1 .

(legacy) 16- 32-


.

     
  
AMD x86-64:
V 64- .
V .
V .
V 32- 64- .
V 32- .

  
 
  
32- AMD x86-64 .
- ,
. ,
.
, AMD x86-64 .
.
5-15%.

    


AMD64. Microsoft Windows XP 64bit, Windows Server 2003 64bit, Windows Vista
64bit. UNIX 64- ,
Linux Debian 3.1 x86-64. ,
64-. 32-, .. AMD64
.
64- Windows, , WoW (Windows-onWindows 64), 32- 64-
. AMD64,
64- Windows [3, 4], Win64.

. 64- 16
(2^64), Win64 16 (2^44).
. 1 (2^40)
. ( ) 4
(2^52). ,
, (. 3).



4

,
2 (3,
32-

/3G#)
,

64-

(paged
470
pool)
(non256
paged pool)
System Page Table (PTE)
660 - 900





?  3        Windows



16
4,
/LARGEADDRESSAWARE (2
)
8

128
128
128

Win32, .
8 8 ( 2 2 Win32
). Windows ,
4.
o          
Windows XP Home
4 , 1 CPU
Windows XP Professional
4 , 1-2 CPU
Windows Server 2003, Standard
4 , 1-4 CPU
Windows Server 2003, Enterprise
64 , 1-8 CPU
Windows Server 2003, Datacenter
64 , 8-32 CPU
Windows Server 2008, Datacenter
64 , 2-64 CPU
Windows Server 2008, Enterprise
64 , 1-8 CPU
Windows Server 2008, Standard
4 , 1-4 CPU
Windows Server 2008, Web Server
4 , 1-4 CPU
Vista Home #asic
4 , 1 CPU
Vista Home Premium
4 , 1-2 CPU
Vista #usiness
4 , 1-2 CPU
Vista Enterprise
4 , 1-2 CPU
Vista Ultimate
4 , 1-2 CPU







?  4  ! Windows 

  

128 , 1-2 CPU
32 , 1-4 CPU
1 , 1-8 CPU
1 , 8-64 CPU
2 , 2-64 CPU
2 , 1-8 CPU
32 , 1-4 CPU
32 , 1-4 CPU
8 , 1 CPU
16 , 1-2 CPU
128 , 1-2 CPU
128 , 1-2 CPU
128 , 1-2 CPU

Win32 4. 64
, .. 0x10000. Win32,
DLL 4.
, AMD64, "CPU No Execution" ,
Windows "DataExecution Protection" (DEP),

.
, .
AMD64 ,
, .
Win64 (calling
convention). Win32 ( ):
__stdcall, __cdecl, __fastcall .. Win64 .
, integer:
V RCX:
V RDX:
V R8:
V R9:

integer . float
XMM0-XMM3 , .
,
64-, 32- . , 64-
, (DLL) 64-.
64-
.
[5].

 

 
! 


. , ++
. 32-
AMD64 [6]
. .
, 32 . , ,
.
. . -,
. , ,
Windows ,
Wow64. - .
. ,
Visual C++ 64-
[7].
64 . 64- ,
( ).

, 32-
. "20 ++- 64 " [8].
, /++.
(C#) , .
, ,
/++. , C#,
/++,
.
, 64-
[9]. ,
, Viva64 ( Windows )
PC-Lint ( Unix ). .
" 64- "
[10].

"#


AMD AMD64
. AMD64 , 64- ,
32- .
AMD64 .
32- AMD64, , , -,
, , , -, 10%
" ", ,
.
, AMD64
,
. .
.

$% &#
!
1.V Intel Software Developer's Manual. Volume 1: #asic Architecture.
http://www.viva64.com/go.php?url=212
2.V AMD x86-64 Architecture Programmer's Manual. Volume 1: Application Programming.
http://www.viva64.com/go.php?url=213
3.V Mike Wall. Tricks for Porting Applications to 64-#it Windows on AMD64 Architecture.
http://www.viva64.com/go.php?url=214
4.V Matt Pietrek. Everything You Need To Know To Start Programming 64-#it Windows Systems.
http://www.viva64.com/go.php?url=215
5.V Software Optimization Guide for AMD Athlon 64 and AMD Opteron Processors.
http://www.viva64.com/go.php?url=59
6.V Compiler Usage Guidelines for 64-#it Operating Systems on AMD64 Platforms.
http://www.viva64.com/go.php?url=216

7.V Daniel Pistelli. Moving to Windows Vista x64. http://www.viva64.com/go.php?url=217


8.V , . 20 ++ - 64-
. http://www.viva64.com/art-1-1-1958348565.html
9.V . 64- .
http://www.viva64.com/art-1-1-929024801.html
10.V . 64 . http://www.viva64.com/art-1-1-1441719613.html

Вам также может понравиться