Problemy z dostępem do argumentów wiersza poleceń w systemie Linux z x86 asm

Mam podstawowy program asm, który sprawdza, czy łańcuch jest cyfrą. Dodawałem kod, aby czytać z argumentów wiersza poleceń.

jeśli to, co przeczytałem ma rację, powinno to uzyskać ilość argumentów przekazanych do programu, które powinny być przechowywane w 0 (% ebp). Co ja robię źle?

Tożsamość kodu można znaleźć tutaj:http://pastebin.com/kGV2Mxx4 Problemem są pierwsze 3-5 linii _start.

na Patrząc na wyjście lscpu, mam procesor i868. Mimo to mówi, że może działać w trybie 32-bitowym i 64-bitowym. Używam 32-bitowego linuxa (Arch linux x86)

Naprawiłem problem. Zrobiłem 2 pop, jeden by ominąć nazwę programów, drugi, aby uzyskać pierwszy argument. zaktualizowany kod można znaleźć tutaj:http://pastebin.com/xewyeHYf

Czy ktoś może mi powiedzieć, dlaczego nie mogłem po prostu wykonać następujących czynności:

pushl 8(%ebp)

lub

movl 8(%ebp), %eax

questionAnswers(3)

yourAnswerToTheQuestion