Hallo,
Mein neuestes Problem, bei dem ich wirklich nicht weiter weiß...neben globalen Variablen kann ich nun auch keine Funktionen benutzen...Es sollte am C-Kernel liegen, alles andere hatte ich schon zum testen ausprobiert...ich habe den Kernel 2 mal nur von C in Assembler übersetzen lassen, 1mal mit dem Code in der Main-Funktion (klappt) einmal mit dem Code in "void PutCharA()" (klappt nicht!) wäre nett wenn jemand wüsste was da los ist...
C-Code: (der funzt. Im 2. Asm-Code wurde dann alles nach "PutCharA();" aus der Main-Funktion in die PutCharA-Funktion kopiert.)
unsigned char *VGA;
void PutCharA();
void main()
{
	VGA = (unsigned char *)0xA0000;
	PutCharA();
	
	unsigned int PositionOfTheChar = 1 * 80 * 10;
	VGA[PositionOfTheChar]		= 0x3C;	// 00 11 11 00
	VGA[PositionOfTheChar + 80]	= 0x42;	// 01 00 00 10
	VGA[PositionOfTheChar + 160]	= 0x81;	// 10 00 00 01
	VGA[PositionOfTheChar + 240]	= 0xFF;	// 11 11 11 11
	VGA[PositionOfTheChar + 320]	= 0x81;	// 10 00 00 01
	VGA[PositionOfTheChar + 400]	= 0x81;	// 10 00 00 01
	VGA[PositionOfTheChar + 480]	= 0x81;	// 10 00 00 01
	VGA[PositionOfTheChar + 560]	= 0x81;	// 10 00 00 01
};
void PutCharA()
{
};
1. Asm-Code (Wo alles in der Main-Funktion steht)
	.file	"Main.c"
	.text
.globl PutCharA
	.type	PutCharA, @function
PutCharA:
	pushl	%ebp
	movl	%esp, %ebp
	popl	%ebp
	ret
	.size	PutCharA, .-PutCharA
.globl main
	.type	main, @function
main:
	pushl	%ebp
	movl	$655360, VGA
	movl	%esp, %ebp
	call	PutCharA
	movb	$60, 656160
	movb	$66, 656240
	movb	$-127, 656320
	movb	$-1, 656400
	movb	$-127, 656480
	movb	$-127, 656560
	movb	$-127, 656640
	movb	$-127, 656720
	popl	%ebp
	ret
	.size	main, .-main
	.comm	VGA,4,4
	.section	.note.GNU-stack,"",@progbits
	.ident	"GCC: (GNU) 3.3.3"
Und so sieht das ganze aus, wenn der Code in die PutCharA-Funktion ausgelagert wurde:
	.file	"Main.c"
	.text
.globl PutCharA
	.type	PutCharA, @function
PutCharA:
	movl	VGA, %eax
	pushl	%ebp
	movl	%esp, %ebp
	movb	$60, 800(%eax)
	movl	VGA, %eax
	movb	$66, 880(%eax)
	movl	VGA, %eax
	movb	$-127, 960(%eax)
	movl	VGA, %eax
	movb	$-1, 1040(%eax)
	movl	VGA, %eax
	movb	$-127, 1120(%eax)
	movl	VGA, %eax
	movb	$-127, 1200(%eax)
	movl	VGA, %eax
	movb	$-127, 1280(%eax)
	movl	VGA, %eax
	movb	$-127, 1360(%eax)
	popl	%ebp
	ret
	.size	PutCharA, .-PutCharA
.globl main
	.type	main, @function
main:
	pushl	%ebp
	movl	$655360, VGA
	movl	%esp, %ebp
	popl	%ebp
	jmp	PutCharA
	.size	main, .-main
	.comm	VGA,4,4
	.section	.note.GNU-stack,"",@progbits
	.ident	"GCC: (GNU) 3.3.3"
gcc --freestanding -Os -fno-builtin -c  -o Main.obj Main.c
ld --oformat "binary" -o Kernel.bin Start32.obj Main.obj
Also, falls jemand gerade Zeit hat 
