EasyManuals Logo

Intel ARCHITECTURE IA-32 User Manual

Intel ARCHITECTURE IA-32
568 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #537 background imageLoading...
Page #537 background image
D-1
D
Stack Alignment
This appendix details on the alignment of the stacks of data for
Streaming SIMD Extensions and Streaming SIMD Extensions 2.
Stack Frames
This section describes the stack alignment conventions for both
esp-based (normal), and ebp-based (debug) stack frames. A stack frame
is a contiguous block of memory allocated to a function for its local
memory needs. It contains space for the function’s parameters, return
address, local variables, register spills, parameters needing to be passed
to other functions that a stack frame may call, and possibly others. It is
typically delineated in memory by a stack frame pointer (
esp) that
points to the base of the frame for the function and from which all data
are referenced via appropriate offsets. The convention on IA-32 is to use
the
esp register as the stack frame pointer for normal optimized code,
and to use
ebp in place of esp when debug information must be kept.
Debuggers use the
ebp register to find the information about the
function via the stack frame.
It is important to ensure that the stack frame is aligned to a 16-byte
boundary upon function entry to keep local
__m128 data, parameters,
and
xmm register spill locations aligned throughout a function
invocation.The Intel C++ Compiler for Win32* Systems supports
conventions presented here help to prevent memory references from
incurring penalties due to misaligned data by keeping them aligned to
16-byte boundaries. In addition, this scheme supports improved

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Intel ARCHITECTURE IA-32 and is the answer not in the manual?

Intel ARCHITECTURE IA-32 Specifications

General IconGeneral
Instruction Setx86
Instruction Set TypeCISC
Memory SegmentationSupported
Operating ModesReal mode, Protected mode, Virtual 8086 mode
Max Physical Address Size36 bits (with PAE)
Max Virtual Address Size32 bits
ArchitectureIA-32 (Intel Architecture 32-bit)
Addressable Memory4 GB (with Physical Address Extension up to 64 GB)
Floating Point Registers8 x 80-bit
MMX Registers8 x 64-bit
SSE Registers8 x 128-bit
RegistersGeneral-purpose registers (EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP), Segment registers (CS, DS, SS, ES, FS, GS), Instruction pointer (EIP), Flags register (EFLAGS)
Floating Point UnitYes (x87)

Related product manuals