Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Architettura degli elaboratori
 programma in assembler

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
jack1 Inserito il - 15/05/2009 : 00:26:37
Salve a tutti,desideravo alcuni consigli per quanto riguarda la programmazione in assembler.
Ho cercato di trovare alcuni programmi gratuiti che si trovano in rete per i miei scopi ma ancora non ci capisco molto.
Ciò che mi occorrerebbe ,sarebbe quello di creare un programma in linguaggio assembler (possibilmente a 8 bit come per esempio con lo Z80) per poi renderlo eseguibile su un emulatore spectrum a 48k.
Il programma dovrebbe emulare un pannello stile l'insegna di una farmacia,in cui la croce cambia colore ogni tot secondi,per esempio ogni 3 sec, e abbia l'effetto di rotazione,inserendo anche la data scorrevole.Sapete come posso fare?o quali registri dovrei usare? Grazie in anticipo.

P.S. Se qualcuno è in grado di darmi qualche pezzo di codice su come impostare il programma e in che modo renderlo eseguibile,sarei davvero grato.
Conto sul vostro aiuto :)
8   U L T I M E    R I S P O S T E    (in alto le più recenti)
jack1 Inserito il - 26/05/2009 : 17:44:12
Salve,scusate,volevo fare una domanda riguardo sempre quest'argomento.
Essendo molto complicatgo il fatto di inserire pixel per pixel nel compilatore,non sarebbe possibile convertire qualche immagine in codice assembly? Oppure magari utilizzare delle immagini e creare delle sequenzencon le immagini stesse.So che col x86 si può fare,volevo sapere se si può fare anche con z80.Grazie,ciao :)
jack1 Inserito il - 17/05/2009 : 02:16:39
Ciao Virgilio,la mia necessità è dovuta solo a scopo didattico.Tu saresti in grado di aiutarmi?Ad ogni modo quello che mi interesserebbe di più è il codice assembler per z80 del programma che ho esposto nel mio primo post.
Ciao e buona Domenica ;)
Virgilio Inserito il - 16/05/2009 : 22:45:13
Per curiosità, come mai vorresti fare un lavoro per un computer vintage, come lo Spectrum?
ekkekkazz Inserito il - 16/05/2009 : 19:46:20
Prego.
Crepi il lupo (chissa' quando). :\
jack1 Inserito il - 16/05/2009 : 16:56:08
Grazie,considerando il fatto che sto cominciando da zero,sei stato abbastanza nte e gentile.Avevo cercato addirittura di far girare il programma preso come esempio,cioè il tetris,direttamente sull'emulatore spectrum 48k.Avevo letto che si possono caricare oltre ai file SNA anche quelli in .Z80 ma,al momento dell'esecuzione,trova errore in due variabili.Forse il programma avrà qualche errore?..mah,probabile magari che mi ci dovrò dedicare di più.
Ti ringrazio per avermi risposto e in bocca al lupo per la tua tesi ;)
ekkekkazz Inserito il - 16/05/2009 : 15:29:30
Allora, diciamo che avrei una tesi da mandare avanti ma attendo un'zione anch'io. :|

Ti dico quello che ho fatto (ovviamente non ho risolto il tuo problema :P).

Esistono diversi emulatori dello spectrum in giro, questi caricano dei file SNA (degli snapshot).

Quindi il processo e' ASM -> OBJ -> SNA. Poi devi far partire l'SNA con un simulatore.

Partiamo dal codice.
Su quel link ti dice qual e' la mappa della memoria:


0000-3FFF:	ROM (16K)
4000-57FF:	Memoria grafica (display file)
5800-5AFF:	Mappa colori (attributes)
5B00-5BFF:	Buffer di stampa
5C00-5CB5:	Variabili di sistema
...
8000-????:	RAM libera
FF58-FFFF:	Caratteri grafici utente


Il tuo codice comincia ad 8000h byte dall'inizio, perche' fino ad 8000h sei nel sistema.
La visualizzazione della croce e dei colori la fai scrivendo nell'area di memoria che va da 4000 a 5AFF.
Ovviamente li' ogni byte ha una sua posizione sullo schermo (per capire come e' strutturato lo schermo devi studiare sul link dove spiega che e' diviso in righe, linee, pixel, ecc).


Lo skeleton del programma utilizzando TASM e' questo:


.ORG	$8000

ENTRY 
; codice, codice, codice 
.END


Per esempio in mezzo ho messo qualche riga presa dal link sopra.


.ORG	$8000

ENTRY   LD	HL,$4000	; carica l'indirizzo del display file
        LD	(HL),170	; 170 in binario vale %10101010
        LD	HL,$5800	; carica l'indirizzo del display file
        LD	(HL),10	 	; 10 in binario: %00 001 010
        RET			; ritorna da dove aveva lasciato 
.END


Su quel link trovi davvero tutto l'instruction set, c'e' anche un esempio di tetris che ti puo' essere utile (vedi in fondo).


Per la compilazione, devi usare dei comandi.
Scarica TASM, spostati nella directory dov'e' tasm.exe, compila con:


C:DOCUME~1ADMINI~1Desktop\test>tasm -80 test.txt


dove test.txt e' un file di testo col codice.
Avrai in output test.obj e test.lst.

Ora devi usare il tool di quel tizio li' sempre nel primo link, cioe' specld.exe, che ti converte un OBJ in SNA.


C:DOCUME~1ADMINI~1Desktop\test>Specld.exe test.OBJ 32768


32768 e' il base address (8000 in hex), cioe' il punto in cui comincia il tuo codice.
Ora hai l'SNA.
jack1 Inserito il - 16/05/2009 : 12:11:16
Ehi,grazie. Ho trovato interessante il primo link.Diciamo che è proprio quello che fa per me.In pratica dovrei trovare un assemblatore per Z80,oppure scrivere il codice e trasformarlo in file oggetto (obj) con TASM per poi farlo funzionare su spectrum (es. 48k).
Il link lo conoscevo già,ma non avevo idea di come iniziare ad implementare il programma per creare una Croce da insegna farmaceutica e visualizzarla in spectrum.
Grazie per la risposta e spero di avere un'ulteriore illuyminazione ;) Ciao,a presto.
ekkekkazz Inserito il - 16/05/2009 : 10:58:51
Ciao,
sinceramente di Z80 non ne so nulla, non ho mai provato a fare una cosa del genere. Pero' dovresti controllare che se il tuo assemblatore supporta quel formato, in genere un assemblatore supporta diversi formati.

Ti do un paio di entry point :>

http://it.geocities.com/antonio_di_stefano/Informatica/z80.htm
Qui trovi tutto, dal set di istruzioni ad un simulatore ad un assemblatore vero (TASM) che supporta Z80.

http://z80.msk.ru/
Questo e' un assemblatore specifico per Z80 basato su NASM.

Magari se hai qualche problema piu' specifico metti il codice.

Ciao!

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,06 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000