Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2014
    Messaggi
    1

    [Assembly] creazione menú in assembly per intel 80x86 at&t

    Buongiorno a tutti, spero possiate aiutarmi, devo fare un programma im assembly che dopo aver lanciato l'eseguibile, visualizzi un menù, questo é quello che "sono riuscito a fare"


    Menù cruscotto
    1. Setting automobile:
    2. Data: 15/06/2014
    3. Ora: 15:32
    4. Blocco automatico porte: ON
    5. Back-home: ON
    6. Check olio
    7. Frecce direzione
    8. Reset pressione gomme


    invece quello che si deve vedere è questo:

    Menù cruscotto
    1. Setting automobile:

    //poi premendo freccia giù + invio deve spostarsi di rigas in riga(ecco associare la parte del tasto non so proprio come farla)

    Menù cruscotto
    2. Data: 15/06/2014 visualizzandone però sempre una alla volta,

    ecco io ho sviluppato il programma in 1 main e 8 funzioni (sottoprogrammi) per facilitarmi nel caso avessi riscontrato dei problemi

    ecco il main
    codice:
    .section .data 
    menu:
    .ascii " Menù cruscotto\n"
    
    menu_len:
    .long . -menu	# lunghezza della stringa in byte
    
    .section .text
    
    .global _start
    
    _start:
    
    movl $4, %eax	 # 4 corrisponde alla system call "write"
    movl $1, %ebx	 # stampa nello standard output (schermo)
    leal menu, %ecx	# puntatore char a ciò che si vuole stampare
    
    movl menu_len, %edx	# copia del contenuto della variabile. carica la lunghezza della variabile
    
    int $0x80	 # system call (int sarebbe "interaction"); con 0x80 si lancia una interaction generale 
    # dichiarata (in base ai valori caricati precedentemente nei registri)
    
    
    call setting
    jmp exit
    call data
    jmp exit
    call ora
    jmp exit
    call porte
    jmp exit
    call home
    jmp exit
    call olio
    jmp exit
    call frecce
    jmp exit
    call reset
    exit:
    xorl %eax, %eax
    inc %eax
    xorl %ebx, %ebx
    int $0x80
    
    
    ---------------------------------------
    
    //sottoprogramma per le righe, ne posto solo uno perchè gli altri sono uguali a parte le etichette e sull'ultimo quello per la riga reset alla fine ho messo l'istruzione ret per uscire dal programma
     
    .section .data
    
    set:
    .ascii "1. Setting automobile:\n"
    
    set_len:
    .long . -set	# lunghezza della stringa in byte
    
    .section .text
    
    .global setting
    .type setting, @function
    
    setting:
    movl $4, %eax	 # 4 corrisponde alla system call "write"
    movl $1, %ebx	 # stampa nello standard output (schermo)
    leal set, %ecx	# puntatore char a ciò che si vuole stampare
    
    movl set_len, %edx	# copia del contenuto della variabile. carica la lunghezza della variabile
    
    int $0x80	 # system call (int sarebbe "interaction"); con 0x80 si lancia una interaction generale 
    # dichiarata (in base ai valori caricati precedentemente nei registri)
    Il programma deve peró visualizzare all'avvio solo la prima riga e permettere di spostarsi da una riga all'altra con la combinazione di tasti (freccia giú + invio) visualizzando peró solo la riga selezionata

    Spero si capisca. Grazie per l'attenzione
    Ultima modifica di MItaly; 08-08-2014 a 00:20

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.