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