Assembly and static analysis Flashcards
Hvad er Assembly?
Det er et lavniveau-programmeringssprog, der direkte korresponderer med maskinens instruktioner
Hvorfor bruger man Assembly når man vil konvertere C++ kode i REM?
Det gør man for at analysere koden og for at gøre det mere læseligt for os.
Hvilke instruktioner er der i Assembly?
- Data movement
- Arithmetic
- Logical
- Control flow
- Stack
Hvad gør “Data movement” instruktionen?
Den flytter på dataen fra en lokation til en anden.
Eksempel –> mov
Hvilke kommandoer er der i “Data move” instruktioner?
- mov: move
- ldr: load
- str: store
Hvad gør “Arithmetic” instruktionen?
Det udfører matematiske udregner mellem to operands.
Hvilke kommandoer er der i “Arithmetic” instruktioner?
- Add
- Sub
- Mul
- Div
Hvad gør “Logical” instruktionen?
Den sammenligner to binære værdier for at få et binært tal tilbage ud fra en logical operation.
Hvilke kommandoer er der i “Logical” instruktioner?
- And
- Or
- Xor
- Not
Hvad gør “Control flow” instruktionen?
Den bestemmer om vi springer frem eller tilbage i programmet ud fra betingelser.
Hvilke kommandoer er der i “Control flow” instruktioner?
- Jmp
- Jnz
- Jz
- Call
- Cmp
Hvad gør “Stack” instruktionen?
Det er en hurtig måde at tilføje og hente data til og fra stacken.
Hvilke kommandoer er der i stack instruktioner?
- Push
- Pop
Hvad gør “push” instruktionen?
Det tilføjer en variabel til stacken og får den til at vokse for at gøre plads til mere.
Hvad gør “pop” instruktionen?
Det fjerner en variabel fra stacken og formindsker den.