2011-02-07 5 views
0

Bonjour J'ai téléchargé FASM pour exécuter le code d'assemblage.Comment exécuter le code d'assemblage dans FASM

J'ai besoin d'écrire un petit programme comme celui-ci

Sum: 
push %ebp 
movl %esp, %ebp 
movl 8(%ebp), %ecx 
movl 12(%ebp), %edx 
xorl %eax, %eax 
testl %edx, %edx 
je .L34 

.L35: 
addl (%ecx), %eax 
addl $4, %ecx 
decl %edx 
jnz .L35 

.L34: 
movl %ebp, %esp 
popl %ebp 
ret 

Le problème est que je ne suis pas sûr de savoir comment l'exécuter dans FASM, est-ce que je dois faire quelque chose quelque part un inclure ou quelque chose? mon pc est un 64bit et aussi quand je compile quelque chose, il me donne une erreur, mais si j'importer un des exemples, il fonctionne très bien., ..

Merci pour votre aide

Cordialement

+0

Quelle est l'erreur? – user470379

+1

"Quand je compile quelque chose, cela me donne une erreur" Je pense que le message d'erreur que vous obtenez est probablement assez utile pour trouver votre problème. Vous devriez l'inclure dans votre question. – David

+0

Je devais le changer pour que FASM puisse le lire, maintenant il compile – earm

Répondre

2

fasm ne supporte pas la syntaxe AT & T. Peut-être qu'avec des macros compliquées il serait possible d'ajouter un tel support, mais aucun des includes fournis par paquet ne fournira cette fonctionnalité.

Vous aurez besoin d'ajouter du code supplémentaire et spécifier un format, s'il vous plaît se référer au manuel, au-dessous je ne traduis votre code:

Sum: 
push ebp 
mov ebp, esp 
mov ecx, [ebp + 8] 
mov edx, [ebp + 12] 
xor eax, eax 
test edx, edx 
je .L34 

.L35: 
add eax, [ecx] 
add ecx, 4 
dec edx 
jnz .L35 

.L34: 
mov esp, ebp 
pop ebp 
ret 
+0

Merci, Laissez-moi vous poser une question, FASM peut-il afficher une sortie? – earm

+0

@earm: Peut-être en effectuant un 'syscall'? – Jack