gcc inline asm write syscall



  • Hallo I
    Ich bekomme leider den Linux SysCall write nicht zum laufen.
    Der Code kompiliert ohne probleme, jedoch gibt er nichts auch ...:-(

    #include <stdio.h> 
    
    int main(void)
    {
    	char test[]="test\n";
    	asm ("mov $4,%%eax;"
    	     "movl $1,%%ebx;"
    	     "movl %0,%%ecx;"
    	     "movl $5,%%edx;"
    	     "int  $0x80;"
    	     ::"r"(test)
    	     );
    }
    

    Danke



  • #include <stdio.h>

    int main(void)
    {
    char test[]="test\n";
    asm ("mov $4,%%eax;"
    "movl $1,%%ebx;"
    "movl %0,%%ecx;"
    "movl $5,%%edx;"
    "int $0x80;"
    ::"r"(test):"%eax"
    );
    return 0;
    }
    Funktioniert intressanterweise, kann mir jemand sagen für was der clobbered eintrag gut ist bzw. links geben.

    Danke



  • Ok objdump hat mir die erkenntnis gebracht , der clobbered Register verhindert das die daten in diesen register geschoben werden.

    Also Solved.


Anmelden zum Antworten