Discussione:
Assembly 68000
(troppo vecchio per rispondere)
Max
2010-05-15 13:06:18 UTC
Permalink
Sono agli inizi e si capirà dalla domanda che farò...


Ho questo codice da alcuni appunti:


org $3100
move.w data,d0
add.w d0,d0
loop bra loop
org $3200
data dc.w 4





Come sposto "data"(che se ho capito bene mi rappresenta l'indirizzo di
memoria in cui abbiamo l'istruzione dc.w 4) in in d0 se viene
dichiarata dopo nel codice?
--
Bonus di 25 euro su betfair.it, codice da inserire: AAAACGWFG
Vai sul mio sito(in fondo alla pagina) per altri dettagli:
http://digilander.libero.it/maxxam99/
mmm
2010-05-15 14:29:03 UTC
Permalink
Post by Max
Sono agli inizi e si capirà dalla domanda che farò...
org $3100
move.w data,d0
add.w d0,d0
loop bra loop
org $3200
data dc.w 4
Come sposto "data"(che se ho capito bene mi rappresenta l'indirizzo di
memoria in cui abbiamo l'istruzione dc.w 4) in in d0 se viene
dichiarata dopo nel codice?
gli assemblatori in genere sono "multipasso", ovvero sono in grado di
risolvere correttamente anche simboli "futuri" ( al contrario di altri
linguaggi di programmazione )

nota bene :

move.w data,d0 carica in d0 il contenuto della locazione di memoria ( a
16 bit ) identificata da data cioe' 4 e non l'indirizzo ( ovvero il
valore del simbolo data ) che nel tuo caso specifico e' $3200
Max
2010-05-15 14:44:02 UTC
Permalink
Post by mmm
move.w data,d0 carica in d0 il contenuto della locazione di memoria ( a
16 bit ) identificata da data cioe' 4 e non l'indirizzo ( ovvero il
valore del simbolo data ) che nel tuo caso specifico e' $3200
Se invece fosse stato move.w data,a0 avrebbe spostato l'indirizzo?

Grazie per l'aiuto!
--
Bonus di 25 euro su betfair.it, codice da inserire: AAAACGWFG
Vai sul mio sito(in fondo alla pagina) per altri dettagli:
http://digilander.libero.it/maxxam99/
mmm
2010-05-15 15:33:14 UTC
Permalink
Post by Max
Post by mmm
move.w data,d0 carica in d0 il contenuto della locazione di memoria ( a
16 bit ) identificata da data cioe' 4 e non l'indirizzo ( ovvero il
valore del simbolo data ) che nel tuo caso specifico e' $3200
Se invece fosse stato move.w data,a0 avrebbe spostato l'indirizzo?
NO la sintassi sotto questo punto e' [ DEVE! ] essere coerente, comunque
in a0 ci va il valore contenuto alla locazione data

move.l #data,a0 carica il valore del simbolo data ( e quindi l'indirizzo
) nel registro

lo stesso lo avresti ottenuto con
lea data,a0 ( Load Effective Address )

pero' queste cose si imparano dai testi e non facendo "domande" in giro ;-)

tieni conto che l'assembler non ha il concetto di variabile dei
linguaggi di alto livello ma quello di "simbolo" ed al limite del tipo
di storage associato al simbolo ( vedi la differenza tra "ds" e "dc" )
e' poi l'uso del simbolo nella istruzione che ne caratterizza il
significato ( anche in base al modo d'indirizzamento )

occhio, inoltre che il 68000 non e' del tutto ortogonale (
istruzioni-registri-modi d'indirizzamento )

mi sembra infatti che
lea data,d0 NON sia valido
Post by Max
Grazie per l'aiuto!
P.S. devo decidermi a montarmi una scheda prototipo col 68000 visto che
me ne avanzano un paio :-)
Max
2010-05-15 16:39:13 UTC
Permalink
Post by mmm
pero' queste cose si imparano dai testi e non facendo "domande" in giro ;-)
Ma hai ragione 100 volte, il problema è che al momento non c'è l'ho un
testo che ti prenda per mano e ti insegni l'assembly del 68000(al corso
non hanno consigliato nessun libro di assembly, solo il manuale del
68000), vado avanti(molto male) con lo scarno materiale che ho: appunti,
esempi sparsi e cercando qualcosa in rete.


