assembler in c++



  • hi, suche internetseiten, ebooks etc. zum thema Assembler in C++. ich will in c++ mit assemblerbefehlen arbeiten und die dann auch anwenden nur weiß ich nich wie . vielleicht könnt ihr mir ja helfen.



  • hi!

    meinst du inline-assembler? das machst du (zumindest in TurboC++) so:

    asm asmbefehl

    also z.B.

    asm Mov Ax,1

    aber als erstes solltest du assembler lernen. besorg dir dafür tutorials oder bücher

    cu todo



  • das ist vom Compiler abhängig, welchen Compiler benutzt du?



  • das würde mich auch mal interessieren, da man doch sachen wie festplatte auslesen in asm einfacher darstellen kann
    habe visual studio c++
    thx



  • bei vc++ ist __asm als eigenes keyword vorhanden und du kannst dann so ungefaehr:

    __asm /* <<-- genannt asm-block laut MSDN */
    {
    /* asm-befehle */
    }

    oder:

    __asm /* + befehl ( ein befehl - eine zeile ) */

    mfg hannibal



  • Aber:
    Festplatte auslesen o.ä. geht auch in Assembler nicht einfacher. Das verbietet nämlich Windows. Du musst so oder so die WinAPI Funktionen aufrufen. Für Linux und andere Systeme (außer DOS 😉 ) gilt ähnliches.



  • mhm na ja, wie man die festplatte unter win und linux ausliest habe ich schon mal programmiert, dachte aber wäre mit assembler einfacher, wenns win verbietet isses ja mist...
    mal noch ne andere frage an die die schon mal assembler code in c++ eingebracht haben, ich muss doch bestimmt am anfang wieder die ganzen register laden und speicher reservieren oder wird das dann automatisch gemacht wenn ich sage er soll #90 ins register, was weiss ich, ax laden
    thx



  • alloa,

    sorry das ich hier jetzt erst weiterschreibe aber ich hatte zwischendurch an einem anderen projekt weitergearbeitet.

    also um erstmal die fragen zu antworten: ich hab verschieden compiler. einmal den, der bei vc++ 6 ist und einmal den von borland delphie 6 bzw cbuilder 6. somit können die befehle entweder in c oder delphie sein.

    also was ich mit dem progrämmchen machen will ist eine einfach bildschirmausgabe mit asm. da ich das für die schule brauche und selbst von asm null ahnung habe wollte ich mich mal an euch wenden. (bin eher der web-script-programmierer). 🙄 .

    vielleicht kann mir ja mal jemand helfen.

    mfg marcus

    ps: am besten wär die hilfe für c++

    [ Dieser Beitrag wurde am 06.01.2003 um 08:20 Uhr von weichensteve editiert. ]



  • Original erstellt von weichensteve:
    **also was ich mit dem progrämmchen machen will ist eine einfach bildschirmausgabe mit asm. da ich das für die schule brauche und selbst von asm null ahnung habe wollte ich mich mal an euch wenden. (bin eher der web-script-programmierer). 🙄 .
    **

    Kannst du unter Windows aus Schutzgründen knicken, da kommt keiner an die Grafik ohne WinAPI zu nutzen. Unter DOS wäre das natürlich was anderes, aber da müsstest du auch einen DOS-Compiler benutzen...



  • okay, gehen wa mal das vonaus das ich nen dos-compiler habe (habe ich auch). wie müsste ich dann vorgehen (so quellcodemäsig)??? ich hab davon echt null peilung (von assambler) und dann kommt noch zu das ich das in c++ machen soll :(.



  • Am besten lest ihr Tutorials (-->FAQ), ist zwar blöd, aber besser als Ahnungslos zu sein.
    Wichtig ist was ihr machen wollt, ASM unter Win ist nur in wenigen Fällen sinnvoll. Dazu gehören aber Treiber, einige Optimierungen, unkonventionelle Hardware nutzung (Lauflicht mit den Tastaturlampen, habe ich mal in Delphi mit inline ASM gecodet :), winzige Programme.
    Bei schnellen Graphiken unter Windows ist am besten directX oder entsprechendes zu nutzen.

    Falls ihr mit Asm einsteigen wollt, rate ich euch mal in der FAQ umzusehen, und erstmal "reine" ASM-proggies für Dos zu schreiben. Ist wohl erstmal öde, aber dann bekommt ihr ein Gefühl dafür. Denn nicht selten wird der Compiler bei seinen Optimierungen durch Inline-Asm gestört.

    Aber auch wenn viele es sagen, ASM ist nicht schwer! Es ist leider (meist) nur Aufwändig.

    mfg
    -bg-



  • jo, das es nur ín wenigen fällen sinnvoll ist weiss ich, aber bei uns ist das momentan so das wir einfach nur mal zeigen sollen wie das funktioniert mit asm in c++.

    hab ins faq geschaut und das hilft mir gar nichts.

    hier nochmal was ich machen will: ich will in einem dosfenster einfach "hallo welt!" ausgeben. das aber nicht mit cout sondern halt mit asm. nun bräucht ichg mal hilfe von einem der mir vielleicht mal damit helfen kann dasa in asm zu ralisieren.

    büdde helped mir...

    [ Dieser Beitrag wurde am 09.01.2003 um 07:55 Uhr von weichensteve editiert. ]



  • Ok, Du willst das ganze also unter DOS machen? (KEINE Win32-Konsole!) Dann sollte sowas in der Art laufen:

    static char Var1[]={"Hallo Welt!$"};
    
    int main () {
    
        __asm{
        mov dx,offset (Var1);
            mov ah,09h
            int 21h
        };
    
    return 0;
    
    };
    

Anmelden zum Antworten