6.828 Lecture Notes: x86 and PC architecture
|
|
- Gabriella Carson
- 5 years ago
- Views:
Transcription
1 6.828 Lecture Ntes: x86 and PC architecture Outline PC architecture x86 instructin set gcc calling cnventins PC emulatin PC architecture A full PC has: an x86 CPU with registers, executin unit, and memry management CPU chip pins include address and data signals memry disk keybard display ther resurces: BIOS ROM, clck,... We will start with the riginal 16-bit 8086 CPU (1978) CPU runs instructins: fr(;;){ run next instructin Needs wrk space: registers fur 16-bit data registers: AX, CX, DX, BX each in tw 8-bit halves, e.g. AH and AL very fast, very few Mre wrk space: memry CPU sends ut address n address lines (wires, ne bit per wire) Data cmes back n data lines r data is written t data lines Add address registers: pinters int memry SP - stack pinter BP - frame base pinter SI - surce index DI - destinatin index Instructins are in memry t! IP - instructin pinter (PC n PDP-11, everything else) increment after running each instructin can be mdified by CALL, RET, JMP, cnditinal jumps Want cnditinal jumps FLAGS - varius cnditin cdes
2 whether last arithmetic peratin verflwed... was psitive/negative... was [nt] zer... carry/brrw n add/subtract... verflw... etc. whether interrupts are enabled directin f data cpy instructins JP, JN, J[N]Z, J[N]C, J[N]O... Still nt interesting - need I/O t interact with utside wrld Original PC architecture: use dedicated I/O space Wrks same as memry accesses but set I/O signal Only 1024 I/O addresses Example: write a byte t line printer: #define DATA_PORT 0x378 #define STATUS_PORT 0x379 #define BUSY 0x80 #define CONTROL_PORT 0x37A #define STROBE 0x01 vid lpt_putc(int c) { /* wait fr printer t cnsume previus byte */ while((inb(status_port) & BUSY) == 0) ; /* put the byte n the parallel lines */ utb(data_port, c); /* tell the printer t lk at the data */ utb(control_port, STROBE); utb(control_port, 0); Memry-Mapped I/O Use nrmal physical memry addresses Gets arund limited size f I/O address space N need fr special instructins System cntrller rutes t apprpriate device Wrks like ``magic'' memry: Addressed and accessed like memry, but des nt behave like memry! Reads and writes can have ``side effects'' Read results can change due t external events What if we want t use mre than 2^16 bytes f memry? 8086 has 20-bit physical addresses, can have 1 Meg RAM each segment is a 2^16 byte windw int physical memry virtual t physical translatin: pa = va + seg*16
3 the segment is usually implicit, frm a segment register CS - cde segment (fr fetches via IP) SS - stack segment (fr lad/stre via SP and BP) DS - data segment (fr lad/stre via ther registers) ES - anther data segment (destinatin fr string peratins) tricky: can't use the 16-bit address f a stack variable as a pinter but a far pinter includes full segment:ffset ( bits) But 8086's 16-bit addresses and data were still painfully small added supprt fr 32-bit data and addresses (1985) bts in 16-bit mde, bt.s switches t 32-bit mde registers are 32 bits wide, called EAX rather than AX perands and addresses are als 32 bits, e.g. ADD des 32-bit arithmetic prefix 0x66 gets yu 16-bit mde: MOVW is really 0x66 MOVW the.cde32 in bt.s tells assembler t generate 0x66 fr e.g. MOVW als changed segments and added paged memry... x86 Physical Memry Map The physical address space mstly lks like rdinary RAM Except sme lw-memry addresses actually refer t ther things Writes t VGA memry appear n the screen Reset r pwer-n jumps t ROM at 0x000ffff <- 0xFFFFFFFF (4GB) 32-bit memry mapped devices /\/\/\/\/\/\/\/\/\/\ /\/\/\/\/\/\/\/\/\/\ Unused <- depends n amunt f RAM Extended Memry <- 0x (1MB) BIOS ROM <- 0x000F0000 (960KB) 16-bit devices, expansin ROMs <- 0x000C0000 (768KB) VGA Display <- 0x000A0000 (640KB) Lw Memry
4 <- 0x x86 Instructin Set Tw-perand instructin set Intel syntax: p dst, src AT&T (gcc/gas) syntax: p src, dst uses b, w, l suffix n instructins t specify size f perands Operands are registers, cnstant, memry via register, memry via cnstant Examples: AT&T syntax "C"-ish equivalent mvl %eax, %edx edx = eax; register mde mvl $0x123, %edx edx = 0x123; immediate mvl 0x123, %edx edx = *(int32_t*)0x123; direct mvl (%ebx), %edx edx = *(int32_t*)ebx; indirect mvl 4(%ebx), %edx edx = *(int32_t*)(ebx+4); displaced Instructin classes data mvement: MOV, PUSH, POP,... arithmetic: TEST, SHL, ADD, AND,... i/: IN, OUT,... cntrl: JMP, JZ, JNZ, CALL, RET string: REP MOVSB,... system: IRET, INT Intel architecture manual Vlume 2 is the reference gcc x86 calling cnventins x86 dictates that stack grws dwn: Example instructin What it des pushl %eax subl $4, %esp mvl %eax, (%esp) ppl %eax mvl (%esp), %eax addl $4, %esp call $0x12345 pushl %eip (*) mvl $0x12345, %eip (*) ret ppl %eip (*)
5 (*) Nt real instructins GCC dictates hw the stack is used. Cntract between caller and callee n x86: after call instructin: %eip pints at first instructin f functin %esp+4 pints at first argument %esp pints at return address after ret instructin: %eip cntains return address %esp pints at arguments pushed by caller called functin may have trashed arguments %eax cntains return value (r trash if functin is vid) %ecx, %edx may be trashed %ebp, %ebx, %esi, %edi must cntain cntents frm time f call Terminlgy: %eax, %ecx, %edx are "caller save" registers %ebp, %ebx, %esi, %edi are "callee save" registers Functins can d anything that desn't vilate cntract. By cnventin, GCC des mre: each functin has a stack frame marked by %ebp, %esp arg 2 \ >- previus functin's stack frame arg 1 / ret %eip / +============+ saved %ebp \ %ebp-> lcal \ variables, >- current functin's stack frame etc. / %esp-> / %esp can mve t make stack frame bigger, smaller %ebp pints at saved %ebp frm previus functin, chain t walk stack functin prlgue: pushl %ebp mvl %esp, %ebp functin epilgue: mvl %ebp, %esp ppl %ebp
6 r leave Big example: C cde int main(vid) { return f(8)+1; } int f(int x) { return g(x); } int g(int x) { return x+3; } assembler _main: prlgue pushl %ebp mvl %esp, %ebp bdy pushl $8 call _f addl $1, %eax epilgue mvl %ebp, %esp ppl %ebp ret _f: prlgue pushl %ebp mvl %esp, %ebp bdy pushl 8(%esp) call _g epilgue mvl %ebp, %esp ppl %ebp ret _g: prlgue pushl %ebp mvl %esp, %ebp save %ebx pushl %ebx bdy mvl 8(%ebp), %ebx addl $3, %ebx mvl %ebx, %eax restre %ebx ppl %ebx epilgue mvl %ebp, %esp ppl %ebp ret
7 Super-small _g: _g: mvl 4(%esp), %eax addl $3, %eax ret Cmpiling, linking, lading: Cmpiler takes C surce cde (ASCII text), prduces assembly language (als ASCII text) Assembler takes assembly language (ASCII text), prduces. file (binary, machine-readable!) PC emulatin Linker takse multiple '.'s, prduces a single prgram image (binary) Lader lads the prgram image int memry at run-time and starts it executing Emulatr like Bchs wrks by ding exactly what a real PC wuld d, nly implemented in sftware rather than hardware! Runs as a nrmal prcess in a "hst" perating system (e.g., Linux) Uses nrmal prcess strage t hld emulated hardware state: e.g., Hld emulated CPU registers in glbal variables int32_t regs[8]; #define REG_EAX 1; #define REG_EBX 2; #define REG_ECX 3;... int32_t eip; int16_t segregs[4];... mallc a big chunk f (virtual) prcess memry t hld emulated PC's (physical) memry Execute instructins by simulating them in a lp: fr (;;) { read_instructin(); switch (decde_instructin_pcde()) { case OPCODE_ADD: int src = decde_src_reg(); int dst = decde_dst_reg(); regs[dst] = regs[dst] + regs[src]; break; case OPCODE_SUB: int src = decde_src_reg(); int dst = decde_dst_reg();
8 regs[dst] = regs[dst] - regs[src]; break;... eip += instructin_length; Simulate PC's physical memry map by decding emulated "physical" addresses just like a PC wuld: #define KB 1024 #define MB 1024*1024 #define LOW_MEMORY 640*KB #define EXT_MEMORY 10*MB uint8_t lw_mem[low_memory]; uint8_t ext_mem[ext_memory]; uint8_t bis_rm[64*kb]; uint8_t read_byte(uint32_t phys_addr) { if (phys_addr < LOW_MEMORY) return lw_mem[phys_addr]; else if (phys_addr >= 960*KB && phys_addr < 1*MB) return rm_bis[phys_addr - 960*KB]; else if (phys_addr >= 1*MB && phys_addr < 1*MB+EXT_MEMORY) { return ext_mem[phys_addr-1*mb]; else... vid write_byte(uint32_t phys_addr, uint8_t val) { if (phys_addr < LOW_MEMORY) lw_mem[phys_addr] = val; else if (phys_addr >= 960*KB && phys_addr < 1*MB) ; /* ignre attempted write t ROM! */ else if (phys_addr >= 1*MB && phys_addr < 1*MB+EXT_MEMORY) { ext_mem[phys_addr-1*mb] = val; else... Simulate I/O devices, etc., by detecting accesses t "special" memry and I/O space and emulating the crrect behavir: e.g., Reads/writes t emulated hard disk transfrmed int reads/writes f a file n the hst system Writes t emulated VGA display hardware transfrmed int drawing int an X windw
9 Reads frm emulated PC keybard transfrmed int reads frm X input event queue
x86 architecture et similia
x86 architecture et similia 1 FREELY INSPIRED FROM CLASS 6.828, MIT A full PC has: PC architecture 2 an x86 CPU with registers, execution unit, and memory management CPU chip pins include address and data
More informationW4118: PC Hardware and x86. Junfeng Yang
W4118: PC Hardware and x86 Junfeng Yang A PC How to make it do something useful? 2 Outline PC organization x86 instruction set gcc calling conventions PC emulation 3 PC board 4 PC organization One or more
More informationx86 Assembly Tutorial COS 318: Fall 2017
x86 Assembly Tutorial COS 318: Fall 2017 Project 1 Schedule Design Review: Monday 9/25 Sign up for 10-min slot from 3:00pm to 7:00pm Complete set up and answer posted questions (Official) Precept: Monday
More informationIntroduction to InfoSec Recitation 2. Nir Krakowski (nirkrako at post.tau.ac.il) Itamar Gilad (itamargi at post.tau.ac.il)
Intrductin t InfSec Recitatin 2 Nir Krakwski (nirkrak at pst.tau.ac.il) Itamar Gilad (itamargi at pst.tau.ac.il) Mre assembly tips Review f the stack Stack verflws Implementatin Tls Tday Little vs Big
More informationCSE 361S Intro to Systems Software Lab #2
Due: Thursday, September 22, 2011 CSE 361S Intr t Systems Sftware Lab #2 Intrductin This lab will intrduce yu t the GNU tls in the Linux prgramming envirnment we will be using fr CSE 361S this semester,
More informationMIPS Architecture and Assembly Language Overview
MIPS Architecture and Assembly Language Overview Adapted frm: http://edge.mcs.dre.g.el.edu/gicl/peple/sevy/architecture/mipsref(spim).html [Register Descriptin] [I/O Descriptin] Data Types and Literals
More informationCS165 Computer Security. Understanding low-level program execution Oct 1 st, 2015
CS165 Computer Security Understanding low-level program execution Oct 1 st, 2015 A computer lets you make more mistakes faster than any invention in human history - with the possible exceptions of handguns
More informationCS 31: Intro to Systems ISAs and Assembly. Martin Gagné Swarthmore College February 7, 2017
CS 31: Intro to Systems ISAs and Assembly Martin Gagné Swarthmore College February 7, 2017 ANNOUNCEMENT All labs will meet in SCI 252 (the robot lab) tomorrow. Overview How to directly interact with hardware
More informationCS241 Computer Organization Spring 2015 IA
CS241 Computer Organization Spring 2015 IA-32 2-10 2015 Outline! Review HW#3 and Quiz#1! More on Assembly (IA32) move instruction (mov) memory address computation arithmetic & logic instructions (add,
More informationProject 1: Bootloader. COS 318 Fall 2015
Project 1: Bootloader COS 318 Fall 2015 Project 1: Schedule Design Review - Monday, 9/28-10- min Ime slots from 1:30pm- 6:20pm - Write funcions print_char and print_string! - Answer the quesions: ü How
More informationIt has hardware. It has application software.
Q.1 What is System? Explain with an example A system is an arrangement in which all its unit assemble wrk tgether accrding t a set f rules. It can als be defined as a way f wrking, rganizing r ding ne
More informationCredits and Disclaimers
Credits and Disclaimers 1 The examples and discussion in the following slides have been adapted from a variety of sources, including: Chapter 3 of Computer Systems 2 nd Edition by Bryant and O'Hallaron
More informationLecture 15 Intel Manual, Vol. 1, Chapter 3. Fri, Mar 6, Hampden-Sydney College. The x86 Architecture. Robb T. Koether. Overview of the x86
Lecture 15 Intel Manual, Vol. 1, Chapter 3 Hampden-Sydney College Fri, Mar 6, 2009 Outline 1 2 Overview See the reference IA-32 Intel Software Developer s Manual Volume 1: Basic, Chapter 3. Instructions
More informationARM Programmer s Model
ARM Prgrammer s Mdel Hsung-Pin Chang Department f Cmputer Science Natinal Chung Hsing University PDF created with FinePrint pdffactry Pr trial versin www.pdffactry.cm Outline ARM Data Types ARM Prcessr
More informationScott M. Lewandowski CS295-2: Advanced Topics in Debugging September 21, 1998
Scott M. Lewandowski CS295-2: Advanced Topics in Debugging September 21, 1998 Assembler Syntax Everything looks like this: label: instruction dest,src instruction label Comments: comment $ This is a comment
More informationCSCI 192 Engineering Programming 2. Assembly Language
CSCI 192 Engineering Programming 2 Week 5 Assembly Language Lecturer: Dr. Markus Hagenbuchner Slides by: Igor Kharitonenko and Markus Hagenbuchner Room 3.220 markus@uow.edu.au UOW 2010 24/08/2010 1 C Compilation
More informationUMBC. contain new IP while 4th and 5th bytes contain CS. CALL BX and CALL [BX] versions also exist. contain displacement added to IP.
Procedures: CALL: Pushes the address of the instruction following the CALL instruction onto the stack. RET: Pops the address. SUM PROC NEAR USES BX CX DX ADD AX, BX ADD AX, CX MOV AX, DX RET SUM ENDP NEAR
More informationMODE (mod) FIELD CODES. mod MEMORY MODE: 8-BIT DISPLACEMENT MEMORY MODE: 16- OR 32- BIT DISPLACEMENT REGISTER MODE
EXERCISE 9. Determine the mod bits from Figure 7-24 and write them in Table 7-7. MODE (mod) FIELD CODES mod 00 01 10 DESCRIPTION MEMORY MODE: NO DISPLACEMENT FOLLOWS MEMORY MODE: 8-BIT DISPLACEMENT MEMORY
More informationx86 assembly CS449 Fall 2017
x86 assembly CS449 Fall 2017 x86 is a CISC CISC (Complex Instruction Set Computer) e.g. x86 Hundreds of (complex) instructions Only a handful of registers RISC (Reduced Instruction Set Computer) e.g. MIPS
More informationHardware and Software Architecture. Chapter 2
Hardware and Software Architecture Chapter 2 1 Basic Components The x86 processor communicates with main memory and I/O devices via buses Data bus for transferring data Address bus for the address of a
More informationCS 31: Intro to Systems Functions and the Stack. Martin Gagne Swarthmore College February 23, 2016
CS 31: Intro to Systems Functions and the Stack Martin Gagne Swarthmore College February 23, 2016 Reminders Late policy: you do not have to send me an email to inform me of a late submission before the
More informationXilinx Answer Xilinx PCI Express DMA Drivers and Software Guide
Xilinx Answer 65444 Xilinx PCI Express DMA Drivers and Sftware Guide Imprtant Nte: This dwnladable PDF f an Answer Recrd is prvided t enhance its usability and readability. It is imprtant t nte that Answer
More informationFunction Calls COS 217. Reading: Chapter 4 of Programming From the Ground Up (available online from the course Web site)
Function Calls COS 217 Reading: Chapter 4 of Programming From the Ground Up (available online from the course Web site) 1 Goals of Today s Lecture Finishing introduction to assembly language o EFLAGS register
More informationThe x86 Architecture
The x86 Architecture Lecture 24 Intel Manual, Vol. 1, Chapter 3 Robb T. Koether Hampden-Sydney College Fri, Mar 20, 2015 Robb T. Koether (Hampden-Sydney College) The x86 Architecture Fri, Mar 20, 2015
More informationComputer Processors. Part 2. Components of a Processor. Execution Unit The ALU. Execution Unit. The Brains of the Box. Processors. Execution Unit (EU)
Part 2 Computer Processors Processors The Brains of the Box Computer Processors Components of a Processor The Central Processing Unit (CPU) is the most complex part of a computer In fact, it is the computer
More informationAssembly Language Lab # 9
Faculty of Engineering Computer Engineering Department Islamic University of Gaza 2011 Assembly Language Lab # 9 Stacks and Subroutines Eng. Doaa Abu Jabal Assembly Language Lab # 9 Stacks and Subroutines
More informationModule 3 Instruction Set Architecture (ISA)
Module 3 Instruction Set Architecture (ISA) I S A L E V E L E L E M E N T S O F I N S T R U C T I O N S I N S T R U C T I O N S T Y P E S N U M B E R O F A D D R E S S E S R E G I S T E R S T Y P E S O
More informationReverse Engineering II: Basics. Gergely Erdélyi Senior Antivirus Researcher
Reverse Engineering II: Basics Gergely Erdélyi Senior Antivirus Researcher Agenda Very basics Intel x86 crash course Basics of C Binary Numbers Binary Numbers 1 Binary Numbers 1 0 1 1 Binary Numbers 1
More informationadministrivia today start assembly probably won t finish all these slides Assignment 4 due tomorrow any questions?
administrivia today start assembly probably won t finish all these slides Assignment 4 due tomorrow any questions? exam on Wednesday today s material not on the exam 1 Assembly Assembly is programming
More informationX86 Addressing Modes Chapter 3" Review: Instructions to Recognize"
X86 Addressing Modes Chapter 3" Review: Instructions to Recognize" 1 Arithmetic Instructions (1)! Two Operand Instructions" ADD Dest, Src Dest = Dest + Src SUB Dest, Src Dest = Dest - Src MUL Dest, Src
More informationReverse Engineering II: The Basics
Reverse Engineering II: The Basics Gergely Erdélyi Senior Manager, Anti-malware Research Protecting the irreplaceable f-secure.com Binary Numbers 1 0 1 1 - Nibble B 1 0 1 1 1 1 0 1 - Byte B D 1 0 1 1 1
More information16.317: Microprocessor Systems Design I Fall 2014
16.317: Microprocessor Systems Design I Fall 2014 Exam 2 Solution 1. (16 points, 4 points per part) Multiple choice For each of the multiple choice questions below, clearly indicate your response by circling
More informationCS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College February 9, 2016
CS 31: Intro to Systems ISAs and Assembly Kevin Webb Swarthmore College February 9, 2016 Reading Quiz Overview How to directly interact with hardware Instruction set architecture (ISA) Interface between
More informationCS 33: Week 3 Discussion. x86 Assembly (v1.0) Section 1G
CS 33: Week 3 Discussion x86 Assembly (v1.0) Section 1G Announcements - HW2 due Sunday - MT1 this Thursday! - Lab2 out Info Name: Eric Kim (Section 1G, 2-4 PM, BH 5419) Office Hours (Boelter 2432) - Wed
More informationCS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College September 25, 2018
CS 31: Intro to Systems ISAs and Assembly Kevin Webb Swarthmore College September 25, 2018 Overview How to directly interact with hardware Instruction set architecture (ISA) Interface between programmer
More informationCSC 2400: Computer Systems. Towards the Hardware: Machine-Level Representation of Programs
CSC 2400: Computer Systems Towards the Hardware: Machine-Level Representation of Programs Towards the Hardware High-level language (Java) High-level language (C) assembly language machine language (IA-32)
More informationWhat is a Compiler? Compiler Construction SMD163. Why Translation is Needed: Know your Target: Lecture 8: Introduction to code generation
Compiler Construction SMD163 Lecture 8: Introduction to code generation Viktor Leijon & Peter Jonsson with slides by Johan Nordlander Contains material generously provided by Mark P. Jones What is a Compiler?
More informationAssembly Language: Function Calls
Assembly Language: Function Calls 1 Goals of this Lecture Help you learn: Function call problems: Calling and returning Passing parameters Storing local variables Handling registers without interference
More informationComputer Organization and Architecture
Campus de Gualtar 4710-057 Braga UNIVERSIDADE DO MINHO ESCOLA DE ENGENHARIA Departament de Infrmática Cmputer Organizatin and Architecture 5th Editin, 2000 by William Stallings Table f Cntents I. OVERVIEW.
More informationQuestion 4.2 2: (Solution, p 5) Suppose that the HYMN CPU begins with the following in memory. addr data (translation) LOAD 11110
Questions 1 Question 4.1 1: (Solution, p 5) Define the fetch-execute cycle as it relates to a computer processing a program. Your definition should describe the primary purpose of each phase. Question
More informationAccess. Young W. Lim Fri. Young W. Lim Access Fri 1 / 18
Access Young W. Lim 2017-01-27 Fri Young W. Lim Access 2017-01-27 Fri 1 / 18 Outline 1 Introduction References IA32 Operand Forms Data Movement Instructions Young W. Lim Access 2017-01-27 Fri 2 / 18 Based
More informationCompiler Construction D7011E
Compiler Construction D7011E Lecture 8: Introduction to code generation Viktor Leijon Slides largely by Johan Nordlander with material generously provided by Mark P. Jones. 1 What is a Compiler? Compilers
More informationCSC 8400: Computer Systems. Machine-Level Representation of Programs
CSC 8400: Computer Systems Machine-Level Representation of Programs Towards the Hardware High-level language (Java) High-level language (C) assembly language machine language (IA-32) 1 Compilation Stages
More informationAssembly Language: Function Calls" Goals of this Lecture"
Assembly Language: Function Calls" 1 Goals of this Lecture" Help you learn:" Function call problems:" Calling and returning" Passing parameters" Storing local variables" Handling registers without interference"
More informationCS4500/5500 Operating Systems Computer and Operating Systems Overview
Operating Systems Cmputer and Operating Systems Overview Yanyan Zhuang Department f Cmputer Science http://www.cs.uccs.edu/~yzhuang UC. Clrad Springs Ref. MOS4E, OS@Austin, Clumbia, UWisc Overview Recap
More informationProcedure Calls. Young W. Lim Sat. Young W. Lim Procedure Calls Sat 1 / 27
Procedure Calls Young W. Lim 2016-11-05 Sat Young W. Lim Procedure Calls 2016-11-05 Sat 1 / 27 Outline 1 Introduction References Stack Background Transferring Control Register Usage Conventions Procedure
More informationCS412/CS413. Introduction to Compilers Tim Teitelbaum. Lecture 21: Generating Pentium Code 10 March 08
CS412/CS413 Introduction to Compilers Tim Teitelbaum Lecture 21: Generating Pentium Code 10 March 08 CS 412/413 Spring 2008 Introduction to Compilers 1 Simple Code Generation Three-address code makes it
More informationAccess. Young W. Lim Sat. Young W. Lim Access Sat 1 / 19
Access Young W. Lim 2017-06-10 Sat Young W. Lim Access 2017-06-10 Sat 1 / 19 Outline 1 Introduction References IA32 Operand Forms Data Movement Instructions Data Movement Examples Young W. Lim Access 2017-06-10
More informationProgram Exploitation Intro
Program Exploitation Intro x86 Assembly 04//2018 Security 1 Univeristà Ca Foscari, Venezia What is Program Exploitation "Making a program do something unexpected and not planned" The right bugs can be
More informationOperating systems. Module 15 kernel I/O subsystem. Tami Sorgente 1
Operating systems Mdule 15 kernel I/O subsystem Tami Srgente 1 SWAP SPACE MANAGEMENT Swap space can be defined as a temprary strage lcatin that is used when system s memry requirements exceed the size
More informationX86 Stack Calling Function POV
X86 Stack Calling Function POV Computer Systems Section 3.7 Stack Frame Reg Value ebp xffff FFF0 esp xffff FFE0 eax x0000 000E Memory Address Value xffff FFF8 xffff FFF4 x0000 0004 xffff FFF4 x0000 0003
More informationAssembly Language: Function Calls" Goals of this Lecture"
Assembly Language: Function Calls" 1 Goals of this Lecture" Help you learn:" Function call problems:" Calling and urning" Passing parameters" Storing local variables" Handling registers without interference"
More informationAssembly Language: Function Calls. Goals of this Lecture. Function Call Problems
Assembly Language: Function Calls 1 Goals of this Lecture Help you learn: Function call problems: Calling and urning Passing parameters Storing local variables Handling registers without interference Returning
More informationPractical Malware Analysis
Practical Malware Analysis Ch 4: A Crash Course in x86 Disassembly Revised 1-16-7 Basic Techniques Basic static analysis Looks at malware from the outside Basic dynamic analysis Only shows you how the
More informationAssignment #5: Rootkit. ECE 650 Fall 2018
General Instructins Assignment #5: Rtkit ECE 650 Fall 2018 See curse site fr due date Updated 4/10/2018, changes nted in green 1. Yu will wrk individually n this assignment. 2. The cde fr this assignment
More informationThe Instruction Set. Chapter 5
The Instruction Set Architecture Level(ISA) Chapter 5 1 ISA Level The ISA level l is the interface between the compilers and the hardware. (ISA level code is what a compiler outputs) 2 Memory Models An
More informationReading and writing data in files
Reading and writing data in files It is ften very useful t stre data in a file n disk fr later reference. But hw des ne put it there, and hw des ne read it back? Each prgramming language has its wn peculiar
More informationTurning C into Object Code Code in files p1.c p2.c Compile with command: gcc -O p1.c p2.c -o p Use optimizations (-O) Put resulting binary in file p
Turning C into Object Code Code in files p1.c p2.c Compile with command: gcc -O p1.c p2.c -o p Use optimizations (-O) Put resulting binary in file p text C program (p1.c p2.c) Compiler (gcc -S) text Asm
More informationAssembler Programming. Lecture 2
Assembler Programming Lecture 2 Lecture 2 8086 family architecture. From 8086 to Pentium4. Registers, flags, memory organization. Logical, physical, effective address. Addressing modes. Processor Processor
More informationProcess Layout and Function Calls
Process Layout and Function Calls CS 6 Spring 07 / 8 Process Layout in Memory Stack grows towards decreasing addresses. is initialized at run-time. Heap grow towards increasing addresses. is initialized
More informationIntroduction to IA-32. Jo, Heeseung
Introduction to IA-32 Jo, Heeseung IA-32 Processors Evolutionary design Starting in 1978 with 8086 Added more features as time goes on Still support old features, although obsolete Totally dominate computer
More informationINTRODUCTION TO IA-32. Jo, Heeseung
INTRODUCTION TO IA-32 Jo, Heeseung IA-32 PROCESSORS Evolutionary design Starting in 1978 with 8086 Added more features as time goes on Still support old features, although obsolete Totally dominate computer
More informationBasic Execution Environment
Basic Execution Environment 3 CHAPTER 3 BASIC EXECUTION ENVIRONMENT This chapter describes the basic execution environment of an Intel Architecture processor as seen by assembly-language programmers.
More informationAddressing Modes on the x86
Addressing Modes on the x86 register addressing mode mov ax, ax, mov ax, bx mov ax, cx mov ax, dx constant addressing mode mov ax, 25 mov bx, 195 mov cx, 2056 mov dx, 1000 accessing data in memory There
More informationBuffer Overflow Attack
Buffer Overflow Attack What every applicant for the hacker should know about the foundation of buffer overflow attacks By (Dalgona@wowhacker.org) Email: zinwon@gmail.com 2005 9 5 Abstract Buffer overflow.
More informationCredits and Disclaimers
Credits and Disclaimers 1 The examples and discussion in the following slides have been adapted from a variety of sources, including: Chapter 3 of Computer Systems 3 nd Edition by Bryant and O'Hallaron
More informationLow-Level Essentials for Understanding Security Problems Aurélien Francillon
Low-Level Essentials for Understanding Security Problems Aurélien Francillon francill@eurecom.fr Computer Architecture The modern computer architecture is based on Von Neumann Two main parts: CPU (Central
More informationLab 1 - Calculator. K&R All of Chapter 1, 7.4, and Appendix B1.2 Iterative Code Design handout Style Guidelines handout
UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING CMPE13/L: INTRODUCTION TO PROGRAMMING IN C SPRING 2013 Lab 1 - Calculatr Intrductin Reading Cncepts In this lab yu will be
More informationEXPERIMENT WRITE UP. LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM
EXPERIMENT WRITE UP AIM: Assembly language program for 16 bit BCD addition LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM TOOLS/SOFTWARE
More informationCMSC 313 Lecture 12. Project 3 Questions. How C functions pass parameters. UMBC, CMSC313, Richard Chang
Project 3 Questions CMSC 313 Lecture 12 How C functions pass parameters UMBC, CMSC313, Richard Chang Last Time Stack Instructions: PUSH, POP PUSH adds an item to the top of the stack POP
More informationSystem calls and assembler
System calls and assembler Michal Sojka sojkam1@fel.cvut.cz ČVUT, FEL License: CC-BY-SA 4.0 System calls (repetition from lectures) A way for normal applications to invoke operating system (OS) kernel's
More informationReverse Engineering II: The Basics
Reverse Engineering II: The Basics This document is only to be distributed to teachers and students of the Malware Analysis and Antivirus Technologies course and should only be used in accordance with
More informationInstruction Set Architectures
Instruction Set Architectures! ISAs! Brief history of processors and architectures! C, assembly, machine code! Assembly basics: registers, operands, move instructions 1 What should the HW/SW interface
More informationProcedure Calls. Young W. Lim Mon. Young W. Lim Procedure Calls Mon 1 / 29
Procedure Calls Young W. Lim 2017-08-21 Mon Young W. Lim Procedure Calls 2017-08-21 Mon 1 / 29 Outline 1 Introduction Based on Stack Background Transferring Control Register Usage Conventions Procedure
More informationCS3210: Booting and x86
CS3210: Booting and x86 Lecture 2 Instructor: Dr. Tim Andersen 1 / 34 Today: Bootstrapping CPU -> needs a first instruction Memory -> needs initial code/data I/O -> needs to know how to communicate 2 /
More informationX86 Review Process Layout, ISA, etc. CS642: Computer Security. Drew Davidson
X86 Review Process Layout, ISA, etc. CS642: Computer Security Drew Davidson davidson@cs.wisc.edu From Last Time ACL-based permissions (UNIX style) Read, Write, execute can be restricted on users and groups
More informationUMBC. A register, an immediate or a memory address holding the values on. Stores a symbolic name for the memory location that it represents.
Intel Assembly Format of an assembly instruction: LABEL OPCODE OPERANDS COMMENT DATA1 db 00001000b ;Define DATA1 as decimal 8 START: mov eax, ebx ;Copy ebx to eax LABEL: Stores a symbolic name for the
More informationMachine and Assembly Language Principles
Machine and Assembly Language Principles Assembly language instruction is synonymous with a machine instruction. Therefore, need to understand machine instructions and on what they operate - the architecture.
More informationCSE 3320 Operating Systems Page Replacement Algorithms and Segmentation Jia Rao
CSE 0 Operating Systems Page Replacement Algrithms and Segmentatin Jia Ra Department f Cmputer Science and Engineering http://ranger.uta.edu/~jra Recap f last Class Virtual memry Memry verlad What if the
More informationCSE 3320 Operating Systems Computer and Operating Systems Overview Jia Rao
CSE 3320 Operating Systems Cmputer and Operating Systems Overview Jia Ra Department f Cmputer Science and Engineering http://ranger.uta.edu/~jra Overview Recap f last class What is an perating system?
More informationData Structure Interview Questions
Data Structure Interview Questins A list f tp frequently asked Data Structure interview questins and answers are given belw. 1) What is Data Structure? Explain. Data structure is a way that specifies hw
More informationCS510 Concurrent Systems Class 1a. Linux Kernel Locking Techniques
CS510 Cncurrent Systems Class 1a Linux Kernel Lcking Techniques Intr t kernel lcking techniques (Linux) Why d we need lcking in the kernel? Which prblems are we trying t slve? What implementatin chices
More informationCS510 Concurrent Systems Class 2. A Lock-Free Multiprocessor OS Kernel
CS510 Cncurrent Systems Class 2 A Lck-Free Multiprcessr OS Kernel The Synthesis kernel A research prject at Clumbia University Synthesis V.0 ( 68020 Uniprcessr (Mtrla N virtual memry 1991 - Synthesis V.1
More informationEastern Mediterranean University School of Computing and Technology Information Technology Lecture2 Functions
Eastern Mediterranean University Schl f Cmputing and Technlgy Infrmatin Technlgy Lecture2 Functins User Defined Functins Why d we need functins? T make yur prgram readable and rganized T reduce repeated
More informationSystems I. Machine-Level Programming V: Procedures
Systems I Machine-Level Programming V: Procedures Topics abstraction and implementation IA32 stack discipline Procedural Memory Usage void swap(int *xp, int *yp) int t0 = *xp; int t1 = *yp; *xp = t1; *yp
More informationChapter 11. Addressing Modes
Chapter 11 Addressing Modes 1 2 Chapter 11 11 1 Register addressing mode is the most efficient addressing mode because the operands are in the processor itself (there is no need to access memory). Chapter
More informationCS3210: Booting and x86. Taesoo Kim
1 CS3210: Booting and x86 Taesoo Kim 2 What is an operating system? e.g. OSX, Windows, Linux, FreeBSD, etc. What does an OS do for you? Abstract the hardware for convenience and portability Multiplex the
More informationLab 3. The Art of Assembly Language (II)
Lab. The Art of Assembly Language (II) Dan Bruce, David Clark and Héctor D. Menéndez Department of Computer Science University College London October 2, 2017 License Creative Commons Share Alike Modified
More informationCPEG421/621 Tutorial
CPEG421/621 Tutorial Compiler data representation system call interface calling convention Assembler object file format object code model Linker program initialization exception handling relocation model
More informationIA32 Intel 32-bit Architecture
1 2 IA32 Intel 32-bit Architecture Intel 32-bit Architecture (IA32) 32-bit machine CISC: 32-bit internal and external data bus 32-bit external address bus 8086 general registers extended to 32 bit width
More informationCS1150 Principles of Computer Science Midterm Review
CS1150 Principles f Cmputer Science Midterm Review Yanyan Zhuang Department f Cmputer Science http://www.cs.uccs.edu/~yzhuang CS1150 UC. Clrad Springs Office hurs 10/15, Mnday, 12:05 12:50pm 10/17, Wednesday
More informationThe Microprocessor and its Architecture
The Microprocessor and its Architecture Contents Internal architecture of the Microprocessor: The programmer s model, i.e. The registers model The processor model (organization) Real mode memory addressing
More informationCCNA 1 Chapter v5.1 Answers 100%
CCNA 1 Chapter 6 2016 v5.1 Answers 100% 1. Which characteristic f the netwrk layer in the OSI mdel allws carrying packets fr multiple types f cmmunicatins amng many hsts? the de-encapsulatin f headers
More informationHistory of Java. VM (Java Virtual Machine) What is JVM. What it does. 1. Brief history of Java 2. Java Version History
Histry f Java 1. Brief histry f Java 2. Java Versin Histry The histry f Java is very interesting. Java was riginally designed fr interactive televisin, but it was t advanced technlgy fr the digital cable
More informationGAZI UNIVERSITY COMPUTER ENGINEERING DEPARTMENT SPRING MICROPROCESSOR LAB7
Lab Related Instructins: GAZI UNIVERSITY Interrupts are numbered 00 t FF, this gives a ttal f 256 interrupts in 80x86 micrprcessrs. Of these 256 interrupts, tw f them are the mst widely used: INT 1OH and
More informationCS642: Computer Security
X86 Review Process Layout, ISA, etc. CS642: Computer Security Drew Davidson davidson@cs.wisc.edu From Last Week ACL- based permissions (UNIX style) Read, Write, execute can be restricted on users and groups
More informationMachine-level Representation of Programs. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Machine-level Representation of Programs Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Program? 짬뽕라면 준비시간 :10 분, 조리시간 :10 분 재료라면 1개, 스프 1봉지, 오징어
More informationAssembly Language Each statement in an assembly language program consists of four parts or fields.
Chapter 3: Addressing Modes Assembly Language Each statement in an assembly language program consists of four parts or fields. The leftmost field is called the label. - used to identify the name of a memory
More informationCPS104 Recitation: Assembly Programming
CPS104 Recitation: Assembly Programming Alexandru Duțu 1 Facts OS kernel and embedded software engineers use assembly for some parts of their code some OSes had their entire GUIs written in assembly in
More informationSYSC3601 Microprocessor Systems. Unit 2: The Intel 8086 Architecture and Programming Model
SYSC3601 Microprocessor Systems Unit 2: The Intel 8086 Architecture and Programming Model Topics/Reading SYSC3601 2 Microprocessor Systems 1. Registers and internal architecture (Ch 2) 2. Address generation
More information