nasm: speicher holen
-
Hallo!
Ich wollte ein program schreiben, das ausgibt:
Whats your name?dann kann der user seinen namen eingeben, und dann soll geschrieben werden
Hello, [name]!aber irgendwie bekomm ich das nicht hin, mit dem einlesen der zeichen (linux) und man muss ja auch speicher alloziieren, damit der auch was zum schreiben hat .. wie geht daS?
greets,
cNc
-
Möglichkeit 1: Auf dem Stack anlegen. Sprich einfach ESP um den benötigten Platz dekrementieren und dann via ESP oder EBP den Platz ansprechen. Nicht vergessen vor Funktionsende rückgängig machen (in C werden so lokale Variablen behandelt)
Möglichkeit 2: Die C-Library fragen (sprich malloc aufrufen), nicht vergessne freizugeben.
Möglichkeit 3: Statisch Platz anlegen, die Syntax müsste grob so sein:.segment .data myplatz: times 20 db 0
Für 20 Bytes Platz im Datensegment.
-
jo, danke, wie ruft man denn C-Funks in ASM auf?
greets,
cNcp.s: kann mir wer sagen wie der sys_read bei linux aufgerufen wird? (die params meine ich .. check das nicht so)
-
cNcMasta schrieb:
jo, danke, wie ruft man denn C-Funks in ASM auf?
http://bkausbk.netfirms.com/callconv.html
Die meisten C-Funktionen sind cdecl