Моя программа не работает, я хочу суммировать элементы, которые находятся в стеке.
Я собрал числа в стеке, а затем хочу сложить их, восстановив их из стека, и поместил результат в регистр eax.
.code32
#######################################
.data
msgFin: .string "\n-----\n"
sizeMsg = . - msgFin
msgA: .string "addition\n"
sizemsgA = . - msgA
number: .long 0
#######################################
.bss
#######################################
.text
.global _start
_start:
andl $0, %eax
initialisePile:
push %ebp
movl %esp, %ebp
empile:
movl $1, %edx
push %edx
movl $2, %edx
push %edx
movl $3, %edx
push %edx
movl $4, %edx
push %edx
movl $5, %edx
push %edx
showAddition:
movl $msgA, %ecx
movl $4, %eax
movl $1, %ebx
movl $sizemsgA,%edx
int $0x80
additionStack:
pop %edx
addl %edx,%eax
cmpl %esp,%ebp
je exit
jmp additionStack
exit:
movl $4, %eax
movl $1, %ebx
movl $msgFin,%ecx
movl $sizeMsg,%edx
int $0x80
show result:
movl %eax,$number
movl $number,%ecx
movl $4, %eax
movl $1, %ebx
int $0x80
exit2:
movl $0, %ebx
movl $1, %eax
int $0x80
Я не знаю, почему моя программа не показывает результат суммы элементов в застрявшем.
Заранее спасибо.