Я пытаюсь передать второй аргумент моей команде 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
Мне интересно, как я могу добавить аргумент, когда у меня нет регистров.