Voilà un petit programme pour un exo qui me semble un peu tordu.
Les questions sont tout d'abord que fait ce programme (pour moi il tourne en rond) et corriger l'erreur algorithmque.
Code:
.data
str: .zero 11
i: .long 463960
d: .long 1
j: .zero 4
.text .globl _start
_start: movl i,%ebx
L1: movl i,%eax
movl $0,%edx
movl d,%ecx
divl %ecx
push %edx
movl $10,%eax
mull %ecx
pop %edx
movl %eax,d
cmpl %edx,%ebx
jbe L1
movl $str,%ebx
movl d,%eax
movl $0,%edx
movl $10,%ecx
divl %ecx
movl %eax,d
L2: movl d,%eax
movl $0,%edx
movl $10,%ecx
divl %ecx
movl %eax,d
movl i,%eax
movl $0,%edx
movl d,%ecx
divl %ecx
movl %edx,i
movl j,%ecx
movl $0,%edx
addl $'0',%eax
movb %al,%ds

inc %ecx
movl %ecx,j
movl i,%eax
movl $0,%edx
cmpl %eax,%edx
jne L2
movl j,%eax
addl $str,%eax
movl $0,%edx
movb $0,%ds

movl $1,%eax
movl $0,%eax
int $0x80
D'avance merci pour vos réponses.
A vos compilateurs !
