![Page 1: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/1.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
DIS - Università degli Studi di Napoli “Federico II”
CORSO DI CALCOLATORI ELETTRONICI ICdL Ingegneria Biomedica (A-I)
ASSEMBLER 68Kparte 1
![Page 2: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/2.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Supporti didattici
Fadini – Savy, Fond. Inf. 2 – parte . III, cap. III
Dispense: Cap3.pdf
![Page 3: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/3.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
MC68000 (68000 transistor): processore CISC Motorola (1979) molto avanzato per l’epoca (architettura a 16/32 bit, a differenza degli altri CISC che erano ancora a 16 bit).
Arrivati tardi per i PC (IBM Compatibili), per i quali era già stato scelto l’8086dell’Intel, il 68000 si rivolse con successo al mercato:
* workstation ( Apollo, Sun fino al 1987, Silicon Graphic fino al 1986 )
* home-computer (Apple, Amiga ed Atari nel corso della seconda metàdegli anni ’80 e dei primi anni ’90).
MC 68000
![Page 4: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/4.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Architettura del processore MC 68000
ALU
SRTEMP
Registri generaliD0-D7,A0-A7
Interfaccia memoria
ed I/O
PC EAR
Bus di memoria e
di I/O16 x 32
32
32 32
16
CCR8 8
Control unit
IR
![Page 5: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/5.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Caratteristiche principali
Il microprocessore 68000 presenta le seguenti caratteristiche:
• 8 registri dati più 8 registri indirizzi general purpose a 32 bit;
• Data bus a 16 bit;
• Address bus a 24 bit ( spazio di indirizzamento diretto di 16 MB);
• 5 tipi principali di dati per le operazioni;
• Memory Mapped I/O;
• 14 modalità di indirizzamento;
• 2 livelli di privilegio: user e supervisor;
• 7 livelli di priorità per le interruzioni esterne.
![Page 6: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/6.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
MC68000: modello di programmazione
31 16 15 8 7 0D0D1D2D3D4D5D6D7A0A1A2A3A4A5A6A7
PCSRT S I2 I1 I0 CVZNX
![Page 7: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/7.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Assembler del processore MC68000
Formato delle istruzioni ASM68K: etichetta cod. operativo operando/i commento
(label) (opcode) (operand(s)) (remark)
Le istruzioni assembler si dividono in tre categorie:
»Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto
»Load-time operations - sono direttive utilizzate dal programma caricatoreall’atto del caricamento in memoria del codice oggetto
»Run-time operations - sono le istruzioni del programma in linguaggio macchina da eseguire
![Page 8: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/8.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
L'assemblatore mette a disposizione:» codici mnemonici – forma simbolica delle istruzioni del processor
CLR (CLEAR)MOVE (MOVE)BEQ (BRANCH ON EQUAL)ADD (ADD)
» pseudo codici - direttive per il processo di assemblaggio del programma
ORG (ORIGIN)DS (DEFINE STORAGE)DC (DEFINE CONSTANT)END (END ASSEMBLY)
Il linguaggio Assembler del processore MC 68000
![Page 9: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/9.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Processo di assemblaggio in due passi
L'assemblatore scandisce il programma sorgente due volte:» Nel primo passo costruisce la tabella dei simboli
» Nel secondo passo risolve i riferimenti “in avanti”
Riferimento “in avanti”– l’operando compare prima che il suo valore sia stato definito
![Page 10: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/10.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Convenzioni usate dall’assemblatore
• Gli spazi tra i campi fungono esclusivamente da separatori (vengono ignorati dall’assemblatore)
• Una linea che inizi con un asterisco (*) è una linea di commento
• Nelle espressioni assembly, gli argomenti di tipo numerico si intendono espressi in:– notazione decimale, se non diversamente specificato
– notazione esadecimale, se preceduti dal simbolo “$”
• Nell’indicazione degli operandi, il simbolo “#” denota un indirizzamento immediato
![Page 11: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/11.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Un programma assembly
* Programma per sommare i primi 17 interi*
ORG $8000START CLR.W SUM
MOVE.W ICNT,D0ALOOP MOVE.W D0,CNT
ADD.W SUM,D0MOVE.W D0,SUMMOVE.W CNT,D0ADD.W #-1,D0BNE ALOOPJMP SYSA
SYSA EQU $8100CNT DS.W 1SUM DS.W 1IVAL EQU 17ICNT DC.W IVAL
END START
![Page 12: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/12.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Un programma assembly
* Programma per sommare i primi 17 interi*
ORG $8000START CLR.W SUM
MOVE.W ICNT,D0ALOOP MOVE.W D0,CNT
ADD.W SUM,D0MOVE.W D0,SUMMOVE.W CNT,D0ADD.W #-1,D0BNE ALOOPJMP SYSA
SYSA EQU $8100CNT DS.W 1SUM DS.W 1IVAL EQU 17ICNT DC.W IVAL
END START
commento
![Page 13: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/13.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Un programma assembly
* Programma per sommare i primi 17 interi*
ORG $8000START CLR.W SUM
MOVE.W ICNT,D0ALOOP MOVE.W D0,CNT
ADD.W SUM,D0MOVE.W D0,SUMMOVE.W CNT,D0ADD.W #-1,D0BNE ALOOPJMP SYSA
SYSA EQU $8100CNT DS.W 1SUM DS.W 1IVAL EQU 17ICNT DC.W IVAL
END START
label
![Page 14: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/14.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Un programma assembly
* Programma per sommare i primi 17 interi*
ORG $8000START CLR.W SUM
MOVE.W ICNT,D0ALOOP MOVE.W D0,CNT
ADD.W SUM,D0MOVE.W D0,SUMMOVE.W CNT,D0ADD.W #-1,D0BNE ALOOPJMP SYSA
SYSA EQU $8100CNT DS.W 1SUM DS.W 1IVAL EQU 17ICNT DC.W IVAL
END START
codici operativie pseudo codici
![Page 15: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/15.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Un programma assembly
* Programma per sommare i primi 17 interi*
ORG $8000START CLR.W SUM
MOVE.W ICNT,D0ALOOP MOVE.W D0,CNT
ADD.W SUM,D0MOVE.W D0,SUMMOVE.W CNT,D0ADD.W #-1,D0BNE ALOOPJMP SYSA
SYSA EQU $8100CNT DS.W 1SUM DS.W 1IVAL EQU 17ICNT DC.W IVAL
END START
operandi
![Page 16: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/16.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Il lavoro dell’assemblatore
00000000 1 * Programma per sommare i primi 17 interi00000000 2 *00008000 3 ORG $800000008000 4279 00008032 4 START CLR.W SUM00008006 3039 00008034 5 MOVE.W ICNT,D00000800C 33C0 00008030 6 ALOOP MOVE.W D0,CNT00008012 D079 00008032 7 ADD.W SUM,D000008018 33C0 00008032 8 MOVE.W D0,SUM0000801E 3039 00008030 9 MOVE.W CNT,D000008024 0640 FFFF 10 ADD.W #-1,D000008028 66E2 11 BNE ALOOP0000802A 4EF9 00008100 12 JMP SYSA00008030 =00008100 13 SYSA EQU $810000008030 14 CNT DS.W 100008032 15 SUM DS.W 100008034 =00000011 16 IVAL EQU 1700008034 0011 17 ICNT DC.W IVAL00008036 18 END START
![Page 17: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/17.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Il lavoro dell’assemblatore
La tabella dei simboli:
START 8000 CNT 8030 IVAL 0011ALOOP 800C SUM 8032 ICNT 8034
Symbol Table
![Page 18: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/18.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
PLC (variabile interna dell’assemblatore):
Punta alla locazione di memoria in cui andrà caricata l’istruzione assemblata
Viene inizializzata dallo pseudo-operatore “origin” (ORG)
Durante il processo di assemblaggio, il suo valore è aggiornato in funzione del codice operativo o pseudo-codice
E’ possibile, all’interno di un programma, fare riferimento al suo valore corrente mediante il simbolo " * "
Il Program Location Counter (PLC)
![Page 19: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/19.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Il lavoro dell’assemblatore
00000000 1 * Programma per sommare i primi 17 interi00000000 2 *00008000 3 ORG $800000008000 4279 00008032 4 START CLR.W SUM00008006 3039 00008034 5 MOVE.W ICNT,D00000800C 33C0 00008030 6 ALOOP MOVE.W D0,CNT00008012 D079 00008032 7 ADD.W SUM,D000008018 33C0 00008032 8 MOVE.W D0,SUM0000801E 3039 00008030 9 MOVE.W CNT,D000008024 0640 FFFF 10 ADD.W #-1,D000008028 66E2 11 BNE ALOOP0000802A 4EF9 00008100 12 JMP SYSA00008030 =00008100 13 SYSA EQU $810000008030 14 CNT DS.W 100008032 15 SUM DS.W 100008034 =00000011 16 IVAL EQU 1700008034 0011 17 ICNT DC.W IVAL00008036 18 END START
valore corrente del PLC
![Page 20: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/20.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Il lavoro dell’assemblatore
00000000 1 * Programma per sommare i primi 17 interi00000000 2 *00008000 3 ORG $800000008000 4279 00008032 4 START CLR.W SUM00008006 3039 00008034 5 MOVE.W ICNT,D00000800C 33C0 00008030 6 ALOOP MOVE.W D0,CNT00008012 D079 00008032 7 ADD.W SUM,D000008018 33C0 00008032 8 MOVE.W D0,SUM0000801E 3039 00008030 9 MOVE.W CNT,D000008024 0640 FFFF 10 ADD.W #-1,D000008028 66E2 11 BNE ALOOP0000802A 4EF9 00008100 12 JMP SYSA00008030 =00008100 13 SYSA EQU $810000008030 14 CNT DS.W 100008032 15 SUM DS.W 100008034 =00000011 16 IVAL EQU 1700008034 0011 17 ICNT DC.W IVAL00008036 18 END START
istruzione assemblata istruzione simbolica
![Page 21: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/21.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Pseudo-operatori ORG e END
ORG viene usato per inizializzare il PLC Sintassi: ORG $HEXADDR
END viene usato per terminare il processo di assemblaggio e saltare all’entry point del programma
Sintassi: END LABEL
![Page 22: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/22.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Il lavoro dell’assemblatore
00000000 1 * Programma per sommare i primi 17 interi00000000 2 *00008000 3 ORG $800000008000 4279 00008032 4 START CLR.W SUM00008006 3039 00008034 5 MOVE.W ICNT,D00000800C 33C0 00008030 6 ALOOP MOVE.W D0,CNT00008012 D079 00008032 7 ADD.W SUM,D000008018 33C0 00008032 8 MOVE.W D0,SUM0000801E 3039 00008030 9 MOVE.W CNT,D000008024 0640 FFFF 10 ADD.W #-1,D000008028 66E2 11 BNE ALOOP0000802A 4EF9 00008100 12 JMP SYSA00008030 =00008100 13 SYSA EQU $810000008030 14 CNT DS.W 100008032 15 SUM DS.W 100008034 =00000011 16 IVAL EQU 1700008034 0011 17 ICNT DC.W IVAL00008036 18 END START
![Page 23: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/23.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Il lavoro dell’assemblatore
00000000 1 * Programma per sommare i primi 17 interi00000000 2 *00008000 3 ORG $800000008000 4279 00008032 4 START CLR.W SUM00008006 3039 00008034 5 MOVE.W ICNT,D00000800C 33C0 00008030 6 ALOOP MOVE.W D0,CNT00008012 D079 00008032 7 ADD.W SUM,D000008018 33C0 00008032 8 MOVE.W D0,SUM0000801E 3039 00008030 9 MOVE.W CNT,D000008024 0640 FFFF 10 ADD.W #-1,D000008028 66E2 11 BNE ALOOP0000802A 4EF9 00008100 12 JMP SYSA00008030 =00008100 13 SYSA EQU $810000008030 14 CNT DS.W 100008032 15 SUM DS.W 100008034 =00000011 16 IVAL EQU 1700008034 0011 17 ICNT DC.W IVAL00008036 18 END START
![Page 24: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/24.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
00000000 1 * Programma per sommare i primi 17 interi00000000 2 *00008000 3 ORG $800000008000 4279 00008032 4 START CLR.W SUM00008006 3039 00008034 5 MOVE.W ICNT,D00000800C 33C0 00008030 6 ALOOP MOVE.W D0,CNT00008012 D079 00008032 7 ADD.W SUM,D000008018 33C0 00008032 8 MOVE.W D0,SUM0000801E 3039 00008030 9 MOVE.W CNT,D000008024 0640 FFFF 10 ADD.W #-1,D000008028 66E2 11 BNE ALOOP0000802A 4EF9 00008100 12 JMP SYSA00008030 =00008100 13 SYSA EQU $810000008030 14 CNT DS.W 100008032 15 SUM DS.W 100008034 =00000011 16 IVAL EQU 1700008034 0011 17 ICNT DC.W IVAL00008036 18 END START
Il lavoro dell’assemblatore
![Page 25: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/25.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Pseudo-operatori EQU - DS - DC
DS (Define Storage) viene usato per incrementare il PLC in modo da riservare spazio di memoria per una variabileSintassi: LABEL DS.W AMOUNT
DC (Define Constant) viene usato per inizializzare il valore di una variabile Sintassi: LABEL DC.B VALUE
EQU viene usato per stabilire un’identitàSintassi: LABEL EQU VALUE
![Page 26: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/26.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
00000000 1 * Programma per sommare i primi 17 interi00000000 2 *00008000 3 ORG $800000008000 4279 00008032 4 START CLR.W SUM00008006 3039 00008034 5 MOVE.W ICNT,D00000800C 33C0 00008030 6 ALOOP MOVE.W D0,CNT00008012 D079 00008032 7 ADD.W SUM,D000008018 33C0 00008032 8 MOVE.W D0,SUM0000801E 3039 00008030 9 MOVE.W CNT,D000008024 0640 FFFF 10 ADD.W #-1,D000008028 66E2 11 BNE ALOOP0000802A 4EF9 00008100 12 JMP SYSA00008030 =00008100 13 SYSA EQU $810000008030 14 CNT DS.W 100008032 15 SUM DS.W 100008034 =00000011 16 IVAL EQU 1700008034 0011 17 ICNT DC.W IVAL00008036 18 END START
Il lavoro dell’assemblatore
![Page 27: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/27.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
00000000 1 * Programma per sommare i primi 17 interi00000000 2 *00008000 3 ORG $800000008000 4279 00008032 4 START CLR.W SUM00008006 3039 00008034 5 MOVE.W ICNT,D00000800C 33C0 00008030 6 ALOOP MOVE.W D0,CNT00008012 D079 00008032 7 ADD.W SUM,D000008018 33C0 00008032 8 MOVE.W D0,SUM0000801E 3039 00008030 9 MOVE.W CNT,D000008024 0640 FFFF 10 ADD.W #-1,D000008028 66E2 11 BNE ALOOP0000802A 4EF9 00008100 12 JMP SYSA00008030 =00008100 13 SYSA EQU $810000008030 14 CNT DS.W 100008032 15 SUM DS.W 100008034 =00000011 16 IVAL EQU 1700008034 0011 17 ICNT DC.W IVAL00008036 18 END START
Il lavoro dell’assemblatore
1116 = 1710 !!
![Page 28: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/28.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
00000000 1 * Programma per sommare i primi 17 interi00000000 2 *00008000 3 ORG $800000008000 4279 00008032 4 START CLR.W SUM00008006 3039 00008034 5 MOVE.W ICNT,D00000800C 33C0 00008030 6 ALOOP MOVE.W D0,CNT00008012 D079 00008032 7 ADD.W SUM,D000008018 33C0 00008032 8 MOVE.W D0,SUM0000801E 3039 00008030 9 MOVE.W CNT,D000008024 0640 FFFF 10 ADD.W #-1,D000008028 66E2 11 BNE ALOOP0000802A 4EF9 00008100 12 JMP SYSA00008030 =00008100 13 SYSA EQU $810000008030 14 CNT DS.W 100008032 15 SUM DS.W 100008034 =00000011 16 IVAL EQU 1700008034 0011 17 ICNT DC.W IVAL00008036 18 END START
Il lavoro dell’assemblatore
![Page 29: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/29.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
00000000 1 * Programma per sommare i primi 17 interi00000000 2 *00008000 3 ORG $800000008000 4279 00008032 4 START CLR.W SUM00008006 3039 00008034 5 MOVE.W ICNT,D00000800C 33C0 00008030 6 ALOOP MOVE.W D0,CNT00008012 D079 00008032 7 ADD.W SUM,D000008018 33C0 00008032 8 MOVE.W D0,SUM0000801E 3039 00008030 9 MOVE.W CNT,D000008024 0640 FFFF 10 ADD.W #-1,D000008028 66E2 11 BNE ALOOP0000802A 4EF9 00008100 12 JMP SYSA00008030 =00008100 13 SYSA EQU $810000008030 14 CNT DS.W 100008032 15 SUM DS.W 100008034 =00000011 16 IVAL EQU 1700008034 0011 17 ICNT DC.W IVAL00008036 18 END START
Il lavoro dell’assemblatore
![Page 30: 12A Assembler 68k 1 - Ingegneria Biomedica · »Assembly-time operations - sono direttive utilizzate dal programma assemblatore all’atto della generazione del codice oggetto](https://reader030.vdocuments.site/reader030/viewer/2022021721/5c00c88609d3f225538ba9f4/html5/thumbnails/30.jpg)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
00000000 1 * Programma per sommare i primi 17 interi00000000 2 *00008000 3 ORG $800000008000 4279 00008032 4 START CLR.W SUM00008006 3039 00008034 5 MOVE.W ICNT,D00000800C 33C0 00008030 6 ALOOP MOVE.W D0,CNT00008012 D079 00008032 7 ADD.W SUM,D000008018 33C0 00008032 8 MOVE.W D0,SUM0000801E 3039 00008030 9 MOVE.W CNT,D000008024 0640 FFFF 10 ADD.W #-1,D000008028 66E2 11 BNE ALOOP0000802A 4EF9 00008100 12 JMP SYSA00008030 =00008100 13 SYSA EQU $810000008030 14 CNT DS.W 100008032 15 SUM DS.W 100008034 =00000011 16 IVAL EQU 1700008034 0011 17 ICNT DC.W IVAL00008036 18 END START
Cosa fa questo programma?