nasm: ASCII zeichen an eine Speicherstelle schreiben



  • Hallo,
    ich arbeite zur Zeit mit einem selbstgeschriebenen RealMode OS und möchte dort folgendes realisieren:

    Ich möchte an die Stelle 0x9000:0x0000 im Ram das ASCII Zeichen 'N' hinterlegen.
    Wenn ich dies nun versuche:

    mov 0x9000:0x0000, 'N'
    

    Dann bekomme ich von NASM die Fehlermeldung "invalid combination of opcodes and operands"

    Wie kann ich dies Problem nun umgehen? Vielen vielen Dank schonmal!



  • Der x86 adressiert immer ueber die Segmentregister. Zudem gehoeren um Speicherzugriffe eckige Klammern.



  • Habe es jetzt so probiert:

    mov ax, 0x9000
    mov bx, 0x0000
    mov es, ax
    mov [es:bx], 'N'
    

    Allerdings bekomme ich jetzt die Meldung "operation size not specified" in welche Register muss ich die operation size eintragen?

    EDIT: Hat sich erledigt. So gehts:

    mov ax, 0x9000
    mov bx, 0x0000
    mov es, ax
    mov BYTE [es:bx], 'N'
    

Anmelden zum Antworten