Release 0.1
This commit is contained in:
commit
590932ca3b
3 changed files with 93 additions and 0 deletions
38
docs/cheatsheets/compilacio-assemblador.md
Normal file
38
docs/cheatsheets/compilacio-assemblador.md
Normal file
|
@ -0,0 +1,38 @@
|
|||
# Compilació Assemblador
|
||||
|
||||
## Assemblatge codi font
|
||||
|
||||
Tenim un fitxer font `source.asm` i obtenim el fitxer objecte `source.o`.
|
||||
|
||||
```bash
|
||||
yasm -f elf64 -g dwarf2 "source.asm"
|
||||
```
|
||||
|
||||
!!! output
|
||||
|
||||
Codi objecte de l'assemblador `source.o`.
|
||||
|
||||
## Generar executable d'assemblador
|
||||
|
||||
Compilem el fitxer `source.o` i obtenim l'executable `output`.
|
||||
|
||||
```bash
|
||||
gcc --no-pie -o "output" "source.o"
|
||||
```
|
||||
|
||||
!!! output
|
||||
|
||||
Fitxer executable `output`.
|
||||
|
||||
## Compilar codi font en C i Assemblador
|
||||
|
||||
Primer generem `source.o` i després el compilem amb `source.c` i obtenim l'executable `output`.
|
||||
|
||||
```bash
|
||||
yasm -f elf64 -g dwarf2 "source.asm"
|
||||
gcc --no-pie -o "output" -g "source.o" "source.c"
|
||||
```
|
||||
|
||||
!!! info
|
||||
|
||||
Podem afegir tants fitxers `.o` i `.c` a compilar com necessitem per a generar l'executable del nostre programa.
|
52
docs/cheatsheets/depuracio-amb-kdbg.md
Normal file
52
docs/cheatsheets/depuracio-amb-kdbg.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
# Depuració amb Kdbg
|
||||
|
||||
## Depurar programa
|
||||
|
||||
```bash
|
||||
kdbg ./executable
|
||||
```
|
||||
|
||||
## Valors de variables i registres
|
||||
|
||||
Podem veure el contingut de les variables, adreces de memòria i registres afegint _watches_ durant l'execució pas a pas d'un programa.
|
||||
|
||||
### Contingut d'una variable
|
||||
|
||||
`(mida) nom_variable`
|
||||
|
||||
!!! example "Exemple"
|
||||
|
||||
`(char)`, `(char[8])`, `(short[4])`, `(int[2])`, `(long)`
|
||||
|
||||
### Adreça d'una variable (i contingut)
|
||||
|
||||
`&nom_variable`
|
||||
|
||||
### Contingut d'un registre de 64 bits:
|
||||
|
||||
`$nom_registre`
|
||||
|
||||
Per a veure només una part dels registres r8-r15 cal utilitzar un sufix segons el què volguem recuperar:
|
||||
|
||||
- `l`: 1 byte menys significatiu
|
||||
- `w` (word): 2 bytes menys significatius
|
||||
- `d` (double) 4 bytes menys significatius
|
||||
|
||||
Per als registres `rax`, `rbx`, `rcx` i `rdx` podem utilitzar:
|
||||
|
||||
- `al`, `bl`, `cl`, `dl`, : primer byte menys significatiu
|
||||
- `ah`, `bh`, `ch`, `dh`, : segon byte menys significatiu
|
||||
|
||||
Per als registres `rsi`, `rdi` i `rbp` podem utilitzar:
|
||||
|
||||
- `sil`, `dil`, `bpl`, : primer byte menys significatiu
|
||||
|
||||
!!! example "Exemple"
|
||||
|
||||
- `$al` primer byte menys significatiu de `rax`
|
||||
- `$ah` segon byte menys significatiu de `rax`
|
||||
- `$ax` valor dels 2 bytes menys significatius de `rax`
|
||||
- `$eax` valor dels 4 byte menys significatiu de `rax`
|
||||
- `$rax` valor del `rax` sencer (8 bytes)
|
||||
- `$r8l` 1 byte menys significatiu de `r8`
|
||||
- `$r8d` 4 bytes menys significatius de `r8`
|
|
@ -40,3 +40,6 @@ markdown_extensions:
|
|||
|
||||
nav:
|
||||
- Inici: index.md
|
||||
- Cheatsheets:
|
||||
- Compilació Assemblador: cheatsheets/compilacio-assemblador.md
|
||||
- Depuració amb Kdbg: cheatsheets/depuracio-amb-kdbg.md
|
||||
|
|
Loading…
Reference in a new issue