Problem mit Tasm und Masm



  • Wenn ich einen Quellcode mit Tasm oder Masm kompiliere bekomme ich nur eine .OBJ-Datei, aber keine .EXE-Datei



  • ....linken. Den Linker solltest du irgendwo finden, ich weiß nicht wie der heißt. Google hilft.
    Alternativ kannst du binärdateien erzeugen, die kommen ohne Linken aus.



  • Für TASM hab ich mal in C++ ein Programm gemacht wo du nur den Datei namen in dem Programme eingeben musst ( weil ich nie lust hatte immer in der Eingabeaufforderung so viel zu schreiben ^^ ) .

    Ich hab das hier mal hochgeladen der TASM Assembler ist dabei.

    http://www.megaupload.com/?d=UVVXF9I0

    Dabei ist auch eine Datei die heisst: wert.asm

    Starte einfach die Datei "Assembler.exe" ( Ohne Anführungszeichen ) dort gibst du dann einfach ein "wert" ( Ohne Anführungszeichen ) dann klickst du einfach auf Assemblierung starten und dann hast du deine exe Datei.

    Das Programm erstellt dann einfach eine passende Batch Datei welche dann ausgeführt wird um dein Source Code zu Assemblieren.

    Die Datei wert.asm gibt einfach 1 Texte aus.

    Ka ob dir das was bringt aber kannst ja mal gucken.

    Hier ist der Quelltext für das Programm Assembler.exe ist zwar nix besonderes aber für meine vorhaben reichte es^^

    Aber wie das jetzt für MASM geht weiss ich auch nicht ich hab mich nur kurz mit TASM beschäftigt.

    //---------------------------------------------------------------------------
    #include <iostream>
    using namespace std;
    #include <fstream>
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    String eingabe;
    
    eingabe = Edit1->Text;
    
       ofstream datei("assembler.bat");
            datei<<"@echo off\n";
    
            datei<<"echo.\n";
            datei<<"echo OBJ Datei wird erstellen\n";
    
            datei<<"echo.\n";
            datei<<"tasm "<<eingabe<<"\n";
    
            datei<<"echo.\n";
            datei<<"echo Datei Linken\n";
    
            datei<<"echo.\n";
            datei<<"tlink "<<eingabe<<".obj\n";
    
            datei<<"echo.\n";
            datei<<"echo.\n";
            datei<<eingabe<<"\n";
            datei<<"echo.\n";
            datei<<"pause\n";
    
               datei.close();
    
               system("start assembler.bat");
    }
    //---------------------------------------------------------------------------
    


  • Klappt alles, Danke



  • naja, ein wenig sinnfrei ist es mit dem programm schon, was machst du, wenn du mehrere asm files hast, die zu einem Programm zusammengaut werden sollen, oder wenn ressource-scripte kompiliert werden sollen?



  • Das Programm könnte man ja bequem durch eine Batch-Datei ersetzen, die ein Argument übergeben bekommt.
    MfG
    HWK


Anmelden zum Antworten