Στο viewtopic.php?p=13606#p13606 υπάρχει μια δημοσίευση για το πως γράφουμε σε Assembly σε Ubuntu.
Εδώ γράφω το ίδιο, σε μορφή οδηγού.
Το πρώτο βήμα είναι να εγκαταστήσουμε τον Assembler, που για Linux προτείνεται ο Nasm,
- Κώδικας: Επιλογή όλων
sudo apt-get install nasm
Εδώ είναι ένα μικρό πρόγραμμα σε Assembly όπου τυπώνει ένα μήνυμα. Γράψτε το σε αρχείο με όνομα helloworld.asm.
- Κώδικας: Επιλογή όλων
global _start
section .data
hello db "Γεια σου Ubuntu-gr!", 10
length equ $-hello
section .text
_start:
mov eax, 4 ; write to file
mov ebx, 1 ; STDOUT handle
mov ecx, hello ; our message
mov edx, length ; size of message
int 80h ; execute the syscall
xor ebx, ebx ; send 0 as 'exit code'
mov eax, 1 ; terminate process
int 80h ; execute the syscall
Αν έχουμε Ubuntu 64-bit, τότε το μεταγλωττίζουμε με
- Κώδικας: Επιλογή όλων
nasm -f elf64 helloworld.asm
ενώ αν έχουμε Ubuntu 32-bit, τότε μεταγλωττίζουμε με
- Κώδικας: Επιλογή όλων
nasm -f elf helloworld.asm
Τέλος, κάνουμε τη σύνδεση (linking) με την εντολή
- Κώδικας: Επιλογή όλων
ld -o helloworld helloworld.o
και το τρέχουμε με
- Κώδικας: Επιλογή όλων
$ ./helloworld
Γεια σου Ubuntu-gr!