C'est un peu bizarre, mais je faisais des recherches avec l'assembleur GNU aujourd'hui (je veux au moins pouvoir lire la syntaxe), et j'essayais d'obtenir ce petit exemple inventé de le mien pour travailler. A savoir je veux juste aller de 0 à 100, en imprimant des nombres tout le temps. Donc, quelques minutes plus tard, je viens avec ceci:Incrémentation de 0 à 100 en langage assembleur
# count.s: print the numbers from 0 to 100.
.text
string: .asciz "%d\n"
.globl _main
_main:
movl $0, %eax # The starting point/current value.
movl $100, %ebx # The ending point.
_loop:
# Display the current value.
pushl %eax
pushl $string
call _printf
addl $8, %esp
# Check against the ending value.
cmpl %eax, %ebx
je _end
# Increment the current value.
incl %eax
jmp _loop
_end:
Tout ce que je reçois de c'est 3 imprimé maintes et maintes fois. Comme je l'ai dit, juste un petit exemple artificiel, alors ne vous inquiétez pas trop à ce sujet, ce n'est pas un problème de vie ou de mort.
(Le formatage est un peu foiré, mais rien de majeur).
'xorl% eax,% eax' est totalement équivalent à' MOVL $ 0,% eax', et prend 3 octets moins. Je dis juste. :) –