2
« am: 19. April 2004, 15:02 »
Hi, Ich habe ein kleines problem:
Bei dieser Funktion ,welche eine Wartet bis eine Taste gedrückt wird, schließt sich Bochs immer!
;Wartet bis eine Taste gedrückt wurde
WaitKey:
mov ah,0
int 016h
;Problem !!!
;Beide Funktion an sich funktionieren eigentlich einwandfrei ,blos
;Irgendwie beendet sich Bochs wegen den 2 cmp's
;Wenn ich eine der Beiden cmp auskommentiere funktioniert alles wieder
cmp al,Key_ESC ;Bei Escape soll der PC rebootet werden
je WaitKey_d
cmp al,Key_ENT ;Bei Enter soll die Zeile gewechselt werde
je NewLine
mov ah,0x0E
mov bl,7
mov bh,0
int 0x10
jmp WaitKey
NewLine:
mov ah,0x0E
mov al,13
int 0x10
mov al,10
int 0x10
jmp WaitKey
WaitKey_d
ret
P.S: Noch ne kleine Frage:
Hier die PrintString-funktion aus der ersten LowLevel-ausgabe:
msg_Restart db "Druecken die ESC-Taste um neu zu starten",13,10,0
...
mov si,msg_Hello ;Es wird ein String angezeigt
call WriteString ;schreiben gibt den String auf den Bildschirm aus
...
;Gibt einen String aus
;1.Parameter- Der auszugebene String als Variable
WriteString:
lodsb
or al,al
jz short WriteString_d
mov ah,0x0E
mov bl,7
mov bh,0
int 0x10
jmp WriteString
WriteString_d:
retn
Wieso wird der String nach SI geschrieben und nicht nach AL ....0x0E erwartet doch seine parameter in AL ?!
thx, Nic!