Hallo,
ich wollt gestern meine 'putstr-Funktion' in eine seperate Datei (als externes Unterprogramm) schreiben und dann anderen Dateien freigeben:
Das externe Unterprogramm PROC.ASM:
global putstr
putstr:
lodsb
or al,al
jz putstr_end
mov ah,0x0E
mov bx,0x0007
int 0x10
jmp putstr
putstr_end:
retn
Das Hauptprogramm TK.ASM :
BITS 16 ;Set code generation to 16 bit mode
extern putstr
jmp start
msg_succ db 'successful',13,10,0
msg_welc db 'Welcome to RM-OS',13,10,0
start:
mov ax,0x0800
mov ds,ax
mov si,msg_succ
call putstr
mov si,msg_welc
call putstr
mov si,creboot
call putstr
retn
Das kompilieren der PROC.ASM funktioniert ohne Fehler.
Das kompilieren der TK.ASM bringt beim assemblieren den folgenden Fehler:
error: binary output format does not support external references
Dieser Fehler tritt bei den Zeilen call putstr
auf.
Habs schon mit jmp putstr versucht, ein FAR ans global angehängt, nichts funktioniert. Und das was im WIKI steht, über NASM-Unterprogramme funktioniert ebenfalls nicht.
Wisst ihr, wie man ein externes Unterprogramm (in NASM geschrieben) mit NASM aufruft ?
Vielen Dank,
bsc