Autor |
Beitrag |
Leuchtturm
      
Beiträge: 1087
Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
|
Verfasst: Di 25.12.07 20:23
Hi,
erstmal sorry falls ich in der falschen Sparte poste.
Ich habe also diese asm-Datei assembliert:
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 
      
Beiträge: 1087
Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
|
Verfasst: 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
      
Beiträge: 260
Win XP Prof
D7 Enterprise
|
Verfasst: 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:
Quelltext
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
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Do 27.12.07 04:23
DrRzf 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
      
Beiträge: 260
Win XP Prof
D7 Enterprise
|
Verfasst: 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 
      
Beiträge: 1087
Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
|
Verfasst: 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
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: Do 27.12.07 19:21
Leuchtturm 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 
      
Beiträge: 1087
Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
|
Verfasst: Do 27.12.07 20:44
Reinhard 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
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.
|
|