spo/ass1/bonus/dijkstra.asm
2025-11-13 16:50:35 +01:00

65 lines
1.2 KiB
NASM

DIJKSTRA START 0
.zacetna inicializacija
LDA #0
STA RAZDALJE, START
STA PROV, START
LDA #-1
STA PREV, START
WHILE LDS #-1
LDX #0
FOR1 LDA PROV, X
CMP #0
JLT NEXT
RMO S, A
CMP #-1
JEQ SET
STA old_X
LDA PROV, X
RMO A, T
RMO S, X
LDA PROV, X
LDX old_X
COMPR A, T . A-> PROV[Y] T -> PROV[X]
JGT NEXT
JEQ NEXT
SET RMO X, S
RMO S, A
COMP #-1
JEQ HALT
RMO S, X
LDA PROV, X
STA D, X
LDA #-2
STA PROV, X
LDX #0
FOR2
TIX INPUT_E
JLT FOR2
NEXT TIX INPUT_V
J FOR1
HALT J HALT
END DIJKSTRA
.vhodni parametri
INPUT_V = 9
INPUT_E = 16
INPUT_X RESW 100
INPUT_Y RESW 100
INPUT_W RESW 100
.pomozne spremenljivke
old_X RESW 1
.najkrajse razdalje
D RESW 9
.prejsnje vozlisce
PREV RESW 9
.provisional razdalje (okolica), -2 = done, -1 neobiskan
PROV RESW 9
.indeks zacetnega vozlisca
START WORD 0