Assembly Ausgabe mit printf?
Ich pushe hier auf den Stack in der main: nur die 101 und den String mymsg
Warum wird unten in der Konsole, wenn ich das Programm ausführe, auch der
zweite String s mitausgegeben?
1 Antwort
Weil printf einen C-String als formatstring erwartet. C-Strings zeichnen sich dadurch aus, daß sie mit \0 terminiert werden.
Daß Du Dir hier keinen Segfault fabrizierst, ist eher pures Glück, weil .data wohl mit 0en gestopft wurde.
D. h. ich muss hinten bei meinem mymsg Variablen die einen String erhält noch was dranhängen? Wie hänge ich da ne \0 dran?
Ich bin Anfänger im Programmieren in Assembly
Funktioniert so, Danke!
Der zweite String s in section data wird jetzt nicht mehr ausgeführt.
"Weil printf einen C-String als formatstring erwartet. C-Strings zeichnen sich dadurch aus, daß sie mit \0 terminiert werden."
D. h. das Programm, wenn ich hier jetzt noch weitere Variablen hätte in section data stehen, würde alle nacheinander ausführen?
mymsg db '...' ,0ax und jetzt?