(Microsoft PowerPoint - CE1-2011

Transcript

(Microsoft PowerPoint - CE1-2011
10/05/2011
Corso di Calcolatori Elettronici I
A.A. 2010-2011
Esempi di programmi
assembly per MC68000
(prima serie)
Lezione 22
Prof. Roberto Canonico
Università degli Studi di Napoli Federico II
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica (allievi A-DE+Q-Z)
Corso di Laurea in Ingegneria dell’Automazione
Ciclo di sviluppo semplificato di programmi
assembly MC68000 nel sistema didattico ASIM
Digitazione del
programma
Editor
Assembler
Moduli
oggetto
e file list
ASIMTOOL
Programma
sorgente .a68
Macchina
Loader
target
ASIM
1
10/05/2011
Esercizio - Moltiplicazione 2 interi
*
Programma per moltiplicare MCND e MPY
*
*
MULT
LOOP
DONE
PROD
MPY
MCND
ORG
$8000
CLR.W
MOVE.W
BEQ
ADD.W
ADD.W
BNE
MOVE.W
STOP
ORG
DS.W
DC.W
DC.W
END
D0
MPY,D1
DONE
MCND,D0
#-1,D1
LOOP
D0,PROD
#$2700
$8200
1
3
4
MULT
D0 accumula il risultato
D1 e' il contatatore di ciclo
Se il contatore e' zero e' finito
Aggiunge MCND al prodotto parziale
Decrementa il contatore
e ripete il giro
Salva il risultato
Arresta esecuzione programma
Riserva spazio di memoria per PROD
Definisce il valore di MPY
Definisce il valore di MCND
Fine ass., salto a entry point
AsimTool
2
10/05/2011
Analisi del file LIS
PLC
00000000
00000000
00008000
00008000
00008000
00008002
00008008
0000800C
00008012
00008016
00008018
0000801E
00008200
00008200
00008202
00008204
00008206
contenuto
4240
3239
6700
D079
0641
66F4
33C0
4E72
label opcode operandi
00008202
000E
00008204
FFFF
00008200
2700
0003
0004
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
*
*
Programma per moltiplicare MCND e MPY
ORG
*
MULT
LOOP
DONE
PROD
MPY
MCND
$8000
CLR.W
MOVE.W
BEQ
ADD.W
ADD.W
BNE
MOVE.W
STOP
ORG
DS.W
DC.W
DC.W
END
D0
MPY,D1
DONE
MCND,D0
#-1,D1
LOOP
D0,PROD
#$2700
$8200
1
3
4
MULT
Symbol Table
MULT
LOOP
$8000
$800C
MPY
MCND
$8202
$8204
DONE
PROD
$8018
$8200
Asim: programma caricato in
memoria
CLR.W
D0
MOVE.W
MPY,D1
3
10/05/2011
Esercitazione
• Provare il programma mult2ints.a68 che moltiplica due interi
attraverso un ciclo di addizioni ripetute
• Eseguire il programma sul simulatore ASIM e sperimentare:
–
–
–
–
–
–
–
–
–
–
L’effetto di DC e la convenzione big-endian del processore 68000
L’effetto dell’istruzione CLR .W su registro di 32 bit
L’effetto dell’istruzione MOVE da memoria a registro
L’effetto dell’istruzione BEQ sul PC
L’effetto dell’istruzione ADD tra memoria e registro
L’effetto dell’istruzione ADD tra immediato e registro
L’effetto dell’istruzione BNE sul PC
L’effetto dell’istruzione JMP sul PC
L’effetto dell’istruzione MOVE da registro a memoria
Confrontare la codifica in l/m delle istruzioni di salto
Esercitazione
• Nell’esempio precedente, effettuare le seguenti
sostituzioni ed osservarne gli effetti
DONE
MOVE.W
D0,PROD
Salva il risultato
PROD
PROD
DS.W
1
Riserva spazio di memoria per
DONE
MOVE.L
D0,PROD
Salva il risultato
PROD
PROD
DS.L
1
Riserva spazio di memoria per
L= long (32 bit) W= word (16 bit) B= byte (8 bit)
4