Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [NASM] Attivare VGA sotto linux

    Ho bisogno di testare la modalità grafica su linux, il codice è il seguente:

    Codice PHP:
    section .data

    section 
    .text
            
    global _start

    _start
    :
            
    mov al,13h;
            
    mov ah,00h;
            
    int 10h;
            
    ret 
    Sotto linux AH e AL viene scritto tutto nel registro eax quindi:
    mov eax, 13h;

    Però ho un errore: Segmentation fault

    Ho tre domande:

    1) Se AL=13h e AH=10h è corretto scrivere che EAX=1013h ?

    2) Dato che sono sotto la console di linux, è possibile che il sistema operativo 'si incazzi' perchè è già in modalità grafica. Ho letto da qualche parte che cè una combinazione di tasti <ctrl> + <F5> o <alt> per attivare la modalità console, ho provato a fare dei tentativi ma non l'ho trovata. Qualcuno si ricorda qual'è questa combinazione?

    3) Se installo un sistema operativo con solo console, o su un portatile o su una chiavetta usb, vorrei utilizzare questo codice senza aver bisogno della libreria vga.h. Prima di prendermi o una chiavetta o un portatile usato vorrei sapere se qualcuno mi conferma che funzionerà...

  2. #2
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790

    Re: [NASM] Attivare VGA sotto linux

    Originariamente inviato da @less
    Ho bisogno di testare la modalità grafica su linux, il codice è il seguente:

    Codice PHP:
    section .data

    section 
    .text
            
    global _start

    _start
    :
            
    mov al,13h;
            
    mov ah,00h;
            
    int 10h;
            
    ret 
    Sotto linux AH e AL viene scritto tutto nel registro eax quindi:
    mov eax, 13h;

    Però ho un errore: Segmentation fault

    Ho tre domande:

    1) Se AL=13h e AH=10h è corretto scrivere che EAX=1013h ?

    2) Dato che sono sotto la console di linux, è possibile che il sistema operativo 'si incazzi' perchè è già in modalità grafica. Ho letto da qualche parte che cè una combinazione di tasti <ctrl> + <F5> o <alt> per attivare la modalità console, ho provato a fare dei tentativi ma non l'ho trovata. Qualcuno si ricorda qual'è questa combinazione?

    3) Se installo un sistema operativo con solo console, o su un portatile o su una chiavetta usb, vorrei utilizzare questo codice senza aver bisogno della libreria vga.h. Prima di prendermi o una chiavetta o un portatile usato vorrei sapere se qualcuno mi conferma che funzionerà...
    CTRL+ALT+F1 una modalità console CTRL+ALT+F7 torni alla modalità grafica
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quel codice va vene solo per il DOS (o comunque per sistemi a 16 bit).

    Non puoi gestire la grafica in quel modo. Devi usare le chiamate di sistema.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Grazie Metflar



    Non importa che sia sotto ASM o C, questo è l'esempio:

    Codice PHP:
    void main(void)
    {
    Set_Vga_Mode();
    printf("Modalità Grafica");

    Set_Text_Mode();
    printf("Modalità testuale");


    Devo utilizzare le chiamate di sistema.. grazie ho capito che devo interaggire con il kernel e non direttamente sui interrupt.
    E.. riesco a trovare delle informazioni per questi esempi di codice C o mi conviene cercare un libro? Ho trovato questi

    http://www.ibm.com/developerworks/li...-system-calls/

    http://en.wikipedia.org/wiki/System_calls

    http://linux.die.net/man/2/syscall
    http://linux.die.net/man/2/intro

    LINUX System Call Quick Reference - Jialong He
    Guida per un riferimento veloce alle system call con descrizione della system call e riferimento al kernel tree.



    Grazie ancora!

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma tu che devi fare esattamente?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Prendo da questo libro http://www.hoepli.it/libro.asp?ib=97...00022001001003 gli esempi e scriverli sotto linux... è complicato?

  7. #7
    Non mi sembra il caso di scomodare l'assembly per fare della grafica. Ci sono tante librerie che assolvono egregiamente il compito. Una per tutte OpenGL . Saluti

  8. #8
    Originariamente inviato da king64
    Non mi sembra il caso di scomodare l'assembly per fare della grafica. Ci sono tante librerie che assolvono egregiamente il compito. Una per tutte OpenGL . Saluti
    Ok d'accordo! OpenGL, accendo e confermo!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.