Скрыть
[assembler][некрофилия]Почему bootsect.S не собирается?
выполнил я значит в каталоге с сорцами ядра 0.95а make dep, потом набираю make и получаю такое:
bash make
cpp -nostdinc -Iinclude -traditional boot/ bootsect.S -o boot/ bootsect.s
as86 -0 -o boot/ bootsect.o boot/ bootsect.s
00124 002F 0FB536 0000 lgs si,( bx) ; gs :si is source
***** register used as identifier...................................^
00135 movb 4( di) ,* 18 ; patch sector count
***** comma expected.............................................^
***** register used as identifier.................................^
***** illegal indirect to indirect...................................^
***** junk after operands............................................^
00138 0040 893E 0000 mov ( bx) ,di
***** register used as identifier................................^
00140 mov 2( bx) ,es
***** register used as identifier.................................^
***** illegal indirect to indirect...................................^
***** junk after operands............................................^
***** comma expected.............................................^
00376 01A5 8B16 0000 mov dx, ( bp) ; load word into dx
***** register used as identifier....................................^
00124 002F 0FB536 0000 lgs si,( bx) ; gs :si is source
***** register used as identifier...................................^
00135 movb 4( di) ,* 18 ; patch sector count
***** register used as identifier.................................^
***** comma expected.............................................^
***** illegal indirect to indirect...................................^
***** junk after operands............................................^
00138 0040 893E 0000 mov ( bx) ,di
***** register used as identifier................................^
00140 mov 2( bx) ,es
***** comma expected.............................................^
***** illegal indirect to indirect...................................^
***** junk after operands............................................^
***** register used as identifier.................................^
00376 01A5 8B16 0000 mov dx, ( bp) ; load word into dx
***** register used as identifier....................................^
00011 errors
00000 warnings
make : *** [ boot/ bootsect] Ошибка 1
А от фрагмент кода, на который ругается:
asm lgs si , ( bx ) ; gs:si is source
mov di , dx ; es:di is destination
mov cx , #6 ; copy 12 bytes
cld
rep
seg gs
movw
mov di , dx
movb 4( di ) ,* 18 ; patch sector count
seg fs
mov ( bx ) , di
seg fs
mov 2( bx ) , es
Вопрос: как поправить код так, чтобы он компилировался и при этом выполнял те же функции? Спасибо.
Re:[assembler][некрофилия]Почему bootsect.S не собирается?
as86 использует синтаксис nasm, а тут явно что-то другое
Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0