It is how you are building. 1000 should be 0x1000 . You want to DD kernel, not kernel.o, you will need to have the linker output kernel as a binary file and not an ELF executable. Since you aren't using a cross compiler you'll likely need something like -fno-PIC . Something like this may work:
Code:
gcc -m32 -c screen.c -o screen.o -ffreestanding -fno-PIC
nasm -f elf32 -o kernel.o kernel.asm
ld -m elf_i386 --oformat=binary -Ttext 0x1000 kernel.o screen.o -o kernel
nasm -f bin -o boot boot.asm
cat boot kernel /dev/zero | dd of=floppyA bs=512 count=2880