ich habe folgendes kleines Programm für ASM86 geschrieben:
Das Programm schreibt ein A in die linke obere Ecke des Bildschirm.
Ich habe das Programm mit ASM86 übersetzt mit LINK86 gebunden und mit LOC86 an eine feste Anfangsadresse gelegt.
Von LOC86 habe ich das folgende MAP File bekommen:
- DOS 5.0 (038-N) 8086 LOCATER, V2.5
- INPUT FILE: A.LNK
- OUTPUT FILE: A
- CONTROLS SPECIFIED IN INVOCATION COMMAND:
- DATE: 08/08/;4 TIME: 22:18:02
- WARNING 63: SS AND SP REGISTERS NOT INITIALIZED
- WARNING 64: DS REGISTER NOT INITIALIZED
- MEMORY MAP OF MODULE A
- MODULE START ADDRESS PARAGRAPH = 0020H OFFSET = 0100H
- SEGMENT MAP
- START STOP LENGTH ALIGN NAME CLASS OVERLAY
- 00200H 00200H 0000H G ??SEG
- 00200H 00312H 0113H G CODE_SEG
LOC86 gibt meinem Programm die Anfangsadresse 200H.
Auffällig in dem MAP file ist dass neben meinem Segemt CODE_SEG an der Adresse 200H ein weiteres Segement mit der Länge 0 steht.
Was ist dieses Segment ??SEG und wie werde ich es los?
Die Segmentregister DS SS und den Stackpointer habe ich nicht initialisiert da ich sie hier nicht brauche. Falls hier jemand sagt bei einem COM File müsse ich auch DS und SS initialisieren..der LOC86 kennt werder EXE noch COM Files..er produziert einfach ein binary das ich dann in A.COM umbennen kann.
Ist dieses ??SEG vielleicht ein Datasegement das er vermisst?