» »

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


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C] struct in int[] (strani: 1 2 )

Oddelek: Programiranje
656787 (5860) MrBrdo
»

[ASM] Pomoč, ne najdem napake

Oddelek: Programiranje
51021 (897) c0dehunter
»

asm - vnos stevilk s tipkovnice

Oddelek: Programiranje
51184 (1040) scarymovie
»

[Assembler] scanf How-To

Oddelek: Programiranje
61490 (1417) c0dehunter
»

[NALOGA][NASM] problem pri povezovanju s C-jevskimi funkcijami

Oddelek: Programiranje
61307 (1165) c00L3r

Več podobnih tem