So...
ich habe mal etwas weiter experimentiert und eine Funktion zustande gebracht, die den Bildschirm löscht. Diese funktioniert auch, da ich aber nicht so gut in Assembler bin, wollte ich einfach mal fragen, was überflüssig sein könnte, oder was ihr anders gemacht hättet.
 
Hier der Code:
video_clear_screen:
	push ebp
	mov ebp, esp
	
	; Register sichern
	push edi
	push ebx
	push eax
	
	; Adresse aus Variable holen (0xB8000)
	mov edi, [video_address]
	; Prüfwert berechnen
	mov eax, 25
	mov edx, 80
	mul edx
	mov FUNCTION_LOCALVAR_1, eax
	
	mov ebx, 0
	.loop_cls:
		; Leerzeichen ausgeben, mit schwarzem 
		; hintergrund und weißer schrift
		mov al, 0x20	; blank
		stosb
		mov al, 0x0f	; Black background, white text
		stosb
		
		; Schleifen-Variable um 1 erhöhen
		inc ebx
		; Wurde das Ende erreicht?
		cmp ebx, FUNCTION_LOCALVAR_1
		; Nein? -> Wiederholen :D
		jne .loop_cls
	
	; Register wiederherstellen
	pop eax
	pop ebx
	pop edi
	
	mov esp, ebp
	pop ebp
	ret
 
 
Bei "FUNCTION_LOCALVAR_1" handelt es sich um ein Makro, das wie folgt aussieht: "%define FUNCTION_LOCALVAR_1 [ebp-4]".
Wenn ich nun eine solche Variable auf dem Stack benutze, muss ich die dann auch vorher reservieren und später wieder freigeben, oder kann ich das machen, wie es mir beliebt?