Эхэн үеийн Макуудад ажилладаг байсан Моторолла 68000 процессерийн ассемблэр хэл дээр програм бичлээ. 16 бит, тэмдэгтгүй тоог анхны тоо эсэхийг шалгадаг програм; яарч хийсэн учир илүү хурдан ажиллууладаг, цөөхөн регистр ашигладаг болгож амжсангүй.
ORG $0500
num DC.W 83
ORG $0600
res DS.B 1
ORG $1000
start MOVEA.L #$4000,SP
MOVE.B #2, (res)
PEA num
JSR chkpri
MOVE.B D7, res
MOVEA.L #$4000,SP
MOVE.B #9, D0
TRAP #15
ORG $2000
chkpri MOVE.W 6(A7),A1
MOVE.W #2,D3
MOVE.W (A1),D4
back MOVE.L D4,D2
DIVU.W D3,D2
ADD.W #1,D3
CMP.W D4,D3
BEQ pri
SWAP D2
CMPI.W #0,D2
BNE back
MOVEQ #0,D7
RTS
pri MOVEQ #1,D7
RTS
END START
chkpri рутиныг ашиглаад массиваас анхны тоонуудыг ялгаж өөр массивт хуулдаг програм:
ORG $0502
from DC.W 87,92,7,84,65,32,11,83,103,287
N DC.W 10
ORG $0602
to DS.W N
ORG $1000
start MOVEA.L #$4000,SP
LEA from,A2
LEA to,A3
MOVE.W N,D5
MULU.W #2,D5
MOVE.W #0,D1
back1 PEA 0(A2,D1.W)
ADDI.W #2,D1
JSR chkpri
CMPI.W #1,D7
BEQ cpypri
CMP.W D1,D5
BNE back1
LEA to,A3
MOVE.W D6,(A3)
JMP out
cpypri ADDI.W #1,D6
ADD.W #2,A3
MOVE.W D4,(A3)
JMP back1
out
Bagadaa uhaan joloogui togloj ussun Sega maani MC68000 deer hiigdsiin bn shdee hehe. http://en.wikipedia.org/wiki/Mega_Drive
ReplyDelete