Turbo Assembler

Diskussion zum Thema Programmierung unter DOS (Intel x86)
Antworten
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Turbo Assembler

Beitrag von oDOSseus »

Hallo zusammen.

Das Internet ist sehr verschwiegen was Themen angeht, die seit 1998 nicht mehr Relevant sind. daher muss ich hier wohl wieder mal ein Thema starten.

Benutzt hier jemand den BORLAND TASM?
Wenn ja: JMP L1
JMP L2

L1:
Wie kann ich da Libraries erstellen? Ich habe ne Datei mit Prozeduren drin und will die gerne zu einer library zusammenfügen. Wie geht das. 2. Wie kann ich die dann linken?
JMP L3

L2:
Welchen Assembler benutzt du und ist er angenehm zu handhaben?

L3:
mfG
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Turbo Assembler

Beitrag von freecrac »

oDOSseus hat geschrieben:Hallo zusammen.

Das Internet ist sehr verschwiegen was Themen angeht, die seit 1998 nicht mehr Relevant sind. daher muss ich hier wohl wieder mal ein Thema starten.

Benutzt hier jemand den BORLAND TASM?
Wenn ja: JMP L1
JMP L2

L1:
Wie kann ich da Libraries erstellen? Ich habe ne Datei mit Prozeduren drin und will die gerne zu einer library zusammenfügen. Wie geht das. 2. Wie kann ich die dann linken?
JMP L3

L2:
Welchen Assembler benutzt du und ist er angenehm zu handhaben?

L3:
mfG
L2: Ich benutze MASM 5 und MASM 6 und die Handhabung ist vergleichbar mit TASM und NASM. Libraries habe ich jedoch noch nie benutzt.

Ich habe hier TASM 5 und dort gibt es einen Ordner mit dem Namen "EXAMPLES". Dort findet man einen weiteren Ordner mit dem Namen "ALIASDOS".
Dort ist neben einer "LIBRARY.C" auch eine "README.TXT" und eine "MAKEFILE" enthalten wo es erklärt wird wie man Libraries einbindet.

Dirk
jmp L3
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Re: Turbo Assembler

Beitrag von oDOSseus »

Lustiger weise entdecke ich jetzt Erst die EXE TLIB
damit kann ich Libraries erstellen
Aber irgendwie klappt dann das INT 15h nicht mehr. Seltsam. INT 21h klappt noch
Ma debuggen
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Turbo Assembler

Beitrag von freecrac »

oDOSseus hat geschrieben:Lustiger weise entdecke ich jetzt Erst die EXE TLIB
Ach jetzt wo du es erwähnst finde ich die nun auch.
damit kann ich Libraries erstellen
Aber irgendwie klappt dann das INT 15h nicht mehr. Seltsam. INT 21h klappt noch
Vieleicht hilft dir die "TLIB.TXT" im Ordner "DOC" weiter. Für mich sind das alles dort noch böhmische Dörfer.
Wenn du mal so ein kleines Beispiel posten könntest, dann verstehe ich es möglicherweise wie man es macht.
Ma debuggen
Wie gross ist denn die exe geworden?

Dirk
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Re: Turbo Assembler

Beitrag von oDOSseus »

Meine EXE ist 854 bytes groß.
MODEL ist TINY
Meine APM.LIB is exakt 1.024 bytes groß.
Sollte es da vllt. probleme geben?

EDIT1

Mein MODEL ist jetzt SMALL und der Stack ist 256 groß.
Jetzt klappts. Weiß wer warum?

EDIT2

Wenn ich MODEL SMALL und STACK 64 mache, dann klappts wieder nicht.
Ergo: Der Stack ist mit 64 so klein, dass es einen overflow gibt (oder? nen anderen grund kanns doch eig. nich geben)
Zuletzt geändert von oDOSseus am Mo 20. Sep 2010, 21:30, insgesamt 1-mal geändert.
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Turbo Assembler

Beitrag von freecrac »

oDOSseus hat geschrieben:Meine EXE ist 854 bytes groß.
MODEL ist TINY
Oh, das ist schön klein.
Meine APM.LIB is exakt 1.024 bytes groß.
Sollte es da vllt. probleme geben?
Nö, warum denkst du das?

Dirk
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Re: Turbo Assembler

Beitrag von oDOSseus »

Wir haben beide gleichzeitig getippt xD
siehe oben
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Turbo Assembler

Beitrag von freecrac »

oDOSseus hat geschrieben:Wenn ich MODEL SMALL und STACK 64 mache, dann klappts wieder nicht.
Ergo: Der Stack ist mit 64 so klein, dass es einen overflow gibt (oder? nen anderen grund kanns doch eig. nich geben)
Das würde ich auch vermuten. Allerdings weiss ich ja nicht wie der Stack in der Anwendung benutzt wird.

Für meine reinen Assembler-Anwendungen verwende ich meist nur 16 Byte oder 32 Byte für den Stack. Das genügte bei mir bisher immer. Push/Pop-Befehle benutze ich äusserst selten,
anstelle dessen verwende ich lieber den Datenbereich um Werte zwischen zu speichern und so tief verschachtelte Unterprogrammaufrufe kommen auch eher selten vor.
Wenn man jedoch in der config.sys den Wert dort auf "stacks=0,0" setzt, dann braucht jede Anwendung einen grösseren Stack wenn sie DOS-IRQs benutzt, da DOS dafür dann selber keinen
eigenen Stack dafür mehr bereitstellt und alle Anwendungen nun einen ausreichend grossen Stack selber dafür bereitstellen müssen. Frag mich aber nicht wie gross der dann sein muss.
Ich habe in meiner config.sys "stacks=8,512" eingetragen.

Dirk
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Re: Turbo Assembler

Beitrag von oDOSseus »

Okay.

Dann finde ich mich damit ab, dass INT 15 einen SSEEEHR großen Stack braucht oder aber, dass das aufrufen einer unterprozedur den Stack sehr stark belastet.

Ist ja auch egal, jetzt Funktioniert die Libraray, die übrigens nur zwei prozeduren enthält:
Shutdown
Reboot
xD. Mit ASM zu rebooten kennen wahrscheinlich die meisten und der shutdown befehl ist im thread shutdown.com erläutert.
Antworten