Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    9

    Leggere una stringa in assembly-emu8086: come fare?

    Vorrei ricevere un info riguardo alla lettura di una stringa inserita da tastiera in linguaggio assembly. Sono un neofita e non ho capito una cosa. Utilizzo l'interrupt 21h / AH= 0Ah una volta definito un buffer. Il problema mi sorge quando vado ad inserire questi caratteri, in quale registro vengono memorizzati? Come posso estraporarli? Come riesco a memorizzare in un registro a mio piacimento la stringa che inserisco da tastiera? Non mi è chiara questa cosa. Faccio un esempio

    #make_com#
    org 100h

    mov dx, offset buffer
    mov ah, 0Ah
    int 21h

    ret
    buffer db 3, ?, 3 dup (" ")

    Ammettiamo che io come stringa inserissi "12" , questa stringa dove viene memorizzata? E' la variabile buffer che subisce una modifica o no?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Come esplicitamente indicato la funzione accetta l'indirizzo di memoria da cui inizia un buffer.

    E' in quella zona di memoria che troverai i dati in input. Più precisamente, nel secondo byte c'è il numero di caratteri accettati in input e a partire dal terzo byte, i dati
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    9
    Originariamente inviato da oregon
    Come esplicitamente indicato la funzione accetta l'indirizzo di memoria da cui inizia un buffer.

    E' in quella zona di memoria che troverai i dati in input. Più precisamente, nel secondo byte c'è il numero di caratteri accettati in input e a partire dal terzo byte, i dati
    Grazie mille! Sei stato di grande aiuto. E invece se volessi visualizzare a video nuovamente la stringa introdotta da tastiera? Come dovrei fare?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Puoi usare la funzione 9 della INT 21h

    Attenzione che questa prevede che la stringa termini con $
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.