File: bubblesort.basic

package info (click to toggle)
boolector 3.2.4-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 20,744 kB
  • sloc: ansic: 83,136; cpp: 18,159; sh: 3,668; python: 2,889; makefile: 210
file content (86 lines) | stat: -rw-r--r-- 1,348 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
0 rem bubblesort array 'a'
0 save a
100 rem read n
110 rem set array size 'n'
110 load 2
120 save n
130 load 0
140 save k
150 rem start outer loop
150 load k 
160 ge n
170 rem jump to end of outer loop
170 jmp 1040
180 load 0
190 save i
200 rem start inner loop
200 load i
210 add 1
220 save j
230 ge n
240 rem jump to end of inner loop
240 jmp 1000
250 load a
260 add i
270 rem reg. 'w' stores address of array element to read/write
270 save w
280 peek w
290 rem read a[i] and save in reg. 's'
290 save s
300 load a
310 add j
320 save w
330 peek w
340 rem accu holds elem a[j]
340 ge s
350 rem if a[i] > a[j] then swap else next iteration
350 jmp 900
360 rem start swapping: reg 's' stores a[i], accu stores a[j]
360 save t
370 load a
380 add i
385 save w
390 load t
395 poke w
400 load a
410 add j
420 save w
430 load s
440 poke w
450 rem end swapping
900 load i
910 add 1
920 save i
930 goto 200
940 rem end inner loop
1000 load k
1010 add 1
1020 save k
1030 goto 150
1040 rem end: outer loop -> check if sorted
1040 load 0
1060 save i
1070 rem start loop
1080 load i
1090 add 1
1100 save j
1110 ge n
1120 rem jump to end loop
1130 jmp 1290
1140 load a
1150 add i
1160 save w
1170 peek w
1180 save s
1190 load a
1200 add j
1210 save w
1220 peek w
1230 lt s
1240 jmp 1300
1250 load i
1260 add 1
1270 save i
1280 goto 1080
1290 exit 0
1300 exit 1