Texteingabe mit Bios int´s
-
Ich versuche im Realmode mithilfe der BIOS Interrupts eine Taste einzulesen und sie dann in einen string zu speichern.
Das klappt solange solange ich nur einen Buchstaben hab bei einem String gehts nicht mehr.
Was mach ich falsch?;Das ist die Funktion die das erledigen soll CmdInput: mov ah, 0 int 0x16 mov di,cmdline add di,cmdanzahl ;mov [bx],al stosb mov ax,[cmdanzahl] add ax,1 mov [cmdanzahl],ax ret ;Variablen cmdline db ' ',0 cmdanzahl dw 0
-
So wie es aussieht, ist der code fuer NASM.
Dann ist die Zeile "add di,cmdanzahl" hier ein bisschen fehl am Platze:
Variablenangaben ohne eckige Klammern geben das offset der Variable zurueck. (siehe Zeile "mov di,cmdline")Wenn Du eckige Klammern drumsetzt (z.B. add di,word [cmdanzahl]), wird der Inhalt der Variable zurueckgegeben.
BTW:
mov ax,[cmdanzahl] add ax,1 mov [cmdanzahl],ax
Scheint ein bisschen umstaendlich zu sein...
Wie waers stattdessen hiermit?inc word [cmdanzahl]