Startseite > Assembler > Dynamic memory allocation

Dynamic memory allocation


Was nie in der Uni thematisch behandelt wird, ist die dynamische Speicherallokation in Assembler. Die meisten glauben, dass das ziemlich kompliziert sein müsste, vor allem weil die meisten Informatikstudenten Assembler nie verstanden haben und sich da auch nur durchmogeln. Aber in Assembler Speicher dynamisch zu allokieren ist wirklich recht simple.

Allokieren

ASM
1
23
45
67
89
1011
1213
1415
1617
1819
2021
.data
.comm mmap_, 24  .text.macro alloc length
 # null - let the kernel select the starting address  movl $0, mmap_
 # size of total range  movl \length, mmap_+4
 # read and write  movl $3, mmap_+8
  movl $34, mmap_+12  movl $-1, mmap_+16
 # ignore offset  movl $0, mmap_+20      # allocate
  movl $90, %eax  leal mmap_, %ebx
  int $0x80.endm 
GeSHi 1.0.8.8

Freigeben

ASM
1
23
45
67
.macro free address length
  # free  movl $91, %eax
  movl \address, %ebx  movl \length, %ecx
  int $0x80.endm
GeSHi 1.0.8.8
Advertisements
Kategorien:Assembler Schlagwörter:
  1. Es gibt noch keine Kommentare.
  1. No trackbacks yet.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: