Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    16

    [Assembly 8086] numero di caratteri scritti in input

    ragazzi mi serve una mano,non sto riuscendo a capire una cosa
    per quanto riguarda la gestione delle stringhe,l'indirizzo della stringa viene memorizzato in DSX;il primo byte della locazione di memoria rappresenta la dimensione del buffer,mentre il secondo byte rappresenta il numero di caratteri effettivamente letti
    è proprio del secondo byte che non capisco
    se mi serve sapere il numero di caratteri letti come devo fare?
    help me

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    DSX ? Non mi pare che ci sia un registro DSX ...

    Di quali stringhe parli ? Di quale codice ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    16
    scusa intendevo ds:dx non DSX
    comunque in una traccia come questa



    mi serve sapere il numero effettivo di caratteri,altrimenti non posso andare avanti
    come faccio a saperlo?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma quali funzioni usate per l'input ?

    Hai scritto del codice ? Mostra quello che hai fatto, così si commenta e ti si aiuta ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    16
    allora,per l'input usiamo gli interrupt,per ora ho scritto questo

    #MAKE_COM#
    ORG 100h

    MOV BX,OFFSET MSG
    PUSH BX ;inserire nello stack l'indirizzo di ritorno dell'offset
    CALL STAMPASTRINGA
    POP BX

    INSERIMENTO:
    MOV DX,offset STRINGA
    MOV AH,0ah
    int 21h

    RET
    ;------------VARIABILI----------


    MSG DB "<inserisci una stringa:>","$"
    STRINGA DW ?

    ;------------PROCEDURE----------
    STAMPASTRINGA PROC


    PUSH BP;bp,base pointer,punta alla base dello stack,perciò prima di farlo puntare alla cima dello stack ce lo salviamo
    MOV BP,SP;ora bp punta alla cima dello stack
    MOV DX,[BP+4]
    MOV AH,09H ;per la stampa a video
    INT 21H ;richiama l'interrupt per la stampa a video
    POP BP;ripristiniamo BP
    RET
    STAMPASTRINGA ENDP



    in questo modo visualizzo il messaggio "inserisci una stringa" e la inserisco tramite l'interrupt...
    ora dovrei trovare il numero di caratteri

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    L'area per la stringa va opportunamente dichiarata

    codice:
    MSG DB "<inserisci una stringa:>","$"  
    STR_MAX  DB 20
    STR_CNT  DB 0
    STR_DAT  DB 20 DUP(?)
    e quindi usata con

    codice:
    INSERIMENTO:
    MOV DX,offset STR_MAX
    MOV AH,0ah
    int 21h 
    
    MOV CL, STR_CNT
    per avere il numero di caratteri in CL.
    E' stato usato il valore 20 come numero massimo di caratteri inseribili
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    16
    scusami ho avuto un'altra dimenticanza
    per la stringa la dichiariamo ad esempio come
    STRINGA DB 10,?,10 dup(' ')

    cmq se metto al massimo 20 caratteri inseribili,potrebbero anche esserne stati inseriti di meno

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dichiara la stringa come ti ho mostrato ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    16
    il fatto è che quelle istruzioni non le abbiamo mai utilizzate....ci sono altri modi??

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma quali istruzioni ? Non ci sono istruzioni particolari ... quelle sono label per le varie parti della stringa ...
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.