started up asm
This commit is contained in:
parent
ef273790b8
commit
acce30cea1
45 changed files with 1167 additions and 728 deletions
186
ass1/bonus/dijkstra.lst
Normal file
186
ass1/bonus/dijkstra.lst
Normal file
|
|
@ -0,0 +1,186 @@
|
|||
00000 dijk START 0
|
||||
. zacetna inicializacija, d=0
|
||||
00000 010000 LDA #0
|
||||
00003 0721BD LDX ZAC
|
||||
00006 0FA184 STA D,X
|
||||
00009 0FA19C STA PROV,X
|
||||
. neskoncna while zanka
|
||||
0000C 6F2178 WHILE LDS minus_ena . S = -1, hrani vozlisce ki imam min razdaljo v okolici
|
||||
0000F 050000 LDX #0 . stevec = 0
|
||||
00012 AC10 FOR1 RMO X,A
|
||||
00014 0F216A STA old_X . shrani vrednost X-a
|
||||
00017 03A18E LDA PROV,X . nalozi potencialno razdaljo sosednjega vozlisca v okolici
|
||||
0001A 2B216A COMP minus_ena
|
||||
0001D 332025 JEQ NEXT . ce ze obiskano=-2 ali neobiskano=-1 preskoci vozlisce
|
||||
00020 2B2167 COMP minus_dva
|
||||
00023 33201F JEQ NEXT
|
||||
00026 AC40 RMO S,A . sicer S v A
|
||||
00028 2B215C COMP minus_ena . ce S se ni nastavljen ga nastavi prvic
|
||||
0002B 332015 JEQ SET . sicer poglej ali ima trenutno vozl. manjso pot. razdaljo prov[X] < prov[S]
|
||||
0002E 03A177 LDA PROV,X . nalozi p. razdaljo tren. vozl.
|
||||
00031 AC05 RMO A,T . shrani jo v T reg.
|
||||
00033 AC41 RMO S,X . premakni trenutni ix min. vozl. v X za ix naslavljanje
|
||||
00035 03A170 LDA PROV,X . nalozi trenutno min razdaljo
|
||||
00038 072146 LDX old_X . obnovi X, vrednost stevca zanke FOR1
|
||||
0003B A050 COMPR T,A . primerjaj vrednosti tj. ce razdalja ni krajsa preskoci, sicer SET
|
||||
0003D 332005 JEQ NEXT
|
||||
00040 372002 JGT NEXT
|
||||
00043 AC14 SET RMO X,S . S nastavi na ix vozlisca - trenutna iteracija
|
||||
00045 AC10 NEXT RMO X,A
|
||||
00047 190003 ADD #3
|
||||
0004A AC01 RMO A,X
|
||||
0004C 29001B COMP #table_len
|
||||
0004F 3B2FC0 JLT FOR1
|
||||
|
||||
. ce ni vec vozlisc v okolici koncaj
|
||||
00052 AC40 RMO S,A
|
||||
00054 2B2130 COMP minus_ena
|
||||
00057 33208E JEQ HALT
|
||||
. sicer p. razdaljo shrani kot dejansko in oznaci vozlisce kot obiskano
|
||||
0005A AC41 RMO S,X
|
||||
0005C 03A149 LDA PROV,X
|
||||
0005F 0FA12B STA D,X
|
||||
00062 032125 LDA minus_dva
|
||||
00065 0FA140 STA PROV,X
|
||||
|
||||
. nato dodaj vozlisca v okolico oz. posodobi razdalje obstojecih vozlisc v okolici
|
||||
00068 050000 LDX #0 . stevec na 0
|
||||
0006B AC10 FOR2 RMO X,A
|
||||
0006D 0F2111 STA old_X
|
||||
00070 03A07E LDA INPUT_X,X . preveri ali je to povezava ki izvira v vozl. S
|
||||
00073 210003 MUL #3 . pomnozi s 3 da lahko primerjamo s S, ki steje ix WORDa
|
||||
00076 A004 COMPR A,S
|
||||
00078 37205D JGT NEXT2 . ce ni preskoci
|
||||
0007B 3B205A JLT NEXT2
|
||||
. sicer preveri ali je sosednje vozlisce ze obiskano
|
||||
0007E 03A0A0 LDA INPUT_Y,X . nalozi ix soseda
|
||||
00081 210003 MUL #3
|
||||
00084 AC01 RMO A,X . premakni v X
|
||||
00086 03A11F LDA PROV,X . nalozi sosedovo potencialno razdaljo
|
||||
00089 0720F5 LDX old_X . obnovi X
|
||||
0008C 2B20FB COMP minus_dva . poglej ce je ze obiskan
|
||||
0008F 332046 JEQ NEXT2
|
||||
00092 2B20F2 COMP minus_ena . ce se ni obiskan, nastavi vrednost p. razdalje
|
||||
00095 332023 JEQ SET2
|
||||
. sicer preveri da je nova p. razdalja manjsa od trenutne
|
||||
. D[S] + w < PROV[Y]
|
||||
00098 AC41 RMO S,X
|
||||
0009A 03A0F0 LDA D,X
|
||||
0009D 0720E1 LDX old_X
|
||||
000A0 1BA0AE ADD INPUT_W,X
|
||||
000A3 AC05 RMO A,T
|
||||
000A5 03A079 LDA INPUT_Y,X
|
||||
000A8 210003 MUL #3
|
||||
000AB AC01 RMO A,X
|
||||
000AD 03A0F8 LDA PROV,X
|
||||
000B0 0720CE LDX old_X
|
||||
000B3 A005 COMPR A,T
|
||||
000B5 332020 JEQ NEXT2
|
||||
000B8 3B201D JLT NEXT2
|
||||
|
||||
000BB AC41 SET2 RMO S,X
|
||||
000BD 03A0CD LDA D,X
|
||||
000C0 0720BE LDX old_X
|
||||
000C3 1BA08B ADD INPUT_W,X
|
||||
000C6 AC05 RMO A,T
|
||||
000C8 03A056 LDA INPUT_Y,X
|
||||
000CB 210003 MUL #3
|
||||
000CE AC01 RMO A,X
|
||||
000D0 AC50 RMO T,A
|
||||
000D2 0FA0D3 STA PROV,X
|
||||
000D5 0720A9 LDX old_X
|
||||
000D8 AC10 NEXT2 RMO X,A
|
||||
000DA 190003 ADD #3
|
||||
000DD AC01 RMO A,X
|
||||
000DF 290030 COMP #table_len2
|
||||
000E2 3B2F86 JLT FOR2
|
||||
|
||||
000E5 3F2F24 J WHILE
|
||||
|
||||
000E8 3F2FFD HALT J HALT
|
||||
000EB END dijk
|
||||
|
||||
|
||||
. vhodni parametri
|
||||
000EB 000009 INPUT_V WORD 9
|
||||
000EE 000010 INPUT_E WORD 16
|
||||
000F1 000000 INPUT_X WORD 0
|
||||
000F4 000000 WORD 0
|
||||
000F7 000001 WORD 1
|
||||
000FA 000001 WORD 1
|
||||
000FD 000002 WORD 2
|
||||
00100 000002 WORD 2
|
||||
00103 000003 WORD 3
|
||||
00106 000003 WORD 3
|
||||
00109 000003 WORD 3
|
||||
0010C 000003 WORD 3
|
||||
0010F 000003 WORD 3
|
||||
00112 000004 WORD 4
|
||||
00115 000004 WORD 4
|
||||
00118 000005 WORD 5
|
||||
0011B 000006 WORD 6
|
||||
0011E 000007 WORD 7
|
||||
00121 000001 INPUT_Y WORD 1
|
||||
00124 000002 WORD 2
|
||||
00127 000002 WORD 2
|
||||
0012A 000003 WORD 3
|
||||
0012D 000006 WORD 6
|
||||
00130 000003 WORD 3
|
||||
00133 000006 WORD 6
|
||||
00136 000008 WORD 8
|
||||
00139 000007 WORD 7
|
||||
0013C 000005 WORD 5
|
||||
0013F 000004 WORD 4
|
||||
00142 000001 WORD 1
|
||||
00145 000005 WORD 5
|
||||
00148 000007 WORD 7
|
||||
0014B 000008 WORD 8
|
||||
0014E 000008 WORD 8
|
||||
00151 000008 INPUT_W WORD 8
|
||||
00154 00000C WORD 12
|
||||
00157 00000D WORD 13
|
||||
0015A 000019 WORD 25
|
||||
0015D 000015 WORD 21
|
||||
00160 00000E WORD 14
|
||||
00163 00000C WORD 12
|
||||
00166 000010 WORD 16
|
||||
00169 00000C WORD 12
|
||||
0016C 000008 WORD 8
|
||||
0016F 000014 WORD 20
|
||||
00172 000009 WORD 9
|
||||
00175 000013 WORD 19
|
||||
00178 00000B WORD 11
|
||||
0017B 00000B WORD 11
|
||||
0017E 000009 WORD 9
|
||||
00181 last EQU *
|
||||
|
||||
. pomozne spremenljivke
|
||||
00181 000000 old_X RESW 1
|
||||
00184 000000 old_S RESW 1
|
||||
00187 FFFFFF minus_ena WORD X'FFFFFF'
|
||||
0018A FFFFFE minus_dva WORD X'FFFFFE'
|
||||
. najkrajse razdalje
|
||||
0018D FFFFFF D WORD -1
|
||||
00190 FFFFFF WORD -1
|
||||
00193 FFFFFF WORD -1
|
||||
00196 FFFFFF WORD -1
|
||||
00199 FFFFFF WORD -1
|
||||
0019C FFFFFF WORD -1
|
||||
0019F FFFFFF WORD -1
|
||||
001A2 FFFFFF WORD -1
|
||||
001A5 FFFFFF WORD -1
|
||||
. provisional razdalje (okolica), -2 = done, -1 neobiskan
|
||||
001A8 FFFFFF PROV WORD -1
|
||||
001AB FFFFFF WORD -1
|
||||
001AE FFFFFF WORD -1
|
||||
001B1 FFFFFF WORD -1
|
||||
001B4 FFFFFF WORD -1
|
||||
001B7 FFFFFF WORD -1
|
||||
001BA FFFFFF WORD -1
|
||||
001BD FFFFFF WORD -1
|
||||
001C0 FFFFFF WORD -1
|
||||
001C3 last_in EQU *
|
||||
001C3 table_len EQU last_in-PROV
|
||||
001C3 table_len2 EQU last-INPUT_W
|
||||
. indeks zacetnega vozlisca * 3
|
||||
001C3 000000 ZAC WORD 0
|
||||
Loading…
Add table
Add a link
Reference in a new issue