Autor Beitrag
Leuchtturm
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: Di 25.12.07 20:23 
Hi,
erstmal sorry falls ich in der falschen Sparte poste.
Ich habe also diese asm-Datei assembliert:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
.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

Danach habe ich eine hallo.obj Datei.
Diese versuche ich nun mit dem MASM Linker für 32 bit zu linken.
Fehler hat folgendes geschrieben:
LINK: error: Segment reference in fixup record
hallo.obj: fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

Mit dem 16bit-MASM-Linker funktioniert es komischerweise.
Könnte mir jemand sagen was ich falsch mache bzw was an dem Code falsch ist.
Vielen dank im voraus.
mfG

Leuchtturm

PS: Der Code ist aus dem Buch Assembler - Grundlagen der Programmierung

_________________
Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.
Leuchtturm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: Mi 26.12.07 22:21 
Sowie ich das hier verstanden habe, funktioniert dieses Programm nur mit einem 16bit Linker.

_________________
Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Mi 26.12.07 23:26 
Ich bin zwar nicht der ober Assembler Meister (reicht grad um mal nen schlechtgemachten kopierschutz zu umgehn :-) ) aber was mir hier seltsam vorkommt:

ausblenden Quelltext
1:
int 21h					


ist das nicht eine Dos interruptroutine um text auszugeben ?
Dos = 16 bit system
wie passt das dann zu 32 bit ?

hab ich da grad nen Denkfehler ?

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Do 27.12.07 04:23 
user profile iconDrRzf hat folgendes geschrieben:
ist das nicht eine Dos interruptroutine um text auszugeben ?
Dos = 16 bit system


Ergänzung: es gibt in 32 bit auch kein "Model Small", das ist 16bit Real Mode.

Gruss Reinhard
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Do 27.12.07 04:47 
hatte ich doch keinen Denkfehler ?

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
Leuchtturm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: Do 27.12.07 11:10 
Vielen Dank.
Ich habe das genau so gemacht wie es in dem Buch beschreiben war und mich deshalb gewundert warum das nicht funktioniert.

_________________
Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Do 27.12.07 19:21 
user profile iconLeuchtturm hat folgendes geschrieben:
Vielen Dank.
Ich habe das genau so gemacht wie es in dem Buch beschreiben war und mich deshalb gewundert warum das nicht funktioniert.


Hallo,

nach dem Inhaltsverzeichnis ist das Buch auf dem Stand MSDOS mit Windows 3.11, 32 bit-Fragen werden kurz auf den letzten Seiten behandelt. Das kann man für eine Einführung als Vorteil oder als Nachteil sehen, aber du brauchst sicher ein System, auf dem DOS wenigstens gut emuliert wird. Möglicherweise nützt dir das Buch unter Vista nicht mehr viel, ganz sicher nicht unter 64bit.

Ich habe genauso (echte) Programme geschrieben, aber das war vor 25 Jahren oder so.

Gruss Reinhard
Leuchtturm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: Do 27.12.07 20:44 
user profile iconReinhard Kern hat folgendes geschrieben:

Hallo,

nach dem Inhaltsverzeichnis ist das Buch auf dem Stand MSDOS mit Windows 3.11, 32 bit-Fragen werden kurz auf den letzten Seiten behandelt. Das kann man für eine Einführung als Vorteil oder als Nachteil sehen, aber du brauchst sicher ein System, auf dem DOS wenigstens gut emuliert wird. Möglicherweise nützt dir das Buch unter Vista nicht mehr viel, ganz sicher nicht unter 64bit.

Ich habe genauso (echte) Programme geschrieben, aber das war vor 25 Jahren oder so.

Gruss Reinhard


Das Buch in der zweiten Auflage erklärt im 1.Teil die Gundlagen von Assembler unter DOS.
Im 2.Teil wird dann auf die Windowsprogrammierung mit ASM eingegangen. Und danach über optimierungen und reverse engineering gesprochen :wink:

Außerdem benutze ich WinXP und das Porgramm läuft in der Console ganz gut.

_________________
Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.