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