Wie man Speicher unter Verwendung von Assembly und Systemaufrufen unter Linux dynamisch zuweist
Ich bin auf der Suche nach ein paar gute code-Beispiele für dynamische Speicherzuordnung mit Assembler unter Linux und mit system fordert, nicht malloc und Freunde.
Was sind einige der einfachsten, aber effektivsten Möglichkeiten, dies zu tun?
Auf Intel-386+ Computer.
Kommentar zu dem Problem
programmedlessons.org/AssemblyTutorial/Chapter-33/ass33_1.html werfen Sie einen Blick hier hat sich deine Frage in der überschrift, es sieht aus wie es gemacht wird, wie eine Klasse. helfen könnte.
InformationsquelleAutor der Frage mudge | 2010-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
brk(2)
. Und werfen Sie einen Blick auf ELF.InformationsquelleAutor der Antwort Nikolai Fetissov
Unter Linux
mmap2
ist eine vernünftige system-Aufruf für diese auf einem niedrigen Niveau. Es dauert 6 Argumente, also IA32-Sie können es nennen, mit:(Siehe entsprechenden kernel-source für details über die parameter passing)
Baute ich das mit NASM und überprüft, es funktionierte mit
strace
, was produziert:InformationsquelleAutor der Antwort Flexo
Alternative zu
brk()
ist die Verwendung dermmap()
system call, mitMAP_ANONYMOUS | MAP_PRIVATE
.InformationsquelleAutor der Antwort caf
Verwenden Sie die brk-Systemaufruf ändern Sie das Ende Ihrer Daten-segment.
Werfen Sie einen Blick hier: http://www.linuxjournal.com/article/6390 zu verstehen, was du tust.
InformationsquelleAutor der Antwort WhirlWind