make[1]: Entering directory `/hdb3/usr/src/linux-2.3.21/arch/i386/boot'
gcc -D__KERNEL__ -I/hdb3/usr/src/linux-2.3.21/include -E -D__BIG_KERNEL__ -traditional -DSVGA_MODE=NORMAL_VGA bootsect.S -o bbootsect.s
as -o bbootsect.o bbootsect.s
bbootsect.s: Assembler messages:
bbootsect.s:586: Error: base/index register must be 32 bit register
bbootsect.s:594: Error: base/index register must be 32 bit register
bbootsect.s:595: Error: base/index register must be 32 bit register
bbootsect.s:596: Error: base/index register must be 32 bit register
bbootsect.s:852: Error: base/index register must be 32 bit register
make[1]: *** [bbootsect.o] Error 1
#gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux/2.7.2.3/specs
gcc version 2.7.2.3
#as -v
GNU assembler version 2.9.1 (i486-linux), using BFD version 2.9.1.0.19
bbootsect.s
580 #Segments are as follows: ds = es = ss = cs - INITSEG, fs = 0,
581 #and gs is unused.
582
583 movw %cx, %fs # set fs to 0
584 movw $0x78, %bx # fs:bx is parameter table address
585 pushw %ds
586 ldsw %fs:(%bx), %si # ds:si is source
587 movb $3, %cl # copy 12 bytes
588 cld
589 pushw %di # di = 0x4000-12.
590 rep
591 movsl
592 popw %di
593 popw %ds
594 movb $36, 0x4(%di) # patch sector count
595 movw %di, %fs:(%bx)
596 movw %es, %fs:2(%bx)
597
847 #print_hex is for debugging purposes, and prints the word
848 #pointed to by ss:bp in hexadecimal.
849
850 print_hex:
851 movw $4, %cx # 4 hex digits
852 movw (%bp), %dx # load word into dx
853 print_digit:
854 rolw $4, %dx # rotate to use low 4 bits
855 movw $0xe0f, %ax # ah = request
856 andb %dl, %al # al = mask for nybble
857 addb $0x90, %al # convert al to ascii hex
858 daa # in only four instructions!
859 adc $0x40, %al
860 daa
861 int $0x10
862 loop print_digit
863 ret
864
-- Pete Clements clem@clem.digital.net- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/