All pastes #2116919 Raw Edit

bart416

public text v1 · immutable
#2116919 ·published 2012-02-10 20:26 UTC
rendered paste body
#include <REG505L.inc>
;-------------------------------------------------
;        Extern geheugen vullen met nummers
;-------------------------------------------------
mov dph, #018h
mov dpl, #00h
mov A, #00h

vullen:
movx @dptr, A ;Schrijf Accumulator naar @dptr
inc dpl                  ;Schuif datapointer een plaats op
add A,#1d          ;Voeg 1 aan A toe (Geen INC gebruiken omdat INC geen carry genereert)
jnc vullen          ;Jump terug naar vullen als carry niet geset is

clr C                  ;Carry terug op nul zetten

;-------------------------------------------------
;        Elimineren van niet priem getallen
;-------------------------------------------------

;1 is geen priemgetal --> Verwijderen
mov dpl, #01h 
mov A, 0
movx @dptr, A


mov R0, #02h        ;Start waarde (2) in R0 plaatsen
elimineer:
mov dpl, R0                ;R0 in DPL plaatsen
movx A, @dptr        ;Gegevens uit extern geheugen halen naar Accumulator
jz vermeerder        ;Sla over en vermeerder R0 als Accumulator leeg is
doorloop:
mov A, dpl                         ;Plaats dpl in accumulator
add A, R0                        ;Voeg R0 toe aan waarde in accumulator
jc vermeerder        ;Als er een carry gegenereert wordt, vermeerder R0
mov dpl, A                        ;Plaats Accumulator terug in datapointer
clr A                                ;Leeg A
movx @dptr, A                ;Schrijf 0x00 (Accumulator) naar datapointer
jmp doorloop                ;Herhaal "doorloop"

vermeerder:
clr C
inc R0                                                 ;Vermeerder waarde in R0 met 1
cjne R0, #0FFh, elimineer        ;Jump naar elimineer als R0 != 0xFFh
end                                                        ;Indien niet, stop programma