Übungsblatt 2. Aufgabe 2.4 [LÖSUNGSVORSCHLAG]

1 Beitrag / 0 neu
cpuser
C
Übungsblatt 2. Aufgabe 2.4 [LÖSUNGSVORSCHLAG]

Wie versprochen, unten ist das (große) Programm.
Alles wurde überprüft mit dem Simulator und von dem Tutor.

Wenn mit irgendwelchen Eingaben trotzdem irgendwelche Fehler auftreten - bitte, melden! Wink
(Natürlich nur 16-Bit Eingaben gemeint Wink )

*----------------------------------------------------------- * Program : Primes Finder * Written by : Pavel Safre * Date : 25.04.2010 * Description: Find_out, whether #n is a prime *----------------------------------------------------------- ORG $1000 START: ; first instruction of program MOVE #34, D0 ; THE NUMBER TO TEST CMP #1, D0 BLE NPRIME ; 0 AND 1 AREN&#039;T PRIME MOVE #1, D2 ; OUTPUT REGISTER: 1 FOR PRIME, 0 ELSE MOVE #2, D1 ; LOOP COUNTER: 2 TO (D0 - 1) NXTLOOP CMP D0, D1 BGE ELOOP ; IF D1 &gt;= D0: END LOOP MOVE.L D0, D3 ; D3 = D0 &lt;- TEMP VAR DIVU D1, D3 ; TRY TO DIVIDE SWAP D3 ; GET REST: [QUOTIENT][REST] CMP #0, D3 BEQ NPRIME ; IF REST == 0: NOT A PRIME ADD #1, D1 ; LOOP COUNTER INCREMENT BRA NXTLOOP ; NEXT NPRIME MOVE #0, D2 ; NOT A PRIME ELOOP MOVE D1, D1 ; DO NOTHING <img src="https://fs.cs.uni-frankfurt.de/sites/all/modules/smiley/packs/kolobok/smile.gif" alt="Smile" /> JUST FOR THE LABEL END START ; last line of source