Problem mit dem eingebauten Assembler in C++



  • Hallo,

    ich wollte in mein C++ Projekt noch einen kleinen Teil Assembler einbauen.
    Ich verwende den GNU C++ Compiler und wollte fragen was an diesem Code nicht stimmt:

    void flipBufferASM(char* buf, int len)
    {
        asm
        (
            "push %ecx \n"
            "push %ebx \n"
            "push %ax \n"
            "mov %ecx, len \n" // "[Linker Error] undefined reference to `len'"
            "mov %ebx, buf \n" // "[Linker Error] undefined reference to `buf'"
    
            "label1: \n"
    
            "    mov %al,[%ebx+0] \n" // "invalid char '[' beginning operand 2 `[%ebx+0]"
            "    mov %ah,[%ebx+2] \n" // "invalid char '[' beginning operand 2 `[%ebx+2]"
            "    mov [%ebx+2],%al \n" // "invalid char '[' beginning operand 1 `[%ebx+2]"
            "    mov [%ebx+0],%ah \n" // "invalid char '[' beginning operand 1 `[%ebx+0]"
            "    add %ebx,3 \n"
            "    dec %ecx \n"
    
            "jnz label1 \n"
    
            "pop %ax \n"
            "pop %ebx \n"
            "pop %ecx \n"
        );
    }
    

    Könnt ihr mir sagen was daran falsch ist und wie das aussehen muss?



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten