started work on ass2
This commit is contained in:
parent
b16c3e23d8
commit
1b990e190c
16 changed files with 360 additions and 0 deletions
66
ass1/insertion_sort.asm
Normal file
66
ass1/insertion_sort.asm
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
.program prebere iz spomina seznam števil dolžine len
|
||||
.in jih uredi z insertion sortom
|
||||
.pustimo prvi element paddan, da lažje rečunamo premike
|
||||
prog START 0
|
||||
LDX #6
|
||||
|
||||
loop LDB #len
|
||||
COMPR X, B .i < len
|
||||
JEQ halt .zaključi
|
||||
|
||||
LDA arr, X .A = arr[i]
|
||||
RMO X, S .S <- i
|
||||
LDT #3 .T <- 3
|
||||
SUBR T, X .X <- j= i - 1
|
||||
|
||||
loop2 LDT #3
|
||||
COMPR X, T .j >= 1
|
||||
JLT insert .ko je j = 0 skoči
|
||||
J next .skoči na preverjanje naslednjega pogoja
|
||||
|
||||
.shranimo S nazaj v X in ga zmanjšamo za ena
|
||||
.nato skočimo nazaj v loop
|
||||
exit2 RMO S, X .X <- i
|
||||
LDT #3
|
||||
ADDR T, X .X <- i + 1
|
||||
J loop
|
||||
|
||||
next LDB arr, X
|
||||
COMPR B, A .arr[j] > arr[i]
|
||||
JGT swap
|
||||
J insert .če pogoj ni izpolnjen
|
||||
|
||||
.sicer zamenjamo elementa
|
||||
swap LDT #3
|
||||
ADDR T, X .X <- j + 1
|
||||
STB arr, X. arr[j+1] = arr[j]
|
||||
|
||||
LDT #6
|
||||
SUBR T, X .x <- x-1
|
||||
J loop2
|
||||
|
||||
insert LDT #3
|
||||
ADDR T, X .j = j+1
|
||||
STA arr, X .arr[j+1] = arr[i]
|
||||
SUBR T, X .j = j
|
||||
J exit2
|
||||
|
||||
halt J halt
|
||||
|
||||
arr WORD 0
|
||||
WORD 5
|
||||
WORD 3
|
||||
WORD 8
|
||||
WORD 1
|
||||
WORD 4
|
||||
WORD 7
|
||||
WORD 2
|
||||
WORD 9
|
||||
arrEnd WORD 6
|
||||
|
||||
len EQU arrEnd - arr + 3
|
||||
|
||||
|
||||
|
||||
|
||||
END prog
|
||||
Loading…
Add table
Add a link
Reference in a new issue