Bonjour
J’ai un code assemleur le plus simple sur la planète :
.text
.globl _start
_start:
movl $1,%eax
movl $0,%ebx
int $0x80
je veux avoir une executable ELF-32
premièrement j’ai fait
as a.s -o a.o --32
à fin de créer un objet 32 bits, en suite j’ai utilise ld pour crée une l’exécutable avec cette commande
ld a.o -o a.out -m elf_i386
et ça marche
user@debian:~/asm$ readelf -a a.out
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: Intel 80386
Version: 0x1
Entry point address: 0x8048054
Start of program headers: 52 (bytes into file)
Start of section headers: 132 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 1
Size of section headers: 40 (bytes)
Number of section headers: 5
Section header string table index: 2
pour le “as”, j’ai utilisé “man as”
et pour “ld”, “ld --help”, j’ai trouvé :
Je veux comprendre le différence entre emulations et targets
merci, d’avance