ASM in GCC / GRUB?



  • Hi,

    was muss ich noch mal machen um INLINE ASM im GCC ( genauergesat c++ 😉 )
    zu benutzen?

    Und wie kann ich GRUB so konfigurieren das es meinen Kernel laden kann?

    MFG

    LordHoto



  • also ich hab jetzt :

    unsigned char ui8Port = 0;
    unsigned char ui8Input = 0;
    
     __asm( "out $ui8Port , $ui8Input" );
    

    geschrieben ( nur mal so zum test ) aber ich bekomm den Fehler :
    suffix or operands invaild for 'out'

    wie soll ich das jetzt schreiben das es funzt??

    MFG

    LordHoto

    PS: Danke schon jetzt



  • schau mal in der FAQ bei den Assembler Tutorials. Da findest du einen Link, ansonsten schau dir mal das Handbuch zum GCC an 🙄



  • Hi.

    Ich wuerde dir ansonsten eher empfehlen, dich nochmal mit den Listen der x86-Befehle zu beschaeftigen. Out kann als ersten Operanden (Port) nur Werte bis 255 direkt annehmen, sonst muss das dx-Register eingesetzt werden.
    Als 2. Operand kann nur eax (oder eine der Unterteilungen ausser ah) eingesetzt werden.

    Bsp:

    mov dx,0224h
    mov al,80h
    out dx,al
    

    Zu Grub kann ich leider nichts sagen... (Haette uebrigens eigentlich besser in einen eigenen Thread gepasst, da die beiden Themen nichts miteinander zu tun haben).
    Also googlen... 🙄


Anmelden zum Antworten