Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo ihr Lieben!

Ich habe vor zwei Jahren in der Schule gelernt, unter Windows XP mit dem Programm "debug" kleine Assembler-Programme schreibt. Das hat mein Chef nun spitz bekommen und hat mich gefragt, ob ich vielleicht interesse hätte, in dem Bereich wieder einzusteigen. Das große Problem an der Sache ist nur, es gibt niemanden mehr in der Firma der Assembler beherrscht also niemanden der es mir beibringen könnte. Mein Chef hat mir nun das Buch "Assembler - Grundlagen der Programmierung (2006)" in die Hand gedrückt und mir gesagt, ich soll nach meiner Ausbildung in 2 Jahren nochmal auf ihn zukommen, da hätte er ein paar Aufgaben für mich.

Jetzt habe ich mich bis zum ersten Beispiel durchgearbeitet und viele Sachen waren mir bis dahin auch bekannt. Die neue Code-Schreibweise muss ich halt noch lernen, aber das tut man ja bekanntlich beim Programmieren, bzw. in diesem Fall beim Assemblieren. ;)

Ach, herje! Es funktioniert aber nicht wie im Buch beschrieben, und ich finde keine Lösung im Internet dafür. Hier das erste Beispiel:

hallo.asm

        .MODEL Small

        .STACK 100h

        .DATA

Meldung DB  "Hallo Welt$"

        .CODE

Start:  mov ax,@data

        mov ds,ax

        mov dx,OFFSET Meldung

        mov ah,09h

        int 21h

        mov ah,4Ch

        int 21h

        END Start

Wie im Buch beschrieben, habe ich mir den neusten MASM Heruntergeladen (MASM32 SDK Version 10[32 Bit Macro Assembler]). Ich habe das Programm unter c:\masm32\ installiert und den Pfad der Binärdateien händisch meiner Umgebungsvariable Path hinzugefügt (c:\masm32\bin\). Meine Assembler-Dateien liegen unter c:\Asm.
C:\Asm>ml /c hallo.asm

Microsoft (R) Macro Assembler Version 6.14.8444

Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.


 Assembling: hallo.asm

Sieht wunderbar aus, wie im Buch beschrieben: die hallo.obj wurde erzeugt. Leider liefert mir der Linker einen Fehler, mit dem ich und Google nicht wirklich viel Anfangen können:
C:\Asm>link hallo

Microsoft (R) Incremental Linker Version 5.12.8078

Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


LINK : error : Segment reference in fixup record

hallo.obj : fatal error LNK1123: failure during conversion to COFF: file invalid

 or corrupt

Hat jemand von euch eine Idee, was das Problem ist?

Achja: Ich versuche das Programm im XP-Modus (32 Bit, SP3) von Windows 7 (64 Bit Ultimate, SP1) zum laufen zu bringen. Leider habe ich kein "echtes" XP mehr in der Firma und zuhause.

Liebe Grüße

Kiera

:new

Geschrieben (bearbeitet)

hallo,

um ein 16 Bit DOS Programm zu linken, musst Du einen Linker verwenden, der dieses Format erstellen kann. link.exe ist AFAIK auf Windows Programme ausgerichtet.

In meinem masm32 Verzeichnis liegt eine link16.exe (bei dir vermutlich auch) - diese sollte wie erwartet funktionieren. Ansonsten findet man im Netz diverse alternative Linker.

BTW: Für einfache ASM-Programme musst Du höchstwahrscheinlich keinen Kompatibilitätsmodus verwenden.

greetz

mep

Bearbeitet von Mephisto81
Ergänzung

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...