.ORIG x3000
LD R2,N ; load N in R2
AND R4,R4,#0 ; set 0 to R4
ADD R4,R2,#0 ; add 0 to R2 and store in R4 i.e Temp-N
LD R5,Divisor ; load Divisor value in R5
LD R1,Flag ; load Flag value in R1
LD R3,I ; load I in R3
Here1:
ADD R4,R4,#0
BRnz There1
NOT R0,R5
ADD R0,R0,#1
ADD R4,R4,R0
ADD R3,R3,#1
BRnzp Here1
There1:
BRzp Here
ADD R3,R3,#-1
Here:
AND R5,R5,#0
ADD R5,R3,#0
AND R0,R0,#0
ADD R0,R3,#-2
BRn There
AND R6,R6,#0 ; use R6 as Sum
Here2:
AND R0,R0,#0
ADD R0,R6,#0
NOT R0,R0
ADD R0,R0,#1
ADD R0,R2,R0
BRnz There2
ADD R6,R6,R5
BRnzp Here2
There2:
AND R0,R0,#0
ADD R0,R2,#0
NOT R0,R0
ADD R0,R0,#1
ADD R0,R6,R0
BRz LABEL
AND R0,R0,#0
ADD R0,R5,#0
NOT R0,R0
ADD R0,R0,#1
ADD R6,R6,R0
LABEL:
AND R7,R7,#0
NOT R0,R6
ADD R0,R0,#1
ADD R7,R2,R0
BRnp LABEL2
AND R1,R1,#0
ADD R1,R1,#1
BRnzp There
LABEL2
ADD R3,R3,#-1
BRnzp Here
There:
ADD R1,R1,#0
BRp One
AND R2,R2,#0 ; R2=0 means N is Prime
BRnzp End
One:
AND R2,R2,#0
ADD R2,R2,#10 ; R2=10 means N is not Prime
End:
HALT
N .FILL #170
I .FILL #0
Flag .FILL #0
Divisor .FILL #2
.END
LD R2,N ; load N in R2
AND R4,R4,#0 ; set 0 to R4
ADD R4,R2,#0 ; add 0 to R2 and store in R4 i.e Temp-N
LD R5,Divisor ; load Divisor value in R5
LD R1,Flag ; load Flag value in R1
LD R3,I ; load I in R3
Here1:
ADD R4,R4,#0
BRnz There1
NOT R0,R5
ADD R0,R0,#1
ADD R4,R4,R0
ADD R3,R3,#1
BRnzp Here1
There1:
BRzp Here
ADD R3,R3,#-1
Here:
AND R5,R5,#0
ADD R5,R3,#0
AND R0,R0,#0
ADD R0,R3,#-2
BRn There
AND R6,R6,#0 ; use R6 as Sum
Here2:
AND R0,R0,#0
ADD R0,R6,#0
NOT R0,R0
ADD R0,R0,#1
ADD R0,R2,R0
BRnz There2
ADD R6,R6,R5
BRnzp Here2
There2:
AND R0,R0,#0
ADD R0,R2,#0
NOT R0,R0
ADD R0,R0,#1
ADD R0,R6,R0
BRz LABEL
AND R0,R0,#0
ADD R0,R5,#0
NOT R0,R0
ADD R0,R0,#1
ADD R6,R6,R0
LABEL:
AND R7,R7,#0
NOT R0,R6
ADD R0,R0,#1
ADD R7,R2,R0
BRnp LABEL2
AND R1,R1,#0
ADD R1,R1,#1
BRnzp There
LABEL2
ADD R3,R3,#-1
BRnzp Here
There:
ADD R1,R1,#0
BRp One
AND R2,R2,#0 ; R2=0 means N is Prime
BRnzp End
One:
AND R2,R2,#0
ADD R2,R2,#10 ; R2=10 means N is not Prime
End:
HALT
N .FILL #170
I .FILL #0
Flag .FILL #0
Divisor .FILL #2
.END
No comments:
Post a Comment