Assebleraufruf aus C



  • Hallo allerseits.
    Ich möchte ein Assemblerprogramm aus C (mfc) aufrufen.
    Einstweilen soll es nur eine int-Zahl erhalten und ausgeben.
    Leider weiss ich nicht, wie das mit den Segmenten laufen soll. Ich hab
    zwar ne Anleitung wie sowas auszusehen hat, jedoch kann ich da keine
    Segmentangaben für den Assebler finden.
    Und wie soll das darüberhinaus mit dem Asseblieren u. Linken laufen?

    Vielen Dank im Voraus



  • Hallo,

    zwar verstehe ich nicht ganz was Du willst, aber ich kann Dir Helfen, falls Du den VisualC++ Compiler benutzt. Dieser ist in der Lage inline assembler code zu verarbeiten. Hier ein extrem einfaches Beispiel:

    #include<stdio.h>
    #include<iostream.h>
    
    void main(){
    
    int a;
    
        __asm{
    
               mov eax ,12 + 12     ; Addiere 12+12
               mov a,eax            ; Kopiere den Inhalt von eax in die Variable a
               lea eax,a            ; Lade die effektive Adresse nach a 
               mov a,eax            ; Kopiere den Inhalt nach a
    
        }
    
    cout<<a<<endl; //Gib a einmal mit C++ aus
    printf("Address: %d\n\n",&a); /*Gib a einmal mit C aus*/
    
    }
    

    Da Du sagtest das Du mfc, ich nehme mal an das soll MICROSOFT FOUNDATION CLASSES heisen, verwendest, gehe ich auch mal davon aus das Du Visual C++ hast. Dieser Art funktioniert(ist mir so bekannt) nur unter VC++.
    Ich gehe mal davon aus das die komentare oben reichen.
    Der __asm{
    ASSEMBLER
    ASSEMBLER

    }

    muss immer so bleiben, das heist er muss immer so geschrieben werden.
    Das super Plus ist das Du mit Variablennamen DIREKT aus C/C++ arbeiten kannst.
    Solltest Du noch fragen haben, kannst DU mich gerne fragen.

    mfg Ken
    mp5fmj@hotmail.com


Anmelden zum Antworten