[BTTP] Il Motorola 68000 {3/4}

Trattiamo dunque un aspetto fondamentale del 68000, ossia: le istruzioni.

Le istruzioni assembler che vederemo si riferiscono a codici (stringhe di bit) di lunghezza fissa. Ognuna viene individuata singolarmente. Vediamo un esempio:

Programma che conta i caratteri di una frase senza contare gli spazi.

* Off

ORG $8000
SPAOF EQU 08
STROF EQU 10
CONTOF EQU 14

* Main

MAIN SUBQ #2,SP
MOVE.L #STRINGA,-(SP)
MOVE.W SPACE,-(SP)
JSR CONTA
MOVE.W 6(SP),CONT
MOVE.W CONT,D0
ADDA.L #8,SP
FINE JMP FINE

* Sub

CONTA LINK A6,#0
MOVE.L A0,-(SP)
MOVE.L D0,-(SP)
MOVE.L D1,-(SP)
MOVE.L D2,-(SP)
MOVE.L D3,-(SP)

MOVE.L STROF(A6),A0
MOVE.W SPAOF(A6),D1
MOVE.B #0,D3

LOOP MOVE.B (A0)+,D0
CMP.W D0,D3
BEQ TERMINE
CMP.W D0,D1
BEQ LOOP
ADDQ #1,D2
BRA LOOP

TERMINE MOVE.W D2,CONTOF(A6)

MOVE.L (SP)+,A0
MOVE.L (SP)+,D0
MOVE.L (SP)+,D1
MOVE.L (SP)+,D2
MOVE.L (SP)+,D3

UNLK A6

RTS

* Data

ORG $8800
STRINGA DC.B 'Oggi è il 16 luglio',0
SPACE DC.W $20
CONT DS.W 1
END MAIN

Come si vede dal codice proposto un’istruzione è composta da:

1-Label o Mnemonics
2-OpCode
3-Operands
4-Comments

Link articoli: 124

Annunci

Pubblicato il dicembre 2, 2010, in BTTP con tag . Aggiungi il permalink ai segnalibri. 3 commenti.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: