Ciao, spero possiate aiutarmi con il mio problema.
Volevo provare a stampare una stringa da un programma che gira senza sistema operativo.
codice:
__asm__(".code16;");
__asm__("jmpl $0x0000, $main;");

void printchar(const char var){
    __asm__ __volatile__ ("int $0x10" : : "a"(0x0e00 | var), "b"(0x0007));
}
void print(char* stringa){
    char* var=stringa;
    while(*var != '\0'){
        printchar(*var);
        ++var;
    }
}
void main() {
    print("ciao");
}
il problema è che stampa solo una "S" se uso print(), mentre se provo a stamare un singolo carattere funziona perfettamente.
Spero possiate aiutarmi, grazie in anticipo.
PS: Il compilatore è GCC sotto ubuntu