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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...