передача аргумента за пределы регистров - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь передать второй аргумент моей команде ls, ls -a -l, но без использования регистра.

Здесь адрес аргумента -a находится в esi. Я хочу поместить -l где-нибудь в памяти, но не в регистр. Я пробовал со стеком, но lea esp, [esp-18] не помещает адрес в стек. Вместо этого он помещает значение (0x00006c2d, для -l).

push 0x0000612d ; -a 
mov esi, esp
mov dword [esp-30], 0x00006c2d ; -l
push eax
push edi ; 0000
;sub esp,4
;lea esp, [esp-18] ;  the value is loaded instead of the address
push eax
push esi ; location to -a (2nd arg of argv)
push ebx ; location of /bin/ls (1st arg of argv)
mov ecx, esp

Мне интересно, как я могу добавить аргумент, когда у меня нет регистров.

...