Danke das funktioniert jetzt.
Jedoch habe ich gleich ein weiteres Problem, nun will ich einen String einlesen und vergleichen, ich erhalte jedoch immer die Ausgabe "Ungleich", hier der Code:
mov ax, 0x1000
mov ds, ax
mov es, ax
start:
mov si, msg
call putstr
;mov si, msg1
;call putstr
;call getkey
;mov bl, 'r'
;cmp al, bl
;je gleich
;jmp ungleich
call read_str
mov dl, check
cmp dl, al
je gleich
jne ungleich
;################
msg db "Welcome to an OS Kernel",13,10,0
msg1 db "Gib etwas ein: ",13,10,0
msg2 db "Gleich",13,10,0
msg3 db "Ungleich",13,10,0
check db "Hallo",13,10,0
gleich:
mov si, msg2
call putstr
jmp $
ungleich:
mov si, msg3
call putstr
jmp $
putstr:
lodsb
or al, al
jz short putstrend
mov ah, 0x0E
mov bx, 0x0007
int 0x10
jmp putstr
putstrend:
retn
return:
ret
read_str:
mov ah,0
int 16h
cmp al,13
JE return
mov ah,0eh
int 10h
mov [bx],al
inc bx
jmp read_str
getkey:
mov ah, 0
int 0x16
mov ah, 0x0e
int 0x10
retn
times 512-($-$$) db 0