[Assembly] Eject exe

Stato
Discussione chiusa ad ulteriori risposte.

imported_BlackLight

Utente Silver
16 Agosto 2007
211
8
1
98
Questo programmino in Assembly per Linux apre il vostro lettore cd. Da compilare con gcc.

Codice:
.data
// Dispositivo
dev:
        .string "/dev/cdrom"

// File descriptor
fd:
        .double 0

.text
        .global main
main:
        // fd=open(dev,O_RDONLY|O_NONBLOCK);
        movl            $5,%eax
        movl            $dev,%ebx
        movl            $2048,%ecx
        int             $0x80
        movl            %eax,fd

        // sysioctl
        movl            $54,%eax
        movl            (fd),%ebx
        movl            $0x5309,%ecx  // EJECT
        int             $0x80

        // close(cd);
        movl            $6,%eax
        movl            (fd),%ebx
        int             $0x80

        // exit(0);
        xorl            %eax,%eax
        call            exit
 
lol se lo avessi fatto te avrebbe senso,ma messo cosi mi pare un po inutile,specie pkè nn è commentato completamente ^^
 
Beh l'ho fatto io, con le chiamate di sistema del kernel Linux non ci vuole molto (alla fine gli interrupt richiamano direttamente sys_open, sysioctl e sys_close, e i relativi argomenti delle 3 funzioni sono passati a eax, ebx ed ecx...).
 
ke doveva commentare! è assembler se lo conosci bene se no no comment movl $0x5309,%ecx // EJECT
:fattbe:
 
Stato
Discussione chiusa ad ulteriori risposte.