Grundsätzliche Assemblerfragern!



  • Hallo @ All!

    Assembler ist zurzeit absolutes Neuland ich hoffe ihr könnt mir ein paar Fragen dazu beantworten.

    Wie bringe ich einen Wert in ein register rein?
    Folgendes beispiel:

    Ich hab in C++ eine Variable:

    int wert = 1234;
    

    Wie bekomme ich diesen wert in ein Register damit ich dann damit arbeiten kann?
    Ich arbeite mit einen Inline Assembler in Eclipse.

    __asm__ __volatile__(
    
    );
    

    mfg



  • Assembler kann je nach Zielplattform (CPU) ziemlich unterschiedlich aussehen.
    Wenn du zB. fuer einen x86 (PC, 32Bit) mit einem Intel-Syntax-Assembler programmierst, koennte das zB. so aehnlich aussehen:

    mov eax, [wert]
    

    eax ist ein Allzweckregister, eckige Klammern um den Variablennamen bedeuten einen Speicherzugriff.



  • Nobuo T schrieb:

    Wenn du zB. fuer einen x86 (PC, 32Bit) mit einem Intel-Syntax-Assembler programmierst, koennte das zB. so aehnlich aussehen:

    mov eax, [wert]
    

    ich würde sagen so: mov eax, 1234, also ohne die klammern (immediate adressing).
    🙂



  • Ich hatte ihn so verstanden, dass er in seinem Stueck inline-Asm auf eine in c++ deklarierte Variable zugreifen wollte... 🙂



  • Nobuo T schrieb:

    Ich hatte ihn so verstanden, dass er in seinem Stueck inline-Asm auf eine in c++ deklarierte Variable zugreifen wollte... 🙂

    Hast schon richtig verstanden danke!


Anmelden zum Antworten