evo ja sam to probao rijesit...
cini mi se ok, probao sam na par primjera
[code:1] ORG $6000
POCETAK: DS.L 1
DULJINA: DS.W 1
ORG $6010
REZ: DS.W 1
ORG $6100
START:
MOVEA.L POCETAK,A1
MOVEA.L A1,A2
MOVEQ #0,D2
MOVE.W DULJINA,D1
BEQ.S nula ;duljina niza je 0
SUBQ #1,D1
BEQ.S jedan ;duljina niza je 1
;zanemarimo prvog
TST.W (A1)+
TST.W (A2)+
petlja:
MOVEA.L (A1),A1 ;u A2 je adresa prethodnog pointera
;u A1 je adresa trenutnog
TST.W (A1)+
BMI.S zamjena
MOVEA.L A1,A2 ;u A2 je adresa prethodnog pointera
SUBQ #1,D1
CMPI #1,D1
BEQ.S kraj ;ostao je jos jedan element za provjeru
BRA petlja
zamjena:
MOVE.L (A1),D5
MOVE.L D5,(A2)
;MOVEA.L (A1),(A2)
ADDQ #1,D2 ;brojac za pobrisane
SUBQ #1,D1
CMPI #1,D1
BEQ kraj ;ostao je jos jedan element za provjeru
BRA petlja
kraj:
MOVEA.L (A1),A1
TST.W (A1)+
BPL.S dalje
BEQ.S dalje
ADDQ #1,D2
dalje:
jedan:
;treba vidit sta je s prvim
MOVE.L POCETAK,A1
TST.W (A1)+
BPL.S gotovo
BEQ.S gotovo
MOVE.L (A1),POCETAK
ADDQ #1,D2
gotovo:
MOVE.W D2,REZ
MOVE.W DULJINA,D1
SUB.W D2,D1
MOVE.W D1,DULJINA
nula:
TRAP #15
END START
[/code:1]
ako izbacujem prvog onda se mjenja adresa tamo di je zadana, i osim sta ispisem koliko sam ih izbrisao, promijenim duljinu tamo di je bila zadana
nadam se da je ok
i sigorno ima par viska djelova, al dobro...
je ok, odnoso, cu dobit ta 4 boda :lol:
[size=9][color=#999999]Added after 16 minutes:[/color][/size]
zaboravio sam upisat da sam ih izbacio 0 ako je duljina liste 0, no to je trivijalno, samo na samom pocetku to napravim pa ide dalje ovako kako je...
evo ja sam to probao rijesit...
cini mi se ok, probao sam na par primjera
Kod: | ORG $6000
POCETAK: DS.L 1
DULJINA: DS.W 1
ORG $6010
REZ: DS.W 1
ORG $6100
START:
MOVEA.L POCETAK,A1
MOVEA.L A1,A2
MOVEQ #0,D2
MOVE.W DULJINA,D1
BEQ.S nula ;duljina niza je 0
SUBQ #1,D1
BEQ.S jedan ;duljina niza je 1
;zanemarimo prvog
TST.W (A1)+
TST.W (A2)+
petlja:
MOVEA.L (A1),A1 ;u A2 je adresa prethodnog pointera
;u A1 je adresa trenutnog
TST.W (A1)+
BMI.S zamjena
MOVEA.L A1,A2 ;u A2 je adresa prethodnog pointera
SUBQ #1,D1
CMPI #1,D1
BEQ.S kraj ;ostao je jos jedan element za provjeru
BRA petlja
zamjena:
MOVE.L (A1),D5
MOVE.L D5,(A2)
;MOVEA.L (A1),(A2)
ADDQ #1,D2 ;brojac za pobrisane
SUBQ #1,D1
CMPI #1,D1
BEQ kraj ;ostao je jos jedan element za provjeru
BRA petlja
kraj:
MOVEA.L (A1),A1
TST.W (A1)+
BPL.S dalje
BEQ.S dalje
ADDQ #1,D2
dalje:
jedan:
;treba vidit sta je s prvim
MOVE.L POCETAK,A1
TST.W (A1)+
BPL.S gotovo
BEQ.S gotovo
MOVE.L (A1),POCETAK
ADDQ #1,D2
gotovo:
MOVE.W D2,REZ
MOVE.W DULJINA,D1
SUB.W D2,D1
MOVE.W D1,DULJINA
nula:
TRAP #15
END START
|
ako izbacujem prvog onda se mjenja adresa tamo di je zadana, i osim sta ispisem koliko sam ih izbrisao, promijenim duljinu tamo di je bila zadana
nadam se da je ok
i sigorno ima par viska djelova, al dobro...
je ok, odnoso, cu dobit ta 4 boda
Added after 16 minutes:
zaboravio sam upisat da sam ih izbacio 0 ako je duljina liste 0, no to je trivijalno, samo na samom pocetku to napravim pa ide dalje ovako kako je...
_________________ Mario Berljafa
|