1.5 KiB
1.5 KiB
title | date |
---|---|
x86 ASM | 2018-10-15 |
x86 ASM
Outline
- 32 bit System
Syntax
Intel Syntax (verwendet in Vorlesung)
- Intel Syntax (Ziel Operant ist immer links)
- Adressen in
[1234]
AT&T Syntax
- Ziel Operant ist rechts
- Register mit
%
- Number Literals mit
$
Memory Layout
.bss
global uninitialized variables.data
global initialized variables- heap: dynamic variables
.text
: code (usually read-only)- stack: lokale Variablen + procedure activation records
- heap grows up
- stack grows down
Stack Frame
- ESP: Ende des Stacks
- EBP: Begin des aktuellen Stack Frames
Enthält:
- Lokale Variablen
- Parameter
- Caller Adresse
| :---: |
Parameters |
:---: |
Return address |
:---: |
prev frame address (alter EBP) |
:---: |
EBP -> |
:---: |
Local variables |
:---: |
ESP -> |
:---: |
:---: |
MOV
mov eax, ebx
:eax = ebx
mov edx, [1234]
:edx = *1234
PUSH
push ecx
: Wert vonecx
auf den Stack,esp - 4
pop esi
:esp + 4
RET
pop eip
Subroutinen
f(1,2,3)
->
push 3
push 2
push 1
call f