introducao-a-assembly

Repositório dos arquivos usados na apresentação "Introdução a Assembly" da CriptoGoma de 2020 🖥️

Commit
dd0a4a26f84362d24369ce4ef00ee1ef56b7bba3
Parent
9c0d5dad065c91ca16b38081e62d925d99dea99a
Author
Pablo Emilio Escobar Gaviria <pablo-escobar@riseup.net>
Date

Traduzidos mais nomes de arquivos para português

Diffstat

8 files changed, 36 insertions, 34 deletions

Status File Name N° Changes Insertions Deletions
Deleted exemplos/engenharia-reversa/convert.py 11 0 11
Added exemplos/engenharia-reversa/converte.py 13 13 0
Renamed exemplos/engenharia-reversa/example.bin -> exemplos/engenharia-reversa/exemplo.bin 0 0 0
Renamed exemplos/engenharia-reversa/example.c -> exemplos/engenharia-reversa/exemplo.c 0 0 0
Deleted exemplos/instrucoes-basicas/example.asm 21 0 21
Added exemplos/instrucoes-basicas/exemplo.asm 21 21 0
Renamed exemplos/modularizacao/example.asm -> exemplos/modularizacao/exemplo.asm 0 0 0
Modified exemplos/modularizacao/exemplo.py 4 2 2
diff --git a/exemplos/engenharia-reversa/convert.py b/exemplos/engenharia-reversa/convert.py
@@ -1,11 +0,0 @@
-#!python3
-
-START = 0x5fa # Start of the factorial function according to gdb
-END   = 0x625 # End of the factorial function according to gdb
-
-with open("exemplo.bin", "rb"), as machine_code:
-    bs = machine_code.read()[START:END]
-
-    with open("bin.txt", "w", encoding="utf8") as output:
-        output.write(" ".join([f"{byte:b}".zfill(8) for byte in bs]))
-
diff --git a/exemplos/engenharia-reversa/converte.py b/exemplos/engenharia-reversa/converte.py
@@ -0,0 +1,13 @@
+#!python3
+# Extrai o código de máquina (compilado pelo gcc) da função fatorial para um
+# arquivo de texto
+
+START = 0x5fa # Começo da função fatorial segundo o gdb
+END   = 0x625 # Fim    da função fatorial segundo o gdb
+
+with open("exemplo.bin", "rb"), as machine_code:
+    bs = machine_code.read()[START:END]
+
+    with open("bin.txt", "w", encoding="utf8") as output:
+        output.write(" ".join([f"{byte:b}".zfill(8) for byte in bs]))
+
diff --git a/exemplos/engenharia-reversa/example.bin b/exemplos/engenharia-reversa/exemplo.bin
Binary files differ.
diff --git a/exemplos/engenharia-reversa/example.c b/exemplos/engenharia-reversa/exemplo.c
diff --git a/exemplos/instrucoes-basicas/example.asm b/exemplos/instrucoes-basicas/example.asm
@@ -1,20 +0,0 @@
-mov dst, val ; dst = val
-mov rax, 42 ; rax = 42
-
-add dst, val ; dst += val
-add rbx, rcx ; rbx += rcx
-
-sub dst, val ; dst -= val
-sub rbx, rcx ; rbx -= rcx
-
-mul val ; rax *= val
-mul rbx ; rax *= rbx
-
-div val ; rdx = rax % val, rax //= val
-div rcx ; rdx = rax % rcx, rax //= rcx
-
-push val ; stack += [val]
-push rax ; stack += [rax]
-
-pop dst ; dst = stack[-1], stack = stack[:-1]
-pop rax ; rax = stack[-1], stack = stack[:-1]-
\ No newline at end of file
diff --git a/exemplos/instrucoes-basicas/exemplo.asm b/exemplos/instrucoes-basicas/exemplo.asm
@@ -0,0 +1,21 @@
+mov dst, val ; dst = val
+mov rax, 42  ; rax = 42
+
+add dst, val ; dst += val
+add rbx, rcx ; rbx += rcx
+
+sub dst, val ; dst -= val
+sub rbx, rcx ; rbx -= rcx
+
+mul val ; rax *= val
+mul rbx ; rax *= rbx
+
+div val ; rdx = rax % val, rax //= val
+div rcx ; rdx = rax % rcx, rax //= rcx
+
+push val ; stack += [val]
+push rax ; stack += [rax]
+
+pop dst ; dst = stack[-1], stack = stack[:-1]
+pop rax ; rax = stack[-1], stack = stack[:-1]
+
diff --git a/exemplos/modularizacao/example.asm b/exemplos/modularizacao/exemplo.asm
diff --git a/exemplos/modularizacao/exemplo.py b/exemplos/modularizacao/exemplo.py
@@ -2,4 +2,5 @@ rax = rbx = rcx = None
 rax = f(rbx) + f(rcx)
 
 def f(n):
-    ...-
\ No newline at end of file
+    ...
+