вот отрывок кода (nasm): Код (Text): org 0 bits 16 extern _cstart start: call _cstart jmp $ global _set_curpos _set_curpos push bp mov bp,sp push dx push ax push bx mov dh,[bp+4] mov dl,[bp+6] mov ah,02h ; set cursor position mov bh,0 int 10h pop dx pop ax pop bx pop bp ret ну и допустим код на си: Код (Text): extern void set_curpos(char row, char col); void cstart(void) { set_curpos(5,0); } линкуем jloc'ом.. все ок.. делаю подобное на фасме: Код (Text): format coff org 0 use16 extrn _cstart start: call _cstart jmp $ public set_curpos as '_set_curpos' set_curpos: ... ... ... пробую компилить, а он орет типа call _cstart: error: invalid use of symbol. почему???
Во-первых, фасм не поддерживает OMF, так что подобное на фасме сделать нельзя. Во-вторых зачем тут org, если это не бинарник, а обдж? Надо явно указывать что за символ, хотя бы так: Код (Text): extrn '_cstart' as cstart:dword call [cstart]