Asembler wczytywanie argumentów

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

0

Jaki system?

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 :

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ń.

1 użytkowników online, w tym zalogowanych: 0, gości: 1