Tutorial nicht für tasm???
-
Hi!
Ich möchte mit Assembler anfangen nur gibt es ein großes Problem: Alle Tuts die ich bisher gefunden habe, waren zwar gut, aber für TASM - und der kostet Geld.
Gibt es nicht irgendwo auch Tuts für einen kostenlosen Assembler?? (egal ob Eng. od. Dt.)
Oder einen Assembler mit der gleichen Syntax wie TASM?
-
hi nochmal!
Ich hab in meiner Borland C++ Version, die ich eigetlich nicht verwende, die Programme tasm32.exe und ilink32.exe gefunden.
tasm32 funktioniert auch und übersetzt das Beispiel Programm aus den FAQ-Dokus aber ilink32 beschwert sich mit:
Fatal: Unsupported 16-bit segment(s) in module test1.asm
Was bedeutet dies? Kann ich ilink32 nicht verwenden?? Ist ilink32 nur für 32 Bit?
; ******************************************** ;*Ausgabe: ?Hallo Welt!? auf Bildschirm* ;********************************************* DATEN SEGMENT MELDUNG DB "Hallo Welt !", "$" DATEN ENDS STAPEL SEGMENT BYTE STACK DW 128 DUP (?) STAPEL ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATEN,ES:NOTHING,SS:STAPEL START: MOV AX, DATEN MOV DS, AX MOV DX, OFFSET MELDUNG MOV AH, 9H INT 21H MOV AH, 4CH INT 21H CODE ENDS END START
-
EnERgYzEr schrieb:
Ist ilink32 nur für 32 Bit?
Ja. Du brauchst einen 16-Bit Linker. Wo es da einen für tasm gibt weiß ich nicht, aber da kannste ja mal bei google oder altavista oder so nachsehen.
Code-Hacker
-
Hallo EnERgYzEr:
Den 16-Bit-Linker Tlink findest Du z.B. in dem Turbo-C++-Paket 1.01. Den kannst Du frei bei Borland herunterladen. Allerdings musst Du Dich vorher registrieren.
Die URL lautet:
Dort gibt es den Eintrag Museum in der linken Navigationsleiste. Dort sind ältere Versionen von Pascal und C(++) erhältlich.
Ciao...
-
Danke erst mal für alle Antworten!
Loht es sich überhaupt noch erstmal mit 16-Bit zu programmieren? Oder sollte man gleich mit 32-Bit anfangen?
-
Die Frage heisst wohl eher: Lohnt es sich noch für DOS Assembler zu lernen oder besser gleich mit der WinAPI anfangen?
Ja, es lohnt sich. Egal ob 16 oder 32 Bit, du hast einfach nur ne größere Breite für deine Daten. Und egal ob für DOS oder Windows, lern es wenn es dir Spaß macht. (Außerdem hab ich bisher für TASM nur ca. insgesamt 5 Win-Tutorials gefunden und für Masm gibts ja die von Iczelon's (oder so) und wenn ich dort etwas mit .IF ELSE sehe kommt wir warhaftig fast das Kot**n)
-
d.h. ich kann 16-Bit Assembler Anwendungen nicht mehr unter Win32 ausführen?
(Und danke erstmal
)
-
Doch kannst du, dann wird extra ne Eingabeaufforderung für dich aufgemacht (DOS-Konsole). Ach ja zu deinem Source von oben, irgendwie sah das für mich wie ein TASM Code aus.
-
Der Code funktioniert sowohl unter MASM als auch TASM. Das geht bei den meisten Codes, dass sie unter beiden Assemblern laufen. Muss nur ich sage mal ein "Standard" eingehalten werden.
Code-Hacker
-
HAR
***was ist denn an dem .IF und .ELSE so schlimm? du benutzt schließlich auch makros in deinen wahrscheinlich TASM geschriebenen programmen und mal ganz davon abgesehen sollen solche konstrukte asm einfach erleichtern... sprich wenn du immer wiederkehrende anweisungen hast packst du die in ne nette funktion (ja geht auch in asm auch mit tasm) oder machst halt nen makro draus und packst das immer und überall dorthin wo du es brauchst, das steigert nämlich die lesbarkeit
EnERgYzEr
*********du solltest dir klar werden ob du für das tote dos oder für das lebendige windows assembler code schreiben möchtest...und ich geh mal nicht davon aus das du auch so geil drauf bist dein eigenes OS schreibne zu müssen....
aber mal ernsthaft..was will man bei assembler lernen? den befehlssatz? wenn du verstehst wie der prozessor funktioniert, speicher und die informationsübermittlung funktioniertdann bist du einen großen schritt weiter...übrigens wenn du irgendwann mal keine lust mehr auf 16 bit hast...dann kannste ja auf die win-programmierung ausweichen
da kannst du dann auch fenster basteln usw.
weil das ist dann fast so leicht wie C
eigentlich könnteste da ja auch gleich mit C anfangen...und dir dazu parallel die wichtigsten grundlagen zum assembler programmieren beibringen :)die du dann mit dem inline assembler reinschreiben kannst...aber wenn du dich nicht super im system auskennst optimiert der compiler meist besser als du...was also spricht dagegen eine "hochsprache" zu lernen und assembler nur als vielleicht mal nützlichen fun für nebenbei zu betrachten?
bye
tt
-
Tipp:
Der A86 ist freeware, hat aber keinen eigenen Editor. Dafür ist er aber kompatibel zum TASM
cYa
DjR
-
TheTester schrieb:
eigentlich könnteste da ja auch gleich mit C anfangen...und dir dazu parallel die wichtigsten grundlagen zum assembler programmieren beibringen :)die du dann mit dem inline assembler reinschreiben kannst...aber wenn du dich nicht super im system auskennst optimiert der compiler meist besser als du...
was also spricht dagegen eine "hochsprache" zu lernen und assembler nur als vielleicht mal nützlichen fun für nebenbei zu betrachten?
ich programmiere schon seit einigen jahren beruflich c,c++
assembler soll aber wirklich erstmal nur für ein bissel "fun" sein.
und wie du empfohlen hast bin ich auch wirklich schon seit einiger zeit dabei die cpu/mem grundlagen aus den TASM Tuts zu ziehen und nebenbei versuche ich die nasm syntax aus dem original handbuch zu ziehen...
ich hoffe nasm war keine falsche entscheidung??
EDIT: und a86 schau ich mir auch mal an...!
-
ich programmiere schon seit einigen jahren beruflich c,c++
ach so *grins*
zu nasm kann ich nix sagen
hab bis jetzt nur mit tasm, masm und inline assembler beim lccwin32 gearbeitet (at&t syntax)
hmm...ich glaub der a86 der is nur für 16 bit frei wenn du 32 haben möchtest musst du zahlen, zumindest is mir so als ob ich das irgendwo mal gelesen hab
tschööö
tt
-
ich nutze vs c++.net.
kann ich da eigentlich auch den inline assembler mir aussuchen oder bin ich auf masm beschränkt?
-
öhmm...ich nutze VC++.net auch nicht
masm gibts separat...genauso wie es tasm mal einzeln gab
keine ahnung ich glaub dein compiler muss dazu fähig sein...zb. beim lcc unter unix kannste nasm als assembler verwenden... ansonsten isses doch wurscht oder? inline ist inline
ms compiler haben für gewöhnlich intel syntax...
tschöö