Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
MiniLED di fascia media con local dimming a 192 zone, 144 Hz nativi e audio firmato Devialet. La prova strumentale riscontra colori affidabili e gaming reattivo, per un prodotto molto accessibile e convincente. Ma la soundbar aggiuntiva è quasi d'obbligo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-09-2005, 19:19   #1
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
[Assembly] Domanda varie

Sto studiando un pò di programma assembler per il Motorola 68000, non so se servono queste informazioni, ma ve le ho dette. In questo momento vi pongo solo una domanda, nonostante il titolo, ma essendo solo all'inizio dello studio, ce ne potrebbero essere delle altre.

La codifica dell'istruzione MOVE B,D2 è costituita da una stringa di quanti bit?
Dovrebbe venire 48 bit, perchè quale è il ragionamento?

Il mio ragionamento: visto che dopo il move non c'è il ".B o .L o .W" non si può dire, ma non è così vedendo il risulatato perchè?

ciao spero vivamente nel vostro aiuto
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2005, 10:33   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
MOVE B,D2 è codificata usando 6 byte (48 bit), perché l'opcode contiene:
- 2 byte per l'istruzione;
- 4 byte per l'indirizzo assoluto della variabile B.

Quando non è presente alcun suffisso nell'istruzione, s'intende sempre .W, quindi una word (16 bit).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2005, 10:37   #3
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
e D2 non si considera?

"2 byte per l'istruzione", si riferisca a move? e vale per qualsiasi istruzione assembler?

" 4 byte per l'indirizzo assoluto della variabile B." E' sempre così?


ciao
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2005, 11:33   #4
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
D2 non si considera perché è "inglobato" nell'opcode.

Ogni istruzione è costituita da almeno 2 byte, che ne denotano la tipologia e da cui è possibile capire se sono necessarie altri byte (sempre 2 alla volta: tutte le istruzioni hanno una lunghezza pari).

Nel tuo caso i primi 2 byte indicano che si tratta di una
MOVE.W IndirizzoAssoluto,D2

Quindi si capisce che per completare l'istruzione serve conoscere l'indirizzo assoluto da leggere. Questo si trova, appunto, nei 4 byte che seguono.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2005, 11:47   #5
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
Quote:
Originariamente inviato da cdimauro
D2 non si considera perché è "inglobato" nell'opcode.

Ogni istruzione è costituita da almeno 2 byte, che ne denotano la tipologia e da cui è possibile capire se sono necessarie altri byte (sempre 2 alla volta: tutte le istruzioni hanno una lunghezza pari).
quindi da come mi dici ci sono anche istruzioni per esempio di 4 byte? mi fai un esempio.


poi hai capito che era indirizzo assoluto dalla B?


e poi se il move era ad esempio
MOVE.L B,D2
MOVE.W D1,D2
MOVE.W A0,D2
di quanti bit era l'istruzione?
scusa se ti faccio domande ma vorrei capire a pieno il ragionamento
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2005, 12:04   #6
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da Bandit
quindi da come mi dici ci sono anche istruzioni per esempio di 4 byte? mi fai un esempio.
Anche più di 4 byte: con l'architettura 68020+ si può arrivare a istruzioni lunghe fino a 22 byte.

Col 68000 mi sembra che il massimo si raggiunga con una
MOVE.L IndirizzoAssoluto,IndirizzoAssoluto
oppure
MOVE.L IndirizzoAssoluto,#Costante

