Forum » Programiranje » assembler
assembler
bigbada ::
bits 32 extern printf global main section .data message db "hello, world!", 10, 0 section .text main: pushad push dword message call printf add esp, 4 popad ret
Zanima me če mi kdo lahko razlozi recimo kaj v tej kodi pomeni add esp, 4 ? ter zakaj se uporablja. Kao to je kazalec na sklad? sam zakaj mora to tako biti, ter zakaj 4? Potem me zanima kaj pomen pushad, popad ter ostale vrstice? Če se kdo razume na to in bi lahko na kratko odgovoril
Pa še eno vprašanje.
LOAD #12
STORE 110
LOAD 3
SUB 110
Koliko je vrednost po izvedbi tega? Ter ce lahko kdo razlozi kako pridemo do tega
asm ::
Predvidevam, da je v tem primeru dword 32 bitov. Ker se doda na sklad message, je potrebno kazalec na sklad popravit, da bo spet kazal na prosto mesto v pomnilniku, torej za 4 pomnilniške lokacije - prištejemo 4.
pushad in popad najbrž skrbita za push/pop "umazanih" registrov in ustrezno popravljanje kazalca na začetku in koncu funkcije main
pushad in popad najbrž skrbita za push/pop "umazanih" registrov in ustrezno popravljanje kazalca na začetku in koncu funkcije main
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C] struct in int[] (strani: 1 2 )Oddelek: Programiranje | 7374 (6447) | MrBrdo |
» | [ASM] Pomoč, ne najdem napakeOddelek: Programiranje | 1101 (977) | c0dehunter |
» | asm - vnos stevilk s tipkovniceOddelek: Programiranje | 1282 (1138) | scarymovie |
» | [Assembler] scanf How-ToOddelek: Programiranje | 1650 (1577) | c0dehunter |
» | [NALOGA][NASM] problem pri povezovanju s C-jevskimi funkcijamiOddelek: Programiranje | 1383 (1241) | c00L3r |