Application Binary Interface (ABI)

Slides:



Advertisements
Similar presentations
Calling sequence ESP.
Advertisements

Subroutines – parameter passing passing data to/from a subroutine can be done through the parameters and through the return value of a function subroutine.
Slides revised 3/25/2014 by Patrick Kelley. 2 Procedures Unlike other branching structures (loops, etc.) a Procedure has to return to where it was called.
Introduction to SPIM Simulator
Procedures Procedures are very important for writing reusable and maintainable code in assembly and high-level languages. How are they implemented? Application.
10/6: Lecture Topics Procedure call Calling conventions The stack
Instruction Set Architecture Classification According to the type of internal storage in a processor the basic types are Stack Accumulator General Purpose.
CPS3340 COMPUTER ARCHITECTURE Fall Semester, /17/2013 Lecture 12: Procedures Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER SCIENCE CENTRAL.
Procedures II (1) Fall 2005 Lecture 07: Procedure Calls (Part 2)
The University of Adelaide, School of Computer Science
Procedure call frame: Hold values passed to a procedure as arguments
 Procedures (subroutines) allow the programmer to structure programs making them : › easier to understand and debug and › allowing code to be reused.
1 Storage Registers vs. memory Access to registers is much faster than access to memory Goal: store as much data as possible in registers Limitations/considerations:
Run-Time Storage Organization
Intro to Computer Architecture
Run time vs. Compile time
28/06/2015CMPUT Functions (2)  Function calling convention  Various conventions available  One is specified by CMPUT229  Recursive functions.
7/13/20151 Topic 3: Run-Time Environment Memory Model Activation Record Call Convention Storage Allocation Runtime Stack and Heap Garbage Collection.
Chapter 8 :: Subroutines and Control Abstraction
A data structure model: basic representation of data, such as integers, logic values, and characters homogeneous data structures, such as arrays and stringsheterogeneous.
Memory/Storage Architecture Lab Computer Architecture MIPS Instruction Set Architecture ( Supporting Procedures )
13/02/2009CA&O Lecture 04 by Engr. Umbreen Sabir Computer Architecture & Organization Instructions: Language of Computer Engr. Umbreen Sabir Computer Engineering.
Code Generation Gülfem Savrun Yeniçeri CS 142 (b) 02/26/2013.
Functions and Procedures. Function or Procedure u A separate piece of code u Possibly separately compiled u Located at some address in the memory used.
CS 352 : Computer Organization and Design University of Wisconsin-Eau Claire Dan Ernst Execution of Machine Code Machine State and Operations Apps O/S.
ITEC 352 Lecture 18 Functions in Assembly. Functions + Assembly Review Questions? Project due on Friday Exam –Average 76 Methods for functions in assembly.
1 Control Abstraction (Section ) CSCI 431 Programming Languages Fall 2003 A compilation of material developed by Felix Hernandez-Campos and Michael.
COP4020 Programming Languages Subroutines and Parameter Passing Prof. Xin Yuan.
OCC - CS/CIS CS116-Ch00-Orientation Morgan Kaufmann Publishers ( Augmented & Modified by M.Malaty) 1CS 116 Fall 2003 Not quite finished Creating.
V 1.01 Arrays and Pointers in C A pointer variable is a variable that contains the address of another variable. An array is a collection of like elements,
Low Level Programming Lecturer: Duncan Smeed The Interface Between High-Level and Low-Level Languages.
Computer Architecture CSE 3322 Lecture 4 Assignment: 2.4.1, 2.4.4, 2.6.1, , Due 2/10/09
MIPS Lab CMPE 142 – Operating Systems. MIPS Simulator First Time Startup Setting Options.
Assembly Language Co-Routines
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO Session 12 Procedure Calling.
LECTURE 19 Subroutines and Parameter Passing. ABSTRACTION Recall: Abstraction is the process by which we can hide larger or more complex code fragments.
7-Nov Fall 2001: copyright ©T. Pearce, D. Hutchinson, L. Marshall Oct lecture23-24-hll-interrupts 1 High Level Language vs. Assembly.
Procedures Procedures are very important for writing reusable and maintainable code in assembly and high-level languages. How are they implemented? Application.
Lecture 3 Translation.
Computer Systems Nat 5 Computing Science
Computer Architecture & Operations I
Writing Functions in Assembly
Storage Classes There are three places in memory where data may be placed: In Data section declared with .data in assembly language in C - Static) On the.
Run-time support Jakub Yaghob
Computer Science 210 Computer Organization
Lecture 5: Procedure Calls
Computer Systems Nat 5 Computing Science
Procedures 101: There and Back Again
CS 3305 System Calls Lecture 7.
RISC Concepts, MIPS ISA Logic Design Tutorial 8.
Procedures (Functions)
Procedures (Functions)
Writing Functions in Assembly
Functions and Procedures
The HP OpenVMS Itanium® Calling Standard
Chapter 9 :: Subroutines and Control Abstraction
MIPS Instructions.
The University of Adelaide, School of Computer Science
The University of Adelaide, School of Computer Science
Lecture 5: Procedure Calls
What time is it?. What time is it? Major Concepts: a data structure model: basic representation of data, such as integers, logic values, and characters.
Program and memory layout
Program and memory layout
Computer Architecture
Program and memory layout
Where is all the knowledge we lost with information? T. S. Eliot
Program and memory layout
Introduction Lab1 A crash course in assembler programming
Runtime Stack Activation record for hanoi;
Presentation transcript:

Application Binary Interface (ABI) taken from http://www.yourdictionary.com/api

Application Binary Interface (ABI) a specification defining requirements for portability of applications at binary level (i.e., executables) no recompilation or relinking interoperability (assembly language subroutine can be called from HLL) usually associated with a particular OS or OS family

Application Binary Interface (ABI) thus, an executable compiled according to one ABI will not typically run under a different OS on the same machine also: allows assembly language routines to be called from HLL routines, and HLL routines to be called from assembly language routines

Application Binary Interface (ABI) specifications in ABI include: specific processor or processor family any required processor features (e.g., SIMD instructions) data formats register usage conventions stack frame format parameter passing, including fp/structure/union parameters return value passing, including fp/structure/union return values specific OS or OS family object and executable file formats

Application Binary Interface (ABI) example register conventions actual parameters return value(s) return address stack pointer frame pointer global area pointer constant pool pointer temporaries caller-saved (if caller wants them preserved over call, caller must save and restore) callee-saved (if called subroutines wants to use them, subroutine must save and retore)

Application Binary Interface (ABI) ARM ABI - http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0036b/index.html