[Linguaggio assembler]: alcune domande

Messaggioda Bandit » 09/09/2005, 11:03

Ho da poco incominciato astudiare il linguaggio assembler per il motorola 68000.Per il momento vi pongo solo 2 domande, nonostante il titolo, per� conoscendomi ed essendo all'inizio, ce ne saranno sicuramente delle altre.
Allora veniamo "ai punti":
1) La codifica dell'istruzione MOVE B,D2 � costituita da una stringa di quanti bit? come faccio a saperlo? quale � il ragionamento? il risultato riporta 48 bit: come ha fatto?



2) 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�?
Grazie anticipatemente
Bandit
Senior Member
Senior Member
 
Messaggio: 320 di 1662
Iscritto il: 01/02/2005, 12:27
Località: Italy

Messaggioda luca.barletta » 10/09/2005, 17:53

Per la prima domanda dovresti consultare il data sheet del motorola 68000; i bit totali sono dati dall'op code della MOVE, dai bit usati per codificare il registro B e dagli 8 bit del numero esadecimale D2.

Per la seconda domanda: l'indirizzo viene esteso aggiungendo degli 0 se il bit più significativo è 0, viene riempito con 1 altrimenti; infatti si ha:

2011 --> 0011000000010001 (binario) diventa 00002011 (hex)
C044 --> 1100000001000100 (binario) diventa FFFFC044 (hex)

Luca B.
Avatar utente
luca.barletta
Moderatore globale
Moderatore globale
 
Messaggio: 77 di 4341
Iscritto il: 21/10/2002, 20:09

Messaggioda Bandit » 16/09/2005, 12:32

Ho un 'istruzione C++ pari a void (int VETT1,int VETT2,int riemp, int &min,int &mag)
gli offsett come si devono mettere, dopo aver inizializzato il frame pointer e salvato l'indirizzo di ritorno sullo stack?

VETT1 offset 8
VETT2 " 10
riemp " 12
min "
mag "

e poi?
Bandit
Senior Member
Senior Member
 
Messaggio: 333 di 1662
Iscritto il: 01/02/2005, 12:27
Località: Italy


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite