Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    44

    [assembly] aprire un file e leggere dei caratteri

    ciao a tutti,
    qualcuno mi spiegherrebe come aprire un file e a leggere dei caratteri?

    fin ora ho fatto cosi:

    PUSH O
    PUSH rom (alla fine del file
    .SECT.DATE
    rom: .ASCIZ "rom.txt")
    PUSH _OPEN
    SYS
    ora dovrei controllare se lo trovato e se è stato aperto bene. poi leggere dei caratteri.

    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Con quale sistema? Quale CPU? Quale file system?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    44
    si scusa... assembly 8088 e il sistema operativo e ubuntu

  4. #4
    Devi utilizzare le apposite syscall:
    open per aprire
    write/read per leggere ed infine close per liberare la memoria.

    codice:
    %define SYS_OPEN     5 ; 5 è il numero della syscall open
    %define SYS_WRITE   4 ; 4 è il numero della syscall write
    %define SYS_READ     3 ; 3 è il numero della syscall read
    %define O_RDONLY    0
    %define O_WRONLY   1
    %define O_RDWR        2
    
    section .data
       filename db 'file.txt'
    
    section .bss
       text resb 1 ;; Alloca un byte
    
    section .text
       global _start
    
    _start:
       mov eax, SYS_OPEN ;int open(const char *filename, int mode)
       mov ebx, filename
       mov ecx, O_RDWR
    
       int 0x80
    
       ;; Legge un byte
       mov ebx, eax ;salva il filedescriptor
       mov eax, SYS_READ
       mov ecx, text
       mov edx, 1
    
       int 0x80
    
       mov eax, 1 ;; chiama exit
       mov ebx, 0
    
       int 0x80
    Il codice non lo provato, ma è solo per dare un'idea.


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 © 2024 vBulletin Solutions, Inc. All rights reserved.