(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