ORG $8000
STRINGA DC.B 'no one likes you',0
SUM DS.W 1
* Inizio area codice del MAIN
ORG $8400
MAIN ADDA #-2,SP
PEA STRINGA
JSR CONTA
MOVE.W 4(SP),SUM
ADDA #6,SP
CLR.L D0-D5/A0-A5
STOP #$2000
*Inizio subroutine
ORG $8800
CONTA LINK A6,#0
MOVEM.L A0/D0-D2,-(SP)
CLR.L D2
MOVEA.L 8(A6),A0
CICLO MOVE.B (A0)+,D1
BEQ FINE
CMP #32,D1
BEQ CICLO
ADD #1,D2
BRA CICLO
FINE MOVE D2,12(A6)
MOVEM.L (SP)+,A0/D0-D2
UNLK A6
RTS
END MAIN
lunedì 20 giugno 2011
contadispari
ORG $8000 Inizio area MAIN
MAIN ADDA #-2,SP
PEA VETT
JSR CONTADISP
ADDA #4,SP
MOVE.W (SP)+,RIS
STOP #$2000
ORG $8100 Inizio area SUBROUTINE
CONTADISP LINK A6,#0
MOVEM.L A0/D0/D1,-(SP)
CLR D0
CLR D1
MOVEA.L VETTOFF(A6),A0
LOOP MOVE.W (A0)+,D1
BEQ FINE
BTST #0,D1
BEQ LOOP
ADDQ #1,D0
BRA LOOP
FINE MOVE.W D0,RISOFF(A6)
MOVEM.L (SP)+,A0/D0/D1
UNLK A6
RTS
ORG $8200
VETT DC.W 1,5,6,3,7,4,2,0
RIS DS.W 1
VETTOFF EQU 8
RISOFF EQU 12
END MAIN
MAIN ADDA #-2,SP
PEA VETT
JSR CONTADISP
ADDA #4,SP
MOVE.W (SP)+,RIS
STOP #$2000
ORG $8100 Inizio area SUBROUTINE
CONTADISP LINK A6,#0
MOVEM.L A0/D0/D1,-(SP)
CLR D0
CLR D1
MOVEA.L VETTOFF(A6),A0
LOOP MOVE.W (A0)+,D1
BEQ FINE
BTST #0,D1
BEQ LOOP
ADDQ #1,D0
BRA LOOP
FINE MOVE.W D0,RISOFF(A6)
MOVEM.L (SP)+,A0/D0/D1
UNLK A6
RTS
ORG $8200
VETT DC.W 1,5,6,3,7,4,2,0
RIS DS.W 1
VETTOFF EQU 8
RISOFF EQU 12
END MAIN
inciarmo
RESoff EQU 14
DIMoff EQU 12
V1off EQU 08
V2off EQU 04
RIToff EQU 00
*main:
ORG $8000
INIZIO ADDA #-4,SP
MOVE.W DIM,-(SP)
MOVE.L #V1,-(SP)
MOVE.L #V2,-(SP)
JSR PRODSCAL
MOVE.L (SP)+,RES
FINE JMP FINE
*sottoprog:
PRODSCAL MOVEA.L RIToff(SP),A2
MOVEA.L V2off(SP),A1
MOVEA.L V1off(SP),A0
MOVE.W DIMoff(SP),D0
CLR.L D7
SOMMA MOVE.B (A0)+,D1
MOVE.B (A1)+,D2
MULT MULU D1,D2
ADD.L D2,D7
CTRL SUB #1,D0
BNE SOMMA
ESCI MOVE.L D7,RESoff(SP)
ADDA.L #RESoff,SP
JMP (A2)
*dati:
ORG $8100
V1 DC.B 0,1,3,2
V2 DC.B 3,2,2,1
DIM DC.W 4
RES DS.L 1
END INIZIO
DIMoff EQU 12
V1off EQU 08
V2off EQU 04
RIToff EQU 00
*main:
ORG $8000
INIZIO ADDA #-4,SP
MOVE.W DIM,-(SP)
MOVE.L #V1,-(SP)
MOVE.L #V2,-(SP)
JSR PRODSCAL
MOVE.L (SP)+,RES
FINE JMP FINE
*sottoprog:
PRODSCAL MOVEA.L RIToff(SP),A2
MOVEA.L V2off(SP),A1
MOVEA.L V1off(SP),A0
MOVE.W DIMoff(SP),D0
CLR.L D7
SOMMA MOVE.B (A0)+,D1
MOVE.B (A1)+,D2
MULT MULU D1,D2
ADD.L D2,D7
CTRL SUB #1,D0
BNE SOMMA
ESCI MOVE.L D7,RESoff(SP)
ADDA.L #RESoff,SP
JMP (A2)
*dati:
ORG $8100
V1 DC.B 0,1,3,2
V2 DC.B 3,2,2,1
DIM DC.W 4
RES DS.L 1
END INIZIO
Iscriviti a:
Post (Atom)