Zuletzt bearbeitet von einem Moderator: 19. März 2012 #4 Hi print gibt also eine einzelnen char (keinen Pointer oder so) aus? Dann müsste das funktionieren. Geht zwar einfacher, aber sollte so auch passen. (strcmp ist zum Vergleichen von zwei kompletten Strings. Jeden char einzeln mit = so wie hier passt schon. ) Prüf mal, was als szString übergeben wird. Ob das überhaupt eine \0 hat. #5 Print ist eine Assemblerfunktion, die das einzele Char ausgibt. Es muss an dem 'i' liegen, weil das nicht inkrementiert wird. Hm. Ich weiß nicht, wie ich überprüfen soll, was ankommt. Ich übergebe printString("Ha"); Aber C hängt doch automatisch ein Nullzeichen an, oder? Char vergleichen c series. #6 Gib am besten einmal den ganzen Code an. Ja, C hängt automatisch das Nullzeichen an. Lg #7 Code: [BITS 16] global print print: push bp mov bp, sp mov al, [bp+4] mov ah, 0x0E int 0x10 pop bp ret Und die C Datei extern void print(); extern void restart(); extern char read(); int printString(char* szString); short i=0; short finished=0; int main() { printString("Ha"); while(read()!
B. noch, wenn man 257 Parameter hat? Char vergleichen | tutorials.de. *g* Soweit ich weiß ist argc die Anzahl der Parameter, komme aber damit irgendwie ned so richtig zurecht ^^" Die maximale Anzahl der comandozeileparameter ist festgelegt aber IMHO OS-abhängig. Argc (argumentcount) ist wie schon gesagt wurde die anzahl der parameter die übergeben wurde. Wenn also keine parameter angegeben werden ist argc==1, da argv[0] immer der programmname sein sollte. Du hast also immer argc-1 "echte" parameter. Um auf die ("echten")parameter zuzugreifen verwendest du einen integer oder auch ne constante n mit 0 < n <= argc als index in das argv-array; argv[1]; //erster parameter argv[254]; //254ster parameter sofar