Asembler wczytywanie argumentów

Asembler wczytywanie argumentów
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,

jak dobrac sie do argumentow podawanych przy wywolaniu programu?

Np, mam program prog1.exe i w CMD wywoluje go prog1 argument1 argument2

Jak wewnatrz programu dobrac sie do tych argumentow? Szukalem tego w przerwaniach DOSa 21h ale nie znalazlem, moze przeoczylem.

Bylbym wdzieczny za pomoc

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Jaki system?

  • Rejestracja: dni
  • Ostatnio: dni
0

Nie wiem jak to jest na DOSie, ale w linuxie adres "char **argv" masz na stosie.
Jest to odłożone w kolejnosci:

  1. char **argv,
  2. int argc,
  3. recik do libca.

Czyli w przypadku linux'a :

Kopiuj
pop eax   ;recik libca
pop eax  ; int argc
pop eax ; char **argv
mov edx,[eax+4]  ; najpierw jest nazwa programu, a nas interesuje 1 argument argv[1] czyli eax+4

 

W edx masz adres na string z argumentem z wiersza poleceń.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.