E dovremmo essere sui 10 byte (2 di opcode, 4 per l'indirizzo assoluto, 4 per la costante nel secondo caso).

Istruzioni di 4 byte:
MOVE.W Registro,#Costante
MOVE.W (RegistroIndirizzi, RegistroDati.Lunghezza, Costante8Bit),Registro
ecc. ecc. ecc.
Quote:
poi hai capito che era indirizzo assoluto dalla B?
Sì, perché è un identificatore, per cui serve il suo indirizzo per potervi accedere.
Quote:
e poi se il move era ad esempio
MOVE.L B,D2
MOVE.W D1,D2
MOVE.W A0,D2
di quanti bit era l'istruzione?
48, 16 e 16 rispettivamente.
Quote:
scusa se ti faccio domande ma vorrei capire a pieno il ragionamento
Se ti serve veramente lavorare coi 68000 in assembly, direi che è meglio un piccolo corso di assembly 68000, piuttosto che delle "lezioni a rate".

Quanto meno ti fai un'idea sull'architettura, e man mano i tuoi dubbi si dissolveranno...

Comunque per me non c'è problema: sui 68000 c'ho lavorato per parecchi anni, per cui dovrei essere ancora in grado di darti una mano...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2005, 12:12   #7
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
grazie
allora il problema mio è quello di sapere ad ogni cosa quanti bit corrispondono.
c'è una tabella a riguardo? o se è breve me la potresti fare tu.

per esempio come mai MOVE.L B,D2 è sempre di 48 bit se c'è il .L? perchè B è indirizzo assoluto e quindi qualunque cosa (.L/.W/.B) ci metti è sempre 16 bit.
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2005, 12:18   #8
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Perché la dimensione del dato occupa 2 bit, che sono memorizzati all'interno dell'istruzione (nei primi 2 byte).

Una tabella sarebbe un po' lunghetta e francamente non mi ricordo nemmeno il pattern della NOP.

Comunque se cerchi su internet "68000 opcode table" o roba simile dovresti trovare tutto ciò che ti serve.

Al limite ti posso dare una mano se ti serve imparare a programmare in assembly 68000, ma una guida veloce di riferimento comunque ti serve.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2005, 12:21   #9
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
ho l'instruction set, ma non mi sembra di averlo visto.
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2005, 12:23   #10
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
ho trovato questo ma come si legge? c'entra o non c'entra?
http://goldencrystal.free.fr/M68kOpcodes.pdf
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2005, 09:57   #11
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Sì, è quella la tabella. Molto compatta, ma dovrebbe bastare per tirare fuori gli opcode delle istruzioni che ti servono.

Per curiosità: ma tu non hai intenzione di imparare a programmare i 68000, giusto? Perché in genere non interessa assolutamwnte lo studio degli opcode...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2005, 10:40   #12
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
devo saper la parte teorica ed un pò di pratica
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2005, 10:53   #13
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
Ho purtroppo un altra domanda: Le estensioni dei due indirizzi su 16 bit $2011 e $C044 su indirizzi a 32 bit generano rispettivamente gli indirizzi......quale indirizzi generano? il risultato è

$00002011 e $FFFFC044, perchè?
Ho ragionato così: vengono aggiunti solo degli zeri all'inizio che non hanno nessun significato... non capisco quindi come faccia a risultare FFFF all'inizio del secondo.......
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2005, 10:54   #14
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Ho capito: hai qualche esame da sostenere...

Per qualunque cosa, chiedi pure: compatibilmente coi miei impegni vedrò di aiutarti...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2005, 10:56   #15
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da Bandit
Ho purtroppo un altra domanda: Le estensioni dei due indirizzi su 16 bit $2011 e $C044 su indirizzi a 32 bit generano rispettivamente gli indirizzi......quale indirizzi generano? il risultato è

$00002011 e $FFFFC044, perchè?
Ho ragionato così: vengono aggiunti solo degli zeri all'inizio che non hanno nessun significato... non capisco quindi come faccia a risultare FFFF all'inizio del secondo.......
Hai usato l'indirizzamento assoluto "corto" (che usa soltanto 16 bit).
In questo caso il bit più significativo dei 16 bit viene preso, e copiato nei 16 bit alti per formare l'indirizzo assoluto "completo", a 32 bit.

E' tutto normale, non ti preoccupare.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2005, 11:15   #16
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
Rispondo ai 2 interventi precedenti, ringraziandoti della disponibilità, anche se spero di far meno domande possibili, perchè le cose preferisco capirle e risolverle con gli "strumenti" che ho (anche perchè credo di fare + rapidamente), quindi se faccio delle domande è proprio perchè non so dove mettere le mani e spero che qualche anima pia (come te) possa darmi una mano.


Ritornando alla domanda:
perchè partendo da $2011 e $C044 si arriva a $00002011 e $FFFFC044?

nel primo, il bit + significativo è 2, perchè viene esteso con lo zero?
e nel secondo, perchè con la F se il bit + significativo + C?
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2005, 11:27   #17
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
$2 e $C sono i nibble (più significativi), quindi un gruppo di 4 bit, e non un bit.
$2 = %0010 -> bit più significativo (il più a sinistra) = 0
$C = %1100 -> bit più significativo (idem come sopra) = 1
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2005, 11:36   #18
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
quindi devo estendere il nibble + significativo, su 4 bit....


p.s. ma il nibble è metà di qualcosa, giusto? mi sembra nibble=1/2 byte
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2005, 11:42   #19
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Sì, il nibble è mezzo byte.

Non devi estendere il nibble, ma il bit più significativo. Per semplificare, se vuoi ottenere i 16 bit sotto forma di nibble, ti basta fare questo:
MSB = %0 -> nibble = %0000 = $0 -> 16 bit alti = $0000
MSB = %1 -> nibble = %1111 = $F -> 16 bit alti = $FFFF
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2005, 11:46   #20
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9434
si si avevo sbagliato a digitare

ok credo di aver capito, grazie
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
SpaceX Starship: Ship 40 ha eseguito un ...
Redmi Note 17 a un passo dal debutto, ma...
Gli aumenti di prezzo del PS Plus potreb...
Almeno 64 GB di RAM per giocare? Il caso...
Gemini si integrerà con le auto e potrà ...
Addio a OxygenOS di OnePlus e alla Realm...
Intel conferma l'aumento dei prezzi su C...
In vendita Withings BodyFit, molto più d...
Inkterface: Steam Machine ospita un pann...
Stare seduti oltre 30 minuti di fila aum...
A Milano l'Italia ha firmato la sovranit...
Cos'è PeerTube, la piattaforma di...
In 12 articoli TOP c'è il meglio ...
La pirateria è l'unica tutela per...
Roomba Plus 516 Combo in offerta a 479€:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v