Anzi non è che sapresti consigliarmi un testo fatto bene, coinciso(aimè
il tempo per studiare è poco) e non troppo avanzato?

Al mio livello(infarinatura di assembly come parte di un corso di
calcolatori da 6 crediti) dovrei imparare a(per lo scritto):

fare con una certa facilità piccoli algoritmi del tipo: alloca una
matrice linearizzata accettata in ingresso(e magari fare qualche
operazione su di essa), calcola il numero di Fibonacci per l'intero X, ecc
Scrivere in c e passare procedure in assembly, usare gli switch e i led
del 68000(che ancora non ho capito che fanno, tra l'altro) , scrivendo
driver che li gestiscono, accendendoli e spegnendoli secondo la traccia
data(magari tu mo stai sorridendo, ma per me al momento ciò che ho
scritto è arabo :-))
Post by mmm
P.S. devo decidermi a montarmi una scheda prototipo col 68000 visto che
me ne avanzano un paio :-)
Noi all'università li vediamo solo sul simulatore :-P
--
Bonus di 25 euro su betfair.it, codice da inserire: AAAACGWFG
Vai sul mio sito(in fondo alla pagina) per altri dettagli:
http://digilander.libero.it/maxxam99/
Roberto Montaruli
2010-05-16 20:28:51 UTC
Permalink
Post by Max
Post by mmm
pero' queste cose si imparano dai testi e non facendo "domande" in giro ;-)
Ma hai ragione 100 volte, il problema è che al momento non c'è l'ho un
testo che ti prenda per mano e ti insegni l'assembly del 68000(al corso
non hanno consigliato nessun libro di assembly, solo il manuale del
68000), vado avanti(molto male) con lo scarno materiale che ho: appunti,
esempi sparsi e cercando qualcosa in rete.
Guarda: tutti gli assembly sono uguali.
In base al processore (e quindi al set di istruzioni) devi solo
verificare
a) quanti registri ci sono
b) che capacita' hanno i registri
c) quanta memoria riesci ad indirizzare
d) qual e' l'istruzione per caricare in un certo registro un certo
valore
e) qual e' l'istruzione per caricare in un certo registro il valore di
un indirizzo
f) qual e' l'istruzione per caricare in un certo indirizzo un certo
valore
g) qual e' l'istruzione per caricare in un certo indieizzo il valore
di un registro
h) quali sono le istruzioni di somma, and, or, xor, etc...
i) quali sono le istruzioni per i salti condizionati
j) eventuali istruzioni specifiche di quel processore

E con queste puoi fare tutto!
Nessuno ti chiedera' mai di scrivere codice ottimizzato quindi alla
peggio potresti anche ignorare i registri e usare sempre indirizzi di
memoria per le variabili.

Eventualmente puoi decidere a priori che tipo di filosofia usare per
passare parametri alle subroutine, se un sistema piu' assembly
oriented, basato sui registri, o se adottare un sistema C like e
passare le variabili tramite stack.
Enrico Franchi
2010-05-17 13:52:22 UTC
Permalink
Post by Roberto Montaruli
Nessuno ti chiedera' mai di scrivere codice ottimizzato quindi alla
peggio potresti anche ignorare i registri e usare sempre indirizzi di
memoria per le variabili.
Se non fosse che per molte ISA non puoi operare direttamente nella
memoria ma prima devi caricare in registro, idem con il passaggio di
argomenti alle "procedure" se vuoi simulare le calls del C (che erano
nel programma). Non tutto il mondo e' x86.
--
-riko
Roberto Montaruli
2010-05-17 19:45:55 UTC
Permalink
Post by Enrico Franchi
Post by Roberto Montaruli
Nessuno ti chiedera' mai di scrivere codice ottimizzato quindi alla
peggio potresti anche ignorare i registri e usare sempre indirizzi di
memoria per le variabili.
Se non fosse che per molte ISA non puoi operare direttamente nella
memoria ma prima devi caricare in registro, idem con il passaggio di
argomenti alle "procedure" se vuoi simulare le calls del C (che erano
nel programma). Non tutto il mondo e' x86.
Curiosamente i processori x86 sono gli unici che non ho mai
programmato in assembly.
Ho scritto in assembly per Z80, 6502, 8051, 8080, 68000... ma su x86
al massimo ho disassemblato.
Enrico Franchi
2010-05-17 23:05:41 UTC
Permalink
Post by Roberto Montaruli
Curiosamente i processori x86 sono gli unici che non ho mai
programmato in assembly.
Ho scritto in assembly per Z80, 6502, 8051, 8080, 68000... ma su x86
al massimo ho disassemblato.
E io ti ribadisco che dire che in tutte le architetture puoi operare
direttamente nella memoria e' come dire che tutti gli esseri umani hanno
l'uccello. ;)
--
-riko
Roberto Montaruli
2010-05-18 07:44:46 UTC
Permalink
Post by Enrico Franchi
Post by Roberto Montaruli
Curiosamente i processori x86 sono gli unici che non ho mai
programmato in assembly.
Ho scritto in assembly per Z80, 6502, 8051, 8080, 68000... ma su x86
al massimo ho disassemblato.
E io ti ribadisco che dire che in tutte le architetture puoi operare
direttamente nella memoria e' come dire che tutti gli esseri umani hanno
l'uccello. ;)
Non avevo detto proprio cosi'.
Avevo detto (o la mia intenzione era di dire) che si poteva benissimo
ragionare ad un livello un pelo superiore dall'architettura del
processore, ignorare i registri e far finta di poter leggere e
scrivere direttamente in memoria.

Ok, leggere presuppone un registro in cui ospitare il dato
MOV $pippo, D0
(copia il contenuto di pippo in D0)

ma per scrivere si puo' benissimo ragionare in
MOV $pippo, pluto
(copia il contenuto di pippo in pluto)

che poi, anche se non esistesse la singola istruzione, si puo' sempre
fare una macro di due o piu' istruzioni che usano i registri, ma alla
fine il risultato e' quello.

Certo, non si ottimizza, ma mi pare di intuire che la finalita'
didattica della cosa sia quella di ragionare in un generico assembly,
e non di scrivere codice ultra ottimizzato per motorola.
Enrico Franchi
2010-05-18 18:09:25 UTC
Permalink
Post by Roberto Montaruli
Certo, non si ottimizza, ma mi pare di intuire che la finalita'
didattica della cosa sia quella di ragionare in un generico assembly,
e non di scrivere codice ultra ottimizzato per motorola.
Ora capisco il tuo punto di vista. Devo riflettere se mi piace. ;)
--
-riko
Max
2010-05-18 19:44:39 UTC
Permalink
Post by Enrico Franchi
Post by Roberto Montaruli
Certo, non si ottimizza, ma mi pare di intuire che la finalita'
didattica della cosa sia quella di ragionare in un generico assembly,
e non di scrivere codice ultra ottimizzato per motorola.
Ora capisco il tuo punto di vista. Devo riflettere se mi piace. ;)
Si ma adesso smettetela di litigare e datemi una mano! :-P

Sulla guida del simulatori di cui parlavo nell'altro post leggo:

.B, .W, .L, .S. .D, .X

Come suffissi di molte istruzioni, le prime tre so cosa
significano(byte, word, long word), ma le altre?

Thanks ;-)
--
Bonus di 25 euro su betfair.it, codice da inserire: AAAACGWFG
Vai sul mio sito(in fondo alla pagina) per altri dettagli:
http://digilander.libero.it/maxxam99/
Max
2010-05-18 20:04:03 UTC
Permalink
Post by Max
Post by Enrico Franchi
Post by Roberto Montaruli
Certo, non si ottimizza, ma mi pare di intuire che la finalita'
didattica della cosa sia quella di ragionare in un generico assembly,
e non di scrivere codice ultra ottimizzato per motorola.
Ora capisco il tuo punto di vista. Devo riflettere se mi piace. ;)
Si ma adesso smettetela di litigare e datemi una mano! :-P
.B, .W, .L, .S. .D, .X
Come suffissi di molte istruzioni, le prime tre so cosa
significano(byte, word, long word), ma le altre?
Thanks ;-)
Perdonatemi il messaggio scritto con i piedi(la fretta...), comunque
senza un testo per principianti trovo davvero dura andare avanti, ad
esempio:

che significano questi simboli in assembly?
$ % #


Son riuscito a capire(credo) solo il cancelletto: rappresenta un dato
immediato direttamente codificato nell'istruzione.

Per il resto buio :-(
--
Bonus di 25 euro su betfair.it, codice da inserire: AAAACGWFG
Vai sul mio sito(in fondo alla pagina) per altri dettagli:
http://digilander.libero.it/maxxam99/
Max
2010-05-18 20:26:41 UTC
Permalink
Post by Max
Son riuscito a capire(credo) solo il cancelletto: rappresenta un dato
immediato direttamente codificato nell'istruzione.
Per il resto buio :-(
Che mal di testa, guardate questa istruzione:

Loading Image...

I disegni mostrano la memoria prima e dopo l'istruzione in mezzo.

Ma l'indirizzo non dovrebbe essere memorizzato a partire dal primo zero?

E sopratutto che sono quegli zero? Bit, Byte? Bohh!


Ho perso due ore e sono più confuso di prima, davvero non so da dove
iniziare :-(

Buonanotte e scusate questi post multipli, ma sono figli del mio
scoramento... :-(
--
Bonus di 25 euro su betfair.it, codice da inserire: AAAACGWFG
Vai sul mio sito(in fondo alla pagina) per altri dettagli:
http://digilander.libero.it/maxxam99/
Max
2010-05-18 20:34:36 UTC
Permalink
Post by Max
E sopratutto che sono quegli zero? Bit, Byte? Bohh!
Forse se quella è la notazione esadecimale, 00 mi rappresentano la
locazione di un byte in memoria, esatto?

resta il dubbio del perchè non parte all'indirizzo che indica
l'istruzione, ossia: 00000008


A ribuonanotte comunque, stasera me la suono e me la canto da solo :-)
--
Bonus di 25 euro su betfair.it, codice da inserire: AAAACGWFG
Vai sul mio sito(in fondo alla pagina) per altri dettagli:
http://digilander.libero.it/maxxam99/
Andrea D'Amore
2010-05-19 05:46:33 UTC
Permalink
Post by Max
Post by Max
E sopratutto che sono quegli zero? Bit, Byte? Bohh!
Gli zero sono degli zero, sono cifre esadecimali quindi "pesano" mezzo
byte.
Post by Max
Forse se quella è la notazione esadecimale, 00 mi rappresentano la
locazione di un byte in memoria, esatto?
A quali degli zeri in figura ti riferisci di preciso? Quelli della
colonna contents non indicano locazioni di memoria, quelli della colonna
address sì.
Post by Max
resta il dubbio del perchè non parte all'indirizzo che indica
l'istruzione, ossia: 00000008
Parte proprio da lì e memorizza l'operando #$10030 che a memoria
dovrebbe essere immediato, simbolo #, ed esadecimale, simbolo $,
estendendone le cifre a long word, cioè a 32 bit o 4 byte, 00 01 00 30.
Vedi che il contenuto è esattamente quello.

Possibile che tu non abbia trovato un tutorial 68k in rete? Io avevo un
librettino molto simpatico, forse Jackson editore dei tempi andati, sul
solo 68000.
Max
2010-05-19 15:08:22 UTC
Permalink
Post by Andrea D'Amore
A quali degli zeri in figura ti riferisci di preciso? Quelli della
colonna contents non indicano locazioni di memoria, quelli della colonna
address sì.
Nel 68000 l'indirizzamento è per byte (in una memoria totalmente
lineare), esatto?
Ad ogni valore dell'indirizzo corrisponde(in contents) mezza parola,
quindi 00 significa che non è stato memorizzato nulla, oppure che
qualunque cosa abbiamo memorizzato il valore binario è: 00000000


Dimmi solo se credi abbia scritto qualche inesattezza o castroneria
Post by Andrea D'Amore
Post by Max
resta il dubbio del perchè non parte all'indirizzo che indica
l'istruzione, ossia: 00000008
Parte proprio da lì e memorizza l'operando #$10030 che a memoria
dovrebbe essere immediato, simbolo #, ed esadecimale, simbolo $,
estendendone le cifre a long word, cioè a 32 bit o 4 byte, 00 01 00 30.
Vedi che il contenuto è esattamente quello.
Grazie, adesso è chiaro!
Post by Andrea D'Amore
Possibile che tu non abbia trovato un tutorial 68k in rete? Io avevo un
librettino molto simpatico, forse Jackson editore dei tempi andati, sul
solo 68000.
Di cartaceo non ho nulla :-(

L'istruzione che ho riportato è presa da un vecchio libro di 500 pagine
che ho trovato sul p2p, e che provavo a leggere, ossia questo:

http://digilander.libero.it/maxxam99/Pics/2010-05-19_164840.jpg

Però non mi sta piacendo tantissimo(credo sia un testo che risalga a
pochi anni dopo l'immissione sul mercato del 68000), ma il mio è un
giudizio molto parziale, ho letto solo le prime 50 di pagine.

(se hai tempo mi interesserebbe una tua opinione riguardo le dispense
che ho riportano nella risposta a mmmm)


Cmq ragazzi l'inizio con l'assembly è dura, bisogna iniziare a ragionare
come la macchina e non come un umano, ve li ricordate i vostri inizi? ;-)

Grazie infinite Andrea, ciao.
Marco Mariani
2010-05-19 15:34:32 UTC
Permalink
Post by Max
Cmq ragazzi l'inizio con l'assembly è dura, bisogna iniziare a ragionare
come la macchina e non come un umano, ve li ricordate i vostri inizi? ;-)
Si', forse trovi ancora in giro qualche manuale di 68000 per Amiga.
Alcuni di questi erano fatti bene, e indirizzati a teenager (*), non ad
ingegneri. Generalmente la parte dedicata all'hardware (copper, blitter,
etc) e' separata e la puoi ignorare.



(*) si', il teenager pre-youtube riusciva a stare attento per piu' di un
minuto. strano, eh?
Enrico Franchi
2010-05-19 23:27:21 UTC
Permalink
Post by Marco Mariani
(*) si', il teenager pre-youtube riusciva a stare attento per piu' di un
minuto. strano, eh?
Credo che lo sfacelo sia successo ben prima di youtube.
Adesso nei forum fanno domande che potrebbero risolvere *provando* due
righe nell'interprete interattivo.
--
-riko
Andrea D'Amore
2010-05-20 06:42:59 UTC
Permalink
Post by Enrico Franchi
Credo che lo sfacelo sia successo ben prima di youtube.
È una rivoluzione cominciata a botta di BimBumBam.
mmm
2010-05-19 13:39:50 UTC
Permalink
Post by Max
Post by Max
Son riuscito a capire(credo) solo il cancelletto: rappresenta un dato
immediato direttamente codificato nell'istruzione.
Per il resto buio :-(
http://digilander.libero.it/maxxam99/Pics/2010-05-18_221957.jpg
I disegni mostrano la memoria prima e dopo l'istruzione in mezzo.
Ma l'indirizzo non dovrebbe essere memorizzato a partire dal primo zero?
NI ( si e no )

cerca a tal proposito il concetto di endianess ( big - little )

un processore che gestisce parallelismi di memoria differente ( accedere
alla memoria a 8 - 16 -32 bit ) puo' ( a livello di progetto hardware )
scegliere di organizzare i byte di una word in piu' di una maniera
( a volte in maniera poco intuitiva )

comunque e' un problema marginale in quanto tu tenderai ad accedere ad
una word sempre come ad una word e non userai i singoli byte ( a parte
alcuni casi particolari )
Post by Max
E sopratutto che sono quegli zero? Bit, Byte? Bohh!
tutti quei numeri sono in notazione esadecimale,per cui ogni 0
corrisponde a 4 bit, gli zeri in piu' servono per un "buon"
incolonnamento dei numari
Roberto Montaruli
2010-05-19 17:57:17 UTC
Permalink
Post by Max
Post by Max
Son riuscito a capire(credo) solo il cancelletto: rappresenta un dato
immediato direttamente codificato nell'istruzione.
Per il resto buio :-(
http://digilander.libero.it/maxxam99/Pics/2010-05-18_221957.jpg
Riportare in testo non si fa molta fatica e aiuta la comprensione:

Address cont.
0008 00
0009 00
000A 00
000B 00

MOVE.L #$10030, 8

Muove il valore esadecimale $10030 inteso come long, quindi 4 byte
( 00 01 00 30)
a partire dall'indirizzo 8

Address cont.
0008 00
0009 01
000A 00
000B 30
Post by Max
Ma l'indirizzo non dovrebbe essere memorizzato a partire dal primo zero?
Quale indirizzo? L'istruzione memorizza un dato a partire da un certo
indirizzo, nella fattispecie l'indirizzo 8.
Post by Max
E sopratutto che sono quegli zero? Bit, Byte? Bohh!
Quali zero? Sono tutti byte. I bit non si rappresentano singolarmente.
Post by Max
Ho perso due ore e sono più confuso di prima, davvero non so da dove
iniziare :-(
Andiamo male.

Partiamo dal principio.
Sai che cos'e' una ram?

Ogni cella di ram e' un byte.
Ogni cella di ram ha un indirizzo.
Se tu vuoi scrivere un dato in un certo indirizzo devi usare
l'istruzione MOVE
MOVE #dato, indirizzo

Il dato e' espresso sempre come numero, poi sono problemi tuoi
rappresentare correttamente quel numero.

Ma questi sono tutti presupposti generici di un generico assembly.

Il 68000 e' un processore come tanti, col suo set di istruzioni, tra
le quali ci sono le istruzioni per scrivere in memoria.

Mi pare che il tuo problema sia quello di comprensione dell'assembly
in generale e non quello del 68000 in particolare.

Procurati una bella tabella degli ascii come queste
http://en.wikipedia.org/wiki/ASCII
cosi hai sempre sottomano per ogni numero tra 0 e 255 la sua
rappresentazione in decimale, esadecimale, ottale, binario e ascii.
mmm
2010-05-19 13:27:12 UTC
Permalink
Post by Max
che significano questi simboli in assembly?
$ % #
Son riuscito a capire(credo) solo il cancelletto: rappresenta un dato
immediato direttamente codificato nell'istruzione.
$ -> costante esadecimale
% -> costante binaria ???

tutte le alte costanti sono da considerarsi in formato decimale
Post by Max
Per il resto buio :-(
mmm
2010-05-19 13:25:20 UTC
Permalink
Post by Max
Si ma adesso smettetela di litigare e datemi una mano! :-P
vale comunque la massima RTFM
Post by Max
.B, .W, .L, .S. .D, .X
Come suffissi di molte istruzioni, le prime tre so cosa
significano(byte, word, long word), ma le altre?
a naso direi

S single precision floating point ( 32 bit )
D double precision floating point ( 64 bit )
X extended precision fl. point ( 80 bit )

tieni conto che gli assemblatori 680x0 in genere supportano anche i
coprocessoti matematici ( come chip aggiuntivo 68881-68882 o interno nei
68040 - 68060 )
Max
2010-05-19 14:52:54 UTC
Permalink
Post by mmm
Post by Max
Si ma adesso smettetela di litigare e datemi una mano! :-P
vale comunque la massima RTFM
Sicuramente, e l'ho messa in atto in qualsiasi altra materia, ma qui di
testi fatti bene per un processore ormai morto, non è che ne trovi molti
in giro...
Non riesco a trovarne uno che risponda ai miei dubbi.

Il manuale del 68000 è troppo avanzato per me, avevo trovato un libro
in inglese su Emule, ed è troppo prolisso e non chiarissimo...ho letto
le prime 50 pagine(ne sono in 500) e non mi piace moltissimo, il testo è
questo:

Loading Image...


Ieri sera ho trovato queste dispense:
http://www.grid.unina.it/~finizio/

Se puoi, dai un' occhiata ai capitoli 3 e 4, mi paiono fatti benino,
appena posso me li leggo per intero, am se mi dici che sono fatti male
mi risparmi la fatica ;-)
Post by mmm
Post by Max
.B, .W, .L, .S. .D, .X
Come suffissi di molte istruzioni, le prime tre so cosa
significano(byte, word, long word), ma le altre?
a naso direi
S single precision floating point ( 32 bit )
D double precision floating point ( 64 bit )
X extended precision fl. point ( 80 bit )
tieni conto che gli assemblatori 680x0 in genere supportano anche i
coprocessoti matematici ( come chip aggiuntivo 68881-68882 o interno nei
68040 - 68060 )
Grazie di tutto.
Roberto Montaruli
2010-05-19 18:02:31 UTC
Permalink
Post by Max
Sicuramente, e l'ho messa in atto in qualsiasi altra materia, ma qui di
testi fatti bene per un processore ormai morto, non è che ne trovi molti
in giro...
Morto?
Dove hai letto che e' morto?
Prova a chiedere in qualche gruppo di amighisti (anche su usenet) e
vedrai come e' tuttaltro che morto il buon motorola.

Comunque googolando ho trovato questo:
http://tict.ticalc.org/docs/68kguide.txt

Mi pare che ci sia tutto il necessario.
Andrea D'Amore
2010-05-20 06:43:46 UTC
Permalink
In article
Post by Roberto Montaruli
http://tict.ticalc.org/docs/68kguide.txt
Ah giusto, la TI-89 :-)
RobertoA
2010-05-27 09:24:29 UTC
Permalink
Post by Max
Sicuramente, e l'ho messa in atto in qualsiasi altra materia, ma qui di
testi fatti bene per un processore ormai morto, non è che ne trovi molti
in giro...
Morto?
Dove hai letto che e' morto?
Prova a chiedere in qualche gruppo di amighisti (anche su usenet) e
vedrai come e' tuttaltro che morto il buon motorola.
Comunque googolando ho trovato questo:
http://tict.ticalc.org/docs/68kguide.txt
Mi pare che ci sia tutto il necessario.
--------------------------

Dalle nostre parti fanno i videoiocchi con i 68000

Max
2010-05-15 16:40:10 UTC
Permalink
Post by mmm
pero' queste cose si imparano dai testi e non facendo "domande" in giro ;-)
Ma hai ragione 100 volte, il problema è che al momento non ce l'ho un
testo che ti prenda per mano e ti insegni l'assembly del 68000(al corso
non hanno consigliato nessun libro di assembly, solo il manuale del
68000), vado avanti(molto male) con lo scarno materiale che ho: appunti,
esempi sparsi e cercando qualcosa in rete.


Anzi non è che sapresti consigliarmi un testo fatto bene, coinciso(aimè
il tempo per studiare è poco) e non troppo avanzato?

Al mio livello(infarinatura di assembly come parte di un corso di
calcolatori da 6 crediti) dovrei imparare a(per lo scritto):

fare con una certa facilità piccoli algoritmi del tipo: alloca una
matrice linearizzata accettata in ingresso(e magari fare qualche
operazione su di essa), calcola il numero di Fibonacci per l'intero X, ecc
Scrivere in c e passare procedure in assembly, usare gli switch e i led
del 68000(che ancora non ho capito che fanno, tra l'altro) , scrivendo
driver che li gestiscono, accendendoli e spegnendoli secondo la traccia
data(magari tu mo stai sorridendo, ma per me al momento ciò che ho
scritto è arabo :-))
Post by mmm
P.S. devo decidermi a montarmi una scheda prototipo col 68000 visto che
me ne avanzano un paio :-)
Noi all'università li vediamo solo sul simulatore :-P
--
Bonus di 25 euro su betfair.it, codice da inserire: AAAACGWFG
Vai sul mio sito(in fondo alla pagina) per altri dettagli:
http://digilander.libero.it/maxxam99/
mmm
2010-05-15 18:03:05 UTC
Permalink
Post by Max
Post by mmm
pero' queste cose si imparano dai testi e non facendo "domande" in giro ;-)
Ma hai ragione 100 volte, il problema è che al momento non ce l'ho un
testo che ti prenda per mano e ti insegni l'assembly del 68000(al corso
non hanno consigliato nessun libro di assembly, solo il manuale del
68000), vado avanti(molto male) con lo scarno materiale che ho: appunti,
esempi sparsi e cercando qualcosa in rete.
il manuale del 68000 sarebbe piu' che sufficiente
Post by Max
Anzi non è che sapresti consigliarmi un testo fatto bene, coinciso(aimè
il tempo per studiare è poco) e non troppo avanzato?
Wakerly , microcomputer architecture and programming, e' anche
abbastanza didattico e lo trovi, in genere, nelle biblioteche
universitarie tratta sia dell'hardware sia di come programmare in
linguaggio macchina
Post by Max
Al mio livello(infarinatura di assembly come parte di un corso di
fare con una certa facilità piccoli algoritmi del tipo: alloca una
matrice linearizzata accettata in ingresso(e magari fare qualche
operazione su di essa), calcola il numero di Fibonacci per l'intero X, ecc
Scrivere in c e passare procedure in assembly, usare gli switch e i led
del 68000(che ancora non ho capito che fanno, tra l'altro) , scrivendo
driver che li gestiscono, accendendoli e spegnendoli secondo la traccia
data(magari tu mo stai sorridendo, ma per me al momento ciò che ho
scritto è arabo :-))
magari prova a pensare in C SEMPLICE e poi codifica in asm, il 68000 ha
molti registri e riesci a fare quasi tutto con loro

il 68000 ha l'I/O mappato in memoria, per te saranno solo delle
locazioni di memoria ad indirizzo prefissato dove andare a leggere e
scrivere, poi ogni bit di quella locazione avra' un "significato" per
l'hardaware ( led0 ledN , switch ... )
Post by Max
Post by mmm
P.S. devo decidermi a montarmi una scheda prototipo col 68000 visto che
me ne avanzano un paio :-)
Noi all'università li vediamo solo sul simulatore :-P
IDEM , tutto il resto e' venuto con i miei sforzi, comunque non e'
sempre cosi'
Max
2010-05-15 18:43:30 UTC
Permalink
Post by mmm
il manuale del 68000 sarebbe piu' che sufficiente
Se hai già pratica di assembly si, ma se parti da zero mi pare che sia
troppo arido e tecnico.

Cmq gli darò un'altra occhiata più approfondita, magari l'ho giudicato
troppo velocemente come non alla mia portata.
Post by mmm
IDEM , tutto il resto e' venuto con i miei sforzi, comunque non e'
sempre cosi'
Grazie per i consigli, il ng mi pare un po' morto, ma tu resta qui eh,
che in futuro mi sa che mi sarai ancora utile! :-P
--
Bonus di 25 euro su betfair.it, codice da inserire: AAAACGWFG
Vai sul mio sito(in fondo alla pagina) per altri dettagli:
http://digilander.libero.it/maxxam99/
Continua a leggere su narkive:
Loading...