AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

wie assembler in delphi benutzen?

Ein Thema von o0o · begonnen am 1. Dez 2007 · letzter Beitrag vom 1. Dez 2007
Antwort Antwort
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#1

wie assembler in delphi benutzen?

  Alt 1. Dez 2007, 13:53
hi leutz also da mich asm doch schon auch interessiert wollte ich damit in verbindung mit delphi ein wenig rumspielen,...zudem habe ich eig. kein plan wie das gehen soll^^

das hello world in asm:
Zitat:
DATA SEGMENT WORD DATA
Msg DB 13,10,Hallo, Welt!,7,13,10,$
DATA ENDS
CODE SEGMENT WORD CODE
ASSUME CS:CODE, DSATA
Start:movax,DATA
movds,ax
movdx,OFFSET Msg
movah,009h
int021h
movah,04Ch
int021h
CODE ENDS
END Start
ich waere sehr dankbar wenn mir jemand beschreibn kann wie ich zb dieses hello world von asm in delphi ausfuehren kann

thx im vorraus

o0o
(_/marabu-fan inside\_)
[-\_______________/-]
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: wie assembler in delphi benutzen?

  Alt 1. Dez 2007, 14:12
Du benutzt in dem Code den DOS Interrrupt 21h und der ist für 16 Bit Programme im RM gedacht. Du befindest dich hier unter Windows und wo soll er denn den Text hinschreiben den du dort ausgeben willst? Du musst dich unter Windows mit der WinAPI anfreunden und deren Funktionen aufrufen. Die Funktionen werden hier nicht mehr über Software-Service-Interrupts zur Verfügung gestellt sondern du musst entsprechende Funktionen in DLLs aufrufen. Du kannst in so fern gar nichts von dem Programm übernehmen.

Ein anderes Problem ist, dass du ein alleinstehendes Programm gepostet hast, welches vom Assembler übersetzt und vom Linker zu einer selbstständigen EXE gebaut werden kann. Nun willst du dies unter Delphi nutzen? Delphi hat einen integrierten Assembler und somit fällt initialisieren der Anwendung, Definition von Segmenten, Beenden des Programms etc komplett weg, da dein Code sich innerhalb einer Anwendung befindet.

Wenn du den Code nach dem gleichen Prinzip unter Win32 haben willst, dann nutze auch wieder ein komplettes Assemblersystem und nicht eine IDE.
  Mit Zitat antworten Zitat
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: wie assembler in delphi benutzen?

  Alt 1. Dez 2007, 14:23
ich danke dir vielmals fuer die aufklaerung

hast du vllcht noch ein paar links von denen ich alle info's bekomme die ich zum thema asm brauche?
ich hab schon nich grad ahnung davon aber moechte es lernen(oder wenigstens versuchen^^) nur wenn ich mich im web so umschaue sind eig fast alle tutorials und so total veraltet^^

wenn du da was hast an das ich mich klammern kann waere ich sehr dankbar


o0o
(_/marabu-fan inside\_)
[-\_______________/-]
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: wie assembler in delphi benutzen?

  Alt 1. Dez 2007, 14:25
Stichworte:

AllocConsole,
GetStdHandle mit STD_OUTPUT_HANDLE Parameter,
WriteConsole,
FreeConsole

damit geht es. Assembler in Delphi einbetten geht, indem du statt BEGIN einfach ASM verwendest. Du kannst natürlich auch in einem vorhandenen BEGIN Block ASM .. END verwenden. Die Variablen und Konstanten aus dem .data oder .data? Teil kannst du ganz normal als const oder var deklarieren.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: wie assembler in delphi benutzen?

  Alt 1. Dez 2007, 14:30
Hier gibt's ein entsprechendes Tutorial: Inline ASM für Win32 - Einsteiger Crashkurs
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: wie assembler in delphi benutzen?

  Alt 1. Dez 2007, 14:36
Zitat von Zacherl:
damit geht es. Assembler in Delphi einbetten geht, indem du statt BEGIN einfach ASM verwendest. ...
Aber er will ja scheinbar ein sein ganzes Programm in ASM schreiben.

ASM-Tutorials/Kurse findet man doch wie Sand am Meer:
- http://www.it-helpnet.de/Dokumente/P...0Tutorial.html
- http://andremueller.gmxhome.de/befehle.html
- http://ivs.cs.uni-magdeburg.de/bs/le...ssembler.shtml

Man findet auch häufig günstig Bücher über ASM bei ebay.

Um eigenständige Programme in ASM zu schreiben, kannst du die bspw. mal FASM angucken: http://www.flatassembler.net/
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: wie assembler in delphi benutzen?

  Alt 1. Dez 2007, 14:38
Da habe ich auch eine passende Frage. Geht doch sicher auch mit MASM oder? zum einbetten kann ich doch theoretisch einfach die .obj Datei mit Linken lassen?
  Mit Zitat antworten Zitat
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: wie assembler in delphi benutzen?

  Alt 1. Dez 2007, 18:52
omfg,...Matze,Zacherl,Hador ich danke euch vielmals das war genau das was ich brauche

echt geilo^^

da o0o
(_/marabu-fan inside\_)
[-\_______________/-]
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz