Tut mir Leid, der Code stimmt natürlich nicht. Ich habe den richtigen gerade nicht hier und den falschen aus dem Kopf ungefähr geschrieben. Vor dem call steht natürlich noch ein push ax. So tritt der Fehler auch nicht auf, erst wenn es mehrere Parameter gibt. Ich versuche jetzt mal an den Code zu kommen.
EDIT:
Ich habe ihn gefunden:
main:
mov ax, 'H'
push ax
mov ax, 48
push ax
push ax
mov ax, 0xF
push ax
call _Test
hlt
_Test:
push ebp
mov ebp, esp
mov al, byte [ebp+20]
mov byte [0xB8000], al
mov byte [0xB8001], 0xF
mov al, byte [ebp+16]
mov byte [0xB8002], al
mov byte [0xB8003], 0xF
mov al, byte [ebp+12]
mov byte [0xB8004], al
mov byte [0xB8005], 0xF
mov al, byte [ebp+8]
mov byte [0xB8006], al
mov byte [0xB8007], 0xF
mov esp, ebp
pop ebp
ret
Es wird Folgendes ausgegeben: " Q0►"
Das letzte Zeichen wird leider nicht ganz richtig im Browser ausgegeben, im Emulator aber schon.
Wenn ich alles direkt pushe wird alles korrekt ausgeben.