Assembly Ausgabe mit printf?

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.

RedDevil1982 
Fragesteller
 02.05.2023, 22:06

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

0
RedDevil1982 
Fragesteller
 02.05.2023, 22:12

mymsg db '...' ,0ax und jetzt?

0
RedDevil1982 
Fragesteller
 02.05.2023, 22:23
@KarlRanseierIII

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?

0