Bildschirmausgabe ohne INTS



  • Hallo!
    ICh will ohne INTS eine Bildschirmausgabe tätigen...der Video Speicher liegt ja bei B8000, warum gibt mir diese Funktion keinen Text aus? Das ist der Kernel, welcher im Segment 0x9000 steht, da es von meinem Bootsektor dorthin geladen wurde...

    text db 'Hallo',13,10,0

    mov ax, 0x9000
    mov ds, ax
    mov si, text
    mov ax, 0xB800
    mov es, ax
    mov di, 0
    mov cx, 5
    rep movsb

    Wäre nett wenn mir wer helfen könnte

    Kevin



  • Ich kann nur spontan sagen, dass zu einem Buchstaben immer Farbwert und ASCII Code gehören. Ich weiß aber nicht in welcher Reihenfolge. Wird denn überhaupt irgendwas ausgegeben?



  • es kommt erst das zeichen und dann der farbcode. was deinen code angeht, wird es wieder das gleiche problem mit deinem assembler sein, wie du es schon bei deinem "OS-Kernel" hattest. Kann aber auch sein, dass es am falschen speichermodell liegt. um noch mal auf das problem mit den farbcodes zu kommen. In deinem Text-String musst du dann nach jedem zeichen einen farbcode einfügen. um z.b. den hintergrund rot zu machen und die schriftfarbe weiß, kannst du den string folgendermaßen "aufbauen"

    text db 'HOaOlOlOoO'

    cu todo



  • ich weiß gerade nicht auf welches alte Problem sich todo bezieht, aber ich würde dir empfehlen, den Text an das Ende zu packen, es könnte nähmlich sein, dass du durch deinen jump in den Text springt, und dann kannst du mit einem kurzen Blick in die ASCII-Tabelle und in die OPCode-Referenz erkennen, was deine CPU ausführt. 😃

    mfg
    -bg-


Anmelden zum Antworten