Problem bei Textausgabe



  • Hi,
    ich habe aus den FAQ folgenden Code, um ein Zeichen auf den Bildschirm zu schreiben:

    mov ax, 0b800h
    mov es, ax
    mov ax, 0
    mov di, ax
    mov es:[di] , 23h  ; <- Fehler
    

    Es sollte ein # in die obere linke Ecke geschrieben werden, aber der Compiler (NASM) bringt: 'invalid combination of opcode and operands'

    Wie kann ich das Problem lösen?

    Danke

    M.T.



  • Mal mit anderer Schreibweise versucht? z.B. mov [es:di], 23h



  • Danke erst mal - so frisst's der Compiler, doch irgendwie funktioniert das restliche Programm mit diesem Code nicht mehr - wie setzt man denn nun ein Zeichen richtig (denn in den FAQ steht's so)?

    M.T.



  • Original erstellt von Manuel:
    (denn in den FAQ steht's so)?

    Wo? Bitte Link angeben...

    NASM sollte die Sache eigentlich so schlucken:

    mov ax,0xB800
    mov es,ax
    mov di,0x0000 ;<= in di kann auch direkt geschrieben werden,
    ;es muss kein Umweg ueber ax genommen werden wie bei es.
    mov word [es:di],0x0A23 ;besser ein Word schreiben und somit auch gleich
    ;den Farbwert eintragen (0A=>Hellgruen auf Schwarz)
    


  • Danke - so funktioniert's 🙂

    Ich hab gerade noch mal meine Surf-History durchgeschaut - der Code war aus einem Beitrag, den ich mit der Suchfunktion gefunden hatte - tschuldigung für die Unterstellungen an die FAQ 😉

    M.T.

    [ Dieser Beitrag wurde am 15.06.2003 um 10:20 Uhr von Manuel editiert. ]


Anmelden zum Antworten