-
Notifications
You must be signed in to change notification settings - Fork 0
/
scheduler.s
69 lines (57 loc) · 1.59 KB
/
scheduler.s
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
global scheduler
extern resume, end_co, printf, CORS, WorldWidth, WorldLength
section .data
counter_genertaions: dd 0
counter_frequency: dd 0
counter_genertaion_of_cells: dd 0
t: dd 0
k: dd 0
num_of_cells:dd 0
section .text
scheduler:
mov eax,[WorldWidth]
mov ecx,[WorldLength]
mul ecx
mov [num_of_cells], eax
mov esi, dword [esp]
mov dword[t], esi
mov esi, dword [esp+4]
mov dword[k], esi
mov edi,0
genertaions:
mov dword ebx,[counter_genertaions]
mov dword ecx, [t]
cmp ebx,ecx
jne next_cell
mov ebx, [CORS+4] ; should call the printer
call resume
jmp end_co
next_cell:
mov dword ebx,[counter_genertaion_of_cells]
mov dword ecx, [num_of_cells]
cmp ebx,ecx
je end_generation
mov edx , [counter_genertaion_of_cells]
add edx, edx
add edx, edx
add edx, 8
mov ebx, [CORS+edx] ; should call the cell
call resume
inc dword [counter_frequency]
inc dword [counter_genertaion_of_cells]
mov dword ebx,[counter_frequency]
mov dword ecx, [k]
cmp ebx,ecx
jne next_cell
mov dword [counter_frequency], 0
mov ebx, [CORS+4] ; should call the printer
call resume
jmp next_cell
end_generation:
inc edi
mov dword[counter_genertaion_of_cells],0
cmp edi,2
jne next_cell
mov edi,0
inc dword [counter_genertaions]
jmp genertaions