Linker Fehler LNK1190
-
Ich hab einen alten asm-code mit MASM V6.15.8803 (ml.exe) assembliert, und bekomme dann beim Linker den Fehler LNK1190: Ungültiger Fixup aufgetreten.
Im Code befindet sich die Zeile:
"mov cs:sssav,ss", wobei sssav im code als
"spsav dw ?" definiert ist.Wenn ich die mov-Zeile auskommentiere, funktioniert der Linker.
Ist es nicht möglich auf das Code-Segment zu schreiben? bzw. gibt es dafür abhilfen.
Anbei noch der Code:PROCINI _syexec,<PTRARG>
;
; save crucial registers
;
push ds
push es
push bpmov cs:sssav,ss
mov cs:spsav,sp;
; load registers from REGS array
;
ARGLODP ds,bp,0
mov ax, [bp]
mov bx, 2[bp]
mov dx, 6[bp]
mov es,12[bp]
mov ds,14[bp]
;
; take the interrupt
;
int 21H
;
; restore registers
;
mov ss,cs:sssav
mov sp,cs:spsav
pop bp
pop es
pop ds
;
; set return value
;
ARGLODP ds,bx,0 ; point to REGS array again
mov [bx],ax ; save DOS return value
sbb ax,ax ; return 0 or -1 depending on CY flag
RETLODV axPROCEND _syexec
spsav dw ?
sssav dw ?
CODEEND
end
-
Vielleicht solltest du mal eine ältere Version von masm ausprobieren. Mit dem vc++ 6 kann man z.B. auch keine realmode dos programme mehr erstellen.