[Asembler] Odczyt danych ze stosu
Ostatnio zmodyfikowano 2013-02-09 18:46
Mrovqa |
» 2013-02-06 21:24:29 Otóż troche sobie słucham kursu Gynvaela o asemblerze (na YT). |
Autor na 99.9% pisze na NASMie ;) @down wiesz, o TASMie też trochę było (w ReverseCrafcie) - mówił też, że przez polaka stworzony :P |
|
m4tx |
» 2013-02-06 21:26:29 Tyle, że on pisze właśnie w tasmie... |
Nie wydaje mi się... Gynvael Coldwind poleca i operuje na nasmie, więc... |
|
RazzorFlame Temat założony przez niniejszego użytkownika |
» 2013-02-06 21:32:48 @DejaVu, piszę w NASMie. @Pekfos - To ten sam znak: "$" i 0 - przynajmniej to wynika z kursu Gynwaela |
|
pekfos |
» 2013-02-06 21:37:09 @Pekfos - To ten sam znak: "$" i 0 - przynajmniej to wynika z kursu Gynwaela |
To są 2 różne znaki. |
|
RazzorFlame Temat założony przez niniejszego użytkownika |
» 2013-02-07 07:17:19 Zrobiłem to samo z znakiem "$" i nadal nie działa. Jakbyście mogli to sprawdźcie u siebie czy też wyświetlają się śmieci. |
|
RazzorFlame Temat założony przez niniejszego użytkownika |
» 2013-02-08 10:22:55 Pomoże ktoś? |
|
pekfos |
» 2013-02-08 15:01:23 Jakbyście mogli to sprawdźcie u siebie czy też wyświetlają się śmieci. |
Jak mamy sprawdzić kod, którego nie podałeś? //Edit: Dobra, zanim doczekam się aktualnego kodu popraw ten rażący błąd: mov ax, 4Ch
i sprawdź mov dx, [esp + 2]
bo chyba w trybie MS-DOS / na emulatorze DOSa jest stos z wartościami 16b. |
|
RazzorFlame Temat założony przez niniejszego użytkownika |
» 2013-02-09 10:17:07 Emm pekfos kod jest taki sam jak podałem na początku, tylko pozmieniałem wtedy ten adres tekstu na stosie (esp). W pierwszym poście masz kod :) EDIT: mov ax, 4C00h INT 21 - DOS 2+ - "EXIT" - TERMINATE WITH RETURN CODE AH = 4Ch AL = return code Return: never returns |
Hmm? Ah = 4Ch tak jak ja pisze :P O fu** zdalem sobie sprawe że tam mamy AX, czyżby zapis "mov ax, 4C00h" oznaczał że młodszy bajt idzie do rejestru AL a starszy do AH? A właśnie zaraz sprawdzę czy działa to co podałeś - [esp + 2] EDIT x2 Pekfos ile czasu uczyłeś się asemblera, BO DZIAŁA. Hmm to znaczy że adres pod dosem jest 16bitowy reszta 32 bitowa czy też 16? A gdybym na początku kodu dodał [bits 32] EDIT x3 Czy pytanie z edita nr 2 ma jakiś związek jaki rejestr dodaje na stos czyli np. "push eax" albo "push ax" jest równoważne? Ale nie chodzi mi czy mogą pomieścić tą samą ilość danych bo wiadomo że nie, ale czy zajmują tyle samo na stosie (np do rejestru "nie-32bitowego" dodawane są zera z przodu). |
|
1 « 2 » 3 |