La programmazione del DMC8
3.1 Introduzione alla programmazione in assembly
3.1.6 Le direttive DB e DW
Un click sull'esempio aprirà il codice nel Deeds-McE:
3.2 I metodi di indirizzamento
3.2.4 Indirizzamento INDIRETTO tramite REGISTRO
3.3 La classificazione delle istruzioni
3.3.2 Istruzioni aritmetiche e logiche
3.3.2.1 Istruzioni aritmetiche a 8 bit
Esempio ADD, ADC (somma a 16 bit con indirizzamento indiretto)
Esempio CP (valutazione maggiore/uguale/minore)
Esempio CPL, NEG (complementi a uno e due)
3.3.2.2 Istruzioni aritmetiche a 16 bit
Esempio ADD HL (somma, utilizzando istruzioni a 16 bit)
Esempio di algoritmo di somma a 64 bit
3.3.2.3 Istruzioni logiche
Esempio di utilizzo della istruzione AND (1)
Esempio di utilizzo della istruzione AND (2)
Esempio di utilizzo della istruzione XOR
3.3.2.5 Istruzioni di Incremento e Decremento a 16 bit
Esempio di utilizzo della istruzione DEC a 8 bit
Esempio di utilizzo della istruzione DEC a 16 bit
3.3.3 Istruzioni di rotazione e scorrimento
Esempio di utilizzo dell'istruzione RLC
Esempio di utilizzo dell'istruzione SLA e RL
3.3.4 Istruzioni di manipolazione del bit
Esempio di uso delle istruzioni BIT e RES
3.3.5 Istruzioni di salto
3.3.5.1 Salti incondizionati
3.3.5.3 Salti indiretti
Esempio di utilizzo dei salti indiretti
3.3.5.4 I cicli di ritardo
Esempio di ciclo di ritardo con contatore a 8 bit
Esempio di cicli di ritardo annidati
Esempio di ciclo con conteggio a 16 bit
Verifica dei tempi di ritardo nell'emulatore
3.3.7 Istruzioni di ingresso e uscita
Esempio di utilizzo delle istruzioni IN e OUT (1)
Esempio di utilizzo delle istruzioni IN e OUT (2)
3.5 Esempi di programmazione
3.5.1 Emulazione di logica combinatoria
Un click sullo schema riportato sulla sinistra aprirà nel Deeds-DcS l'esempio di componente/rete logica che viene emulato. Al centro, un click sull'icona permette di aprire nel Deeds-McE il programma descritto nel testo. Con un click sullo schema a destra, è possibile aprire nel Deeds-Dcs un sistema a microprocessore con lo stesso programma già predisposto per verificarne il comportamento mediante simulazione.
3.5.1.1 Porta NOT:
3.5.1.2 Porta AND a due ingressi
Esempio 1:
Esempio 2:
|
Esempio 3:
|
3.5.1.3 Multiplexer a due ingressi
Esempio 1:
Esempio 2:
|
3.5.1.4 Decodificatore (da 3 a 8)
Esempio 1:
Esempio 2:
|
Esempio 3:
|
Esempio 4:
|
3.5.2 Calcolo di un polinomio
Un click sull'icona a sinistra permette di aprire nel Deeds-McE il programma descritto nel testo. Con un click sullo schema a destra, è possibile aprire nel Deeds-DcS un sistema a microprocessore con lo stesso programma già predisposto per verificarne il comportamento mediante simulazione.
3.5.3 Temporizzatore
3.5.4 Macchina a stati finiti
3.6 Esercizi
3.6.1 Emulazione di componenti digitali
Un click sullo schema riportato sulla sinistra aprirà nel Deeds-DcS l'esempio di componente/rete logica da emulare. Al centro, un click sull'icona permette di aprire nel Deeds-McE una traccia del programma da scrivere. Infine, con un click sullo schema a destra, è possibile aprire nel Deeds-Dcs un sistema a microprocessore predisposto opportunamente, in cui caricare il programma da testare. Sarà utile per verificarne il comportamento mediante simulazione per animazione o temporale. Quando applicabile, nella finestra del diagramma temporale una sequenza di test è già impostata e sarà caricata automaticamente.
Nota: dove il componente assegnato è sincronizzato da un clock, si suggerisce di limitare la frequenza di questo ad un valore non più grande di 10 KHz (il componente emulato via software sarà fisiologicamente più lento del componente reale). Nelle tracce qui proposte, la frequenza del clock è stata già impostata convenientemente. Invece, la velocità di animazione del clock sarà da regolare secondo le proprie esigenze.
Esercizio 1:
Esercizio 2:
Esercizio 3:
Esercizio 4:
Esercizio 5:
Esercizio 6:
Esercizio 7:
Esercizio 8:
Esercizio 9:
|
3.6.2 Funzioni aritmetiche
Un click sull'icona riportata sulla sinistra aprirà nel Deeds-McE una traccia del programma da scrivere. Infine, con un click sullo schema a destra, quando presente, è possibile aprire nel Deeds-DcS un sistema a microprocessore predisposto per potervi caricare il programma da testare. Sarà utile per verificarne il comportamento tramite la simulazione.
Esercizio 1 (traccia base):
|
Esercizio 1 (seconda traccia):
Con questa versione del chiamante è possibile calcolare la media tra i due numeri a 32 bit (A31..A0 e B31..B0) impostati sui porti di ingresso e visualizzarla sui porti di uscita (questa versione non è presente sul libro)
Esercizio 2:
Esercizio 3:
Esercizio 4:
3.6.3 Moduli e funzioni riutilizzabili
Un click sull'icona riportata sulla sinistra aprirà nel Deeds-McE una traccia del programma da scrivere. Infine, con un click sullo schema a destra, quando presente, è possibile aprire nel Deeds-DcS un sistema a microprocessore predisposto per potervi caricare il programma da testare. Sarà utile per verificarne il comportamento tramite la simulazione.
Esercizio 1:
Esercizio 2:
Esercizio 3:
Con la seguente versione della rete è possibile animare l'andamento della colonna di LED, grazie ad un contatore, senza cambiare codice assembly (questa soluzione non è presentata sul libro):
Esercizio 4:
Esercizio 5a:
Esercizio 5b:
Esercizio 6:
3.7 Soluzioni
3.7.1 Emulazione di componenti digitali
Un click sull'icona a sinistra permette di aprire nel Deeds-McE il programma descritto nel testo. Con un click sullo schema a destra, è possibile aprire nel Deeds-Dcs il sistema a microprocessore con lo stesso programma già predisposto per verificarne il comportamento mediante simulazione.
Soluzione esercizio 1:
Soluzione esercizio 2:
Soluzione esercizio 3 (prima proposta):
Soluzione esercizio 3 (seconda proposta):
Soluzione esercizio 4:
Soluzione esercizio 5:
Soluzione esercizio 6:
Soluzione esercizio 7:
Soluzione esercizio 8:
Soluzione esercizio 9:
3.7.2 Funzioni aritmetiche
Un click sull'icona a sinistra permette di aprire nel Deeds-McE la soluzione descritta nel testo. Con un click sullo schema a destra, quando presente, è possibile aprire nel Deeds-Dcs il sistema a microprocessore con lo stesso programma già predisposto per verificarne il comportamento mediante simulazione.
Soluzione esercizio 1 (prima proposta):
Soluzione esercizio 1 (seconda proposta):
Con questa versione del chiamante è possibile calcolare la media tra i due numeri a 32 bit (A31..A0 e B31..B0) impostati sui porti di ingresso e visualizzarla sui porti di uscita (questa soluzione non è presente sul libro)
Soluzione esercizio 2:
Soluzione esercizio 3:
Soluzione esercizio 4 (prima proposta):
3.7.3 Moduli e funzioni riutilizzabili
Un click sull'icona a sinistra permette di aprire nel Deeds-McE la soluzione descritta nel testo. Con un click sullo schema a destra, quando presente, è possibile aprire nel Deeds-Dcs il sistema a microprocessore con lo stesso programma già predisposto per verificarne il comportamento mediante simulazione.
Soluzione esercizio 1:
Soluzione esercizio 2:
Soluzione esercizio 3:
Con la seguente versione della rete è possibile animare l'andamento della colonna di LED, grazie ad un contatore, senza cambiare codice assembly (questa soluzione non è presentata sul libro):
Soluzione esercizio 4:
Soluzione esercizio 5b:
Soluzione esercizio 6:
3. Errata Corrige (Cap. 3)
Pag. 209
Listato in assembly, in alto. Si legga:
Pag. 228
Secondo capoverso, in alto. Si legga:
Pag. 234
Esempi in assembly circa le istruzioni SET e RES, al centro pagina. Si legga:
Pag. 257
Esempio in assembly, in basso. Si legga:
Pag. 273
Esempio in assembly, in alto. Si legga:
Pag. 278
Terzultimo capoverso, in basso. Si legga:
Pag. 280
Al centro pagina, si legga:
Pag. 281
Listato in assembly, in alto. Si legga:
Pag. 290
Listato in assembly, soluzione esercizio 2. Si legga:
Pag. 292
Poco sopra il centro pagina, si legga:
Pag. 295
Listato in assembly, alla fine della soluzione dell'esercizio 6. Si legga:
Pag. 299
Listato in assembly, al fondo pagina. Si legga:
Pag. 300
Ultimo capoverso, in fondo alla pagina. Si legga:
Pag. 306
Listato in assembly, al fondo pagina. Si legga:
Pag. 308
Penultimo listato in assembly, dal fondo pagina. Si legga:
Pag. 316
Listato in assembly, al centro pagina. Si legga: