Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    45

    programma in assembly

    ciao!!
    devo scrivere un programma che legga una stringa data e controllarla se è nulla o no.
    La lettura e il controllo della stringa deve avvenire nel sottoprogramma chiamato dal programma principale.. riporto qui sotto il codice del sottoprogramma
    codice:
    COPYSTR:	
    	LD	DE,STR  ;carica la stringa sul registro 
    <loop>	
    	INT 	DE     ;legge il registro
           	LD	HL,DE   ;carica il contenuto di DE in HL
    	INC	HL        ;incrementa i due registri
    	INC	DE
    	LD	DE,NULL ;controlla se è nulla la stringa 
    	CP	DE
    	JP	Z,LOOP
    	RET
    mi potete dire perchè mi da errore su DE??
    eg

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Che Assembly è ? (forse Z80 ?)

    Quale errore hai ? In quale linea ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    45
    è riferito al DMC8,
    l'errore mi compare sulla quarta riga, quando deve leggere il registro.
    eg

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non lo conosco ma non importa ...

    Cosa dovrebbe fare l'istruzione

    INT DE

    ?

    E non mi hai detto quale errore ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5

    Re: programma in assembly

    Originariamente inviato da egla
    COPYSTR:
    LD DE,STR ;carica la stringa sul registro
    <loop>
    INT DE ;legge il registro
    LD HL,DE ;carica il contenuto di DE in HL
    INC HL ;incrementa i due registri
    INC DE
    LD DE,NULL ;controlla se è nulla la stringa
    CP DE
    JP Z,LOOP
    RET
    [/code]
    mi potete dire perchè mi da errore su DE??
    <loop> per indicare una label è sbagliato.
    INT come mnemonico non esiste.
    CP DE non si può fare.
    E comunque con quel codice non stai controllando se è nulla la stringa, dovresti leggere i vari byte della stringa e confrontarli con NULL (immagino), non DE quindi, ma il contenuto di HL. Precisa meglio cosa si intende per stringa "nulla".

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    45
    grazie delle risposte...
    il loop e il comando di lettura(IN) ho sbagliato a scriverlo svista mia..
    io dovrei leggere la stringa e memorizzare il contenuto su un registro, dopo di che effettuare il controllo bit per bit??
    per fare il controllo mi è utile usare la maschera??
    eg

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    45
    Oregon il DMC8 è un microprocessore,che non corrisponde ad un vero dispositivo fisico in grado di funzionare grazie ad un emulatore.
    Nasce dal Z80 escludendo i registri finalizzati alla gestione di memorie dinamiche, registri alternativi..


    codice:
    loop:	
    	IN 	A,(STR)     ;legge la stringa
           	INC	HL        ;incrementa i due registri
    	INC	DE
    	LD	A,NULL
    controllo della stringa lo posso fare come ho scritto,cioè con LD A,NULL??
    eg

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da egla
    Oregon il DMC8 è un microprocessore ...
    Sì ... l'avevo capito ...

    Ma l'istruzione

    IN

    non serve all'I/O da dispositivi ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    45
    IN se non sbaglio legge la stringa
    eg

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    La IN serve a leggere un byte da una periferica. Se poi questa è la tastiera allora ottieni il tasto pressato ma non ho idea della situazione in cui ti trovi (dal punto di vista delle premesse imposte per il tuo esercizio).
    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.