Esercizi assembly 68000

di il
6 risposte

Esercizi assembly 68000

Ciao, ragazzi, mi date una mano con alcuni esercizi dell' assembly 68000,magari nel caso suggerendomi codici alternativi modifiche da apportare? Scrivere i sottoprogramma assembly che eseguono le strutture indicate di seguito:
1) IF indice == D0 THEN
(contenuto della memoria ($8200 + indice))D1 + D0
ELSE
(contenuto della memoria ($8200 +D0))=D1+indice
END

2) Contare quanti numeri dispari maggiori di D0 e minori di D1 sono memorizzati nelle locazioni
di memoria da $810E a $811A.
1

			ORG		$8000
INIZIO		JSR		SUBROUTINE
			STOP		#$2200

			ORG		$8100
INDICE		DC		10

			ORG		$8200
X			DC		6

			ORG		$8300
SUBROUTINE	MOVEM.L	D0/D1/D2/D3/A0,-(SP)
			MOVE	#3,D0
			MOVE	#4,D1
			MOVE	INDICE,D2
			MOVE.L	#$8200,A0
			MOVE	(A0),D3
			CMP		D2,D0
			BEQ		THEN
ELSE			ADD		D1,D2
			ADD		DO,D3
			MOVE	D2,D3
			JMP		FINE
THEN			ADD		D1,D0
			ADD		D2,D3
			MOVE	D0,D3
FINE			MOVEM.L	(SP)+,DO/D1/D2/D3/A0
			RTS
			END		INIZIO

2

			ORG		$8000
INIZIO		JSR		SUBRUTINE
			STOP		#$2200

			ORG		$8300
ARRAY		DC		1,4,3,10,5,8,9,11,7,2,12,13
CONT			DS		1

			ORG		$8400
SUBROUTINE	MOVEM.L
			MOVE	#3,D0
			MOVE	#25,D1
			MOVE	CONT,D4
			LEA		ARRAY,A0
			MOVE.L	#810E,A1
			MOVE.L	$811A,A2
			SUB		A1,A2
			MOVE	A2,D2
			SUB		#1,D2
FOR			CMP		#0,D2
			BEQ		FINE
			CMP		(A0)+,DO
			BLT		DOPO
			BTST		#0,D3
			BNE		DISPARI
DISPARI		ADD		#1,D4
			JMP		FOR
DOPO			CMP		(A0)+,D1
			BGT 		FOR
			BTST		#0,D3
			BNE		DISPARI
			DBRA		D2,FOR
FINE			MOVEM.L
			RTS
			END		INIZIO
Suggerimenti per migliorare il codice??

6 Risposte

  • Re: Esercizi assembly 68000

    Fatemi sapere, perchè ho molti dubbi su questo tipo di linguaggio
  • Re: Esercizi assembly 68000

    Ciao, dimmi, sono esercizi scolastici?
    ITIS, Università o cosa?

    Cmq sarebbe consigliabile l'uso di un simulatore.
    Tieni conto che pochissima gente usa l'assembly, ad esempio io lo usavo più di 20 anni fa ma era per lo z80 e, chiaramente, processori diversi hanno peculiarità diverse.

    In generale posso dirti che anche un esercizio banale come quello, lo si può fare in decine di modi totalmente differenti tra loro, dipende da che comandi vuoi usare, ma anche dalla priorità che hai in mente (numero di cicli di esecuzione piuttosto che consumo di byte).
    Quindi il mio consiglio è prenderti un buon libro, difficilmente un forum ti potrà essere di aiuto.

    Consiglio fondamentale per chi inizia,usa un foglio elettronico e creati una tabella, nelle righe ci metti i comandi del tuo programmino e nelle colonne i vari registri, accumulatori e locazioni di memoria, poi simula il programma comando per comando scrivendo quello che tu pensi avvenga.
    Ti assicuro che aiuta molto la comprensione di quello che succede e allo stesso tempo verifichi il tuo livello.
  • Re: Esercizi assembly 68000

    Ciao grazie della risposta sono esercizi di un esame che stavo riprovando a fare, in quanto devo ancora darlo, ho cercato in internet e ho trovato, ma come si dice una visione esterna è migliore della propria visione, gl' assembly è per il motorola 68000
  • Re: Esercizi assembly 68000

    Ciao, a quanto ho capito tu stai scrivendo da notepad( o affine), e cerchi parere sul funzionamento; sarebbe più produttivo se ti basassi sulla prova effettiva del codice tramite un simulatore.
    Ho dato un esame anche io sul 68000 ed ho usato asim e asim tool(basta googlare per il download), non era certo uno strumento impeccabile, ma permetteva di provare il codice.
    Buona fortuna per l'esame!
  • Re: Esercizi assembly 68000

    Ciao mi indicate un sito o altro dove apprendere velocemente l' assembler al meglio
  • Re: Esercizi assembly 68000

    Non c'è un posto dove apprendere velocemente... non è magia...

    Devi solo applicarti tanto perché non è facile e a quanto vedo dai tuoi esercizi in c, ancora tu hai problemi di "logica" ....
Devi accedere o registrarti per scrivere nel forum
6 risposte