Global Information Lookup Global Information

X86 calling conventions information


This article describes the calling conventions used when programming x86 architecture microprocessors.

Calling conventions describe the interface of called code:

  • The order in which atomic (scalar) parameters, or individual parts of a complex parameter, are allocated
  • How parameters are passed (pushed on the stack, placed in registers, or a mix of both)
  • Which registers the called function must preserve for the caller (also known as: callee-saved registers or non-volatile registers)
  • How the task of preparing the stack for, and restoring after, a function call is divided between the caller and the callee

This is intimately related with the assignment of sizes and formats to programming-language types. Another closely related topic is name mangling, which determines how symbol names in the code are mapped to symbol names used by the linker. Calling conventions, type representations, and name mangling are all part of what is known as an application binary interface (ABI).

There are subtle differences in how various compilers implement these conventions, so it is often difficult to interface code which is compiled by different compilers. On the other hand, conventions which are used as an API standard (such as stdcall) are very uniformly implemented.

and 25 Related for: X86 calling conventions information

Request time (Page generated in 0.8275 seconds.)

X86 calling conventions

Last Update:

This article describes the calling conventions used when programming x86 architecture microprocessors. Calling conventions describe the interface of called...

Word Count : 4785

Calling convention

Last Update:

code-size, many x86 calling conventions pass arguments on the stack. The return value (or a pointer to it) is returned in a register. Some conventions use registers...

Word Count : 4136

Application binary interface

Last Update:

calling convention, which determines how data is provided as input to, or read as output from, computational routines. Examples of this are the x86 calling...

Word Count : 929

X86 instruction listings

Last Update:

The x86 instruction set refers to the set of instructions that x86-compatible microprocessors support. The instructions are usually part of an executable...

Word Count : 15281

X86 assembly language

Last Update:

x86 assembly language is the name for the family of assembly languages which provide some level of backward compatibility with CPUs back to the Intel...

Word Count : 6902

Long double

Last Update:

FLT_EVAL_METHOD. On the x86 architecture, most C compilers implement long double as the 80-bit extended precision type supported by x86 hardware (generally...

Word Count : 1133

Function prologue and epilogue

Last Update:

(either the full one, or the one which uses enter). Under certain calling conventions it is the callee's responsibility to clean the arguments off the...

Word Count : 643

System call

Last Update:

Linux system calls – system calls for Linux kernel 2.2, with IA-32 calling conventions How System Calls Work on Linux/i86 (1996, based on the 1993 0.99...

Word Count : 2280

Data structure alignment

Last Update:

Ordering Stack Alignment in 64-bit Calling Conventions - discusses stack alignment for x86-64 calling conventions The Lost Art of Structure Packing by...

Word Count : 3423

OpenVMS

Last Update:

source operating system following VMS conventions. FreeVMS was built on top of the L4 microkernel and supported the x86-64 architecture. Prior work investigating...

Word Count : 9044

Hooking

Last Update:

calling convention passes a pointer to the calling class instance (commonly referred to as a "this" pointer) via the ECX register (on the x86 architecture)...

Word Count : 2990

Uncontrolled format string

Last Update:

misused. Counting the number of arguments is often made easy on x86 due to a calling convention where the caller removes the arguments that were pushed onto...

Word Count : 1327

COM file

Last Update:

Retrieved 2017-09-03. [1] (NB. Has details on the DOS COM program calling conventions.) Lunt, Benjamin "Ben" D. (2020). "DOS .COM startup registers". Forever...

Word Count : 1902

WoW64

Last Update:

thunks) A dll that allows 32-bit x86 instructions to be executed, which varies by instruction set architecture. On x86-64, Wow64cpu.dll takes care of switching...

Word Count : 1576

Intel 8086

Last Update:

processor used in the original IBM PC design. The 8086 gave rise to the x86 architecture, which eventually became Intel's most successful line of processors...

Word Count : 4993

Environment variable

Last Update:

Windows (XP, 2003, Vista), there are also %ProgramFiles(x86)%, which defaults to "C:\Program Files (x86)", and %ProgramW6432%, which defaults to "C:\Program...

Word Count : 10249

X32 ABI

Last Update:

than the x86-64 version. On average, x32 is 5–8% faster on the SPEC CPU integer benchmarks compared to x86-64. There is no speed advantage over x86-64 in...

Word Count : 787

BIOS interrupt call

Last Update:

Mode) of the x86 CPU, so programs that call BIOS either must also run in real mode or must switch from protected mode to real mode before calling BIOS and...

Word Count : 3354

Name mangling

Last Update:

Language 1.0 Calling conventions for different C++ compilers by Agner Fog contains detailed description of name mangling schemes for various x86 and x64 C++...

Word Count : 4794

INT 13H

Last Update:

shorthand for BIOS interrupt call 13hex, the 20th interrupt vector in an x86-based (IBM PC-descended) computer system. The BIOS typically sets up a real...

Word Count : 1929

Inline assembler

Last Update:

and SSE, and Motorola Altivec instruction sets. Access to special calling conventions not yet supported by the compiler. System calls and interrupts: High-level...

Word Count : 1471

Interactive Disassembler

Last Update:

program function locations, function stack frames, and function calling conventions reconstructed data types However, the nature of disassembly precludes...

Word Count : 1700

LLVM

Last Update:

LLVM-2.9 and GCC4.6.1 on x86". Retrieved October 3, 2011. Makarov, V. "SPEC2000: Comparison of LLVM-2.9 and GCC4.6.1 on x86_64". Retrieved October 3,...

Word Count : 3171

NeXTSTEP

Last Update:

in early 1995, for the Motorola 68000 family based NeXT computers, Intel x86, Sun SPARC, and HP PA-RISC-based systems. NeXT separated the underlying operating...

Word Count : 1555

Portable Executable

Last Update:

environments. On Windows NT operating systems, PE currently supports the IA-32, x86-64 (AMD64/Intel 64), IA-64, ARM and ARM64 instruction set architectures (ISAs)...

Word Count : 1856

PDF Search Engine © AllGlobal.net