Проблемы арифметики на ассемблере?
Вы не обнуляете %eax (в нём остаётся значение -1, к которому Вы прибавляете 3, вот и получается 2)P. S. printf_format должно быть "%ld\n", потому что тип переменной long, а не int.
Спасибо