Uploaded Figa x86-64

This commit is contained in:
Talebian12 2020-11-26 20:37:30 +01:00
parent b89ed2b3d0
commit e6c51522da
4 changed files with 34 additions and 30 deletions

View File

@ -1,6 +1,6 @@
# figASM # figASM
`figasm` è una semplice port in Assembly del celebre [figa](github.com/crisbal/kslf.git), celebre pacchetto per Arch Linux, una volta disponibile nella AUR ma bannato dal mantenitore @il\_muflone per comprensibili ragioni politically correct: `figasm x86\_64` è una semplice port in Assembly del celebre [figa](github.com/crisbal/kslf.git), celebre pacchetto per Arch Linux, una volta disponibile nella AUR ma bannato dal mantenitore @il\_muflone per comprensibili ragioni politically correct:
![](https://i.imgur.com/1TQXOgX.png) ![](https://i.imgur.com/1TQXOgX.png)
@ -16,13 +16,15 @@ Ma noi non lo pensavamo. A ben vedere, neanche lui stesso lo pensava:
Questa volta, invece, il profeta @il\_muflone ci vide giusto. Perché la `figa` avrebbe fatto il suo ritorno di botto. Ma questa volta in pieno stile arch: nessun lentissimo script interpretato. Tutto Assembly. Nativo. Super ottimizzato per l'unica architettura supportata da Arch Linux, ossia x86\_64. Questa volta, invece, il profeta @il\_muflone ci vide giusto. Perché la `figa` avrebbe fatto il suo ritorno di botto. Ma questa volta in pieno stile arch: nessun lentissimo script interpretato. Tutto Assembly. Nativo. Super ottimizzato per l'unica architettura supportata da Arch Linux, ossia x86\_64.
## Perché dovrei usare `figasm` anziché `figa`? Ma anche il venerando @chic\_luke si sbagliava, perché la `figasm` era scritto per x86. Questo vuol dire che non è veramente ottimizzato per x86\_64, qui sono arrivato io.
## Perché dovrei usare `figasm x86\_64` anziché `figa x86`?
Perché la matematica non è un'opinione e i numeri parlano chiaro: Perché la matematica non è un'opinione e i numeri parlano chiaro:
![](https://i.imgur.com/PX7C4pI.png) ![](https://i.imgur.com/PZQVmv1.png)
# Come faccio a compilare `figasm` da sorgente? # Come faccio a compilare `figasm x86\_64` da sorgente?
```bash ```bash
as -o figa.o figa.s as -o figa.o figa.s

BIN
figa Executable file

Binary file not shown.

BIN
figa.o Normal file

Binary file not shown.

54
figa.s
View File

@ -1,31 +1,33 @@
.section .data /* vim: set filetype=gas : */
schifo:
.ascii "Che schifo la figa.\n"
schifo_len:
.long . - schifo
meglio: .data
.ascii "Meglio Linux!\n" figa: .string "Che schifo la figa\n"
figa_len: .quad .- figa
meglio_len: linux: .string "Meglio Linux!\n"
.long . - meglio linux_len: .long .- linux
.text
.globl _start
.section .text
.global _start
_start: _start:
movl $4, %eax push %rbp
movl $1, %ebx mov %rsp, %rbp
leal schifo, %ecx
movl schifo_len, %edx mov $1, %rax
int $0x80 mov $1, %rdi
movl $4, %eax lea figa, %rsi
movl $1, %ebx mov figa_len, %rdx
leal meglio, %ecx syscall
movl meglio_len, %edx
int $0x80 mov $1, %rax
movl $1, %eax lea linux, %rsi
xorl %ebx, %ebx mov linux_len, %rdx
int $0x80 syscall
xor %rdi, %rdi
mov $60, %rax
syscall