Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
#include <stdio.h>
int printString(char* szString);
short i=0;
short finished=0;
int main() {
printString("Ha");
while(read() != 'r');
return 0;
}
int printString(char* szString) {
int i=0;
int finished=0;
while (finished != 1)
{
if (szString[i] == '\0') {
finished=1;
}
else {
printf("%c", szString[i]);
i=i+1;
}
}
return 0;
}
Evtl. solltest du einfach mal den gesicherten Stackpointer wieder zurückschreiben?Genauer gesagt ist das Problem mit print, dass ich es nur einmal aufrufen kann und danach alles abstürzt. Ich vermute, dass das am Stack liegt.
Nein, das kann nicht sein. Der String ist die ganze Programmlaufzeit über verfügbar.Noch etwas. Weiss gerade nicht mehr wie das verarbeitet wird. Du übergibst ja "Ha" und hast danach nur noch ein Pointer zu diesem String, welcher temporär abgespeichert wird.
Kann es sein dass dieses "Ha" nicht mehr am existiert (an diesem Speicherplatz) nachdem du print() aufgerufen hast?
Evtl. solltest du einfach mal den gesicherten Stackpointer wieder zurückschreiben?
[BITS 16]
global print
print:
push bp
mov bp, sp
mov al, [bp+4]
mov ah, 0x0E
int 0x10
mov sp, bp
pop bp
ret