Это своего рода чудак, но я сегодня ковырялся с ассемблером GNU (я хочу хотя бы прочитать синтаксис) и пытался заставить этот маленький надуманный пример работать. А именно, я просто хочу перейти от 0 до 100, распечатывая числа все время. Итак, через несколько минут я придумаю следующее:
# 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:
Все, что я получаю от этого, это 3, напечатанные снова и снова. Как я уже сказал, просто небольшой надуманный пример, так что не беспокойтесь об этом, это не проблема жизни или смерти.
(Форматирование немного запутано, но ничего особенного).