-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathladdergame.s
216 lines (175 loc) · 2.84 KB
/
laddergame.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
.equ INPUT, 0
.equ OUTPUT, 1
.equ LOW, 0
.equ HIGH, 1
.data
.align 4
Intro: .asciz "Interval Light Up Project\n"
ErrMsg: .asciz "Didnt work\n"
pin2: .int 2 //WiringPi pin 2 is equal to BCM 27
pin3: .int 3 //WiringPi pin 3 is equal to BCM 22
pin4: .int 4 //WiringPi pin 4 is equal to BCM 23
pin5: .int 5 //WiringPi pin 5 is equal to BCM 24
pin6: .int 6 //WiringPi pin 6 is equal to BCM 25
pin7: .int 7 //WiringPi pin 7 is equal to BCM 4
end: .int 5
button: .int 26
i: .int 0
delay1: .int 400
delay2: .int 350
delay3: .int 300
delay4: .int 250
delay5: .int 200
delayMs: .int 100
OUTPUT = 1
.text
.global main
.extern printf
.extern wiringPiSetup
.extern delay
.extern digitalWrite
.extern pinMode
main: push {lr}
// printf( "Interval Project" ) ;
ldr r0, =Intro
bl printf
// if (wiringPiSetup() == -1) {
// printf( "Didnt work" ) ;
// exit (1) ;
// }
bl wiringPiSetup
mov r1,#-1
cmp r0, r1
bne init
ldr r0, =ErrMsg
bl printf
b done
// pinMode(pin, OUTPUT) ;
init:
ldr r0, =button
ldr r0, [r0]
mov r1, #OUTPUT
bl pinMode
ldr r0, =pin2
ldr r0, [r0]
mov r1, #OUTPUT
bl pinMode
ldr r0, =pin3
ldr r0, [r0]
mov r1, #OUTPUT
bl pinMode
ldr r0, =pin4
ldr r0, [r0]
mov r1, #OUTPUT
bl pinMode
ldr r0, =pin5
ldr r0, [r0]
mov r1, #OUTPUT
bl pinMode
ldr r0, =pin6
ldr r0, [r0]
mov r1, #OUTPUT
bl pinMode
ldr r0, =pin7
ldr r0, [r0]
mov r1, #OUTPUT
bl pinMode
// for ( i=0; i<5; i++ ) {
ldr r4, =i
ldr r4, [r4]
mov r5, #4
forLoop:
cmp r4, r5
bgt done
// digitalWrite(pin, 1) ;
ldr r0, =pin2
ldr r0, [r0]
mov r1, #1
bl digitalWrite
ldr r0, =pin3
ldr r0, [r0]
mov r1, #1
bl digitalWrite
ldr r0, =pin4
ldr r0, [r0]
mov r1, #1
bl digitalWrite
ldr r0, =pin5
ldr r0, [r0]
mov r1, #1
bl digitalWrite
ldr r0, =pin6
ldr r0, [r0]
mov r1, #1
bl digitalWrite
ldr r0, =pin7
ldr r0, [r0]
mov r1, #1
bl digitalWrite
// delay() ;
ldr r0, =delay1
ldr r0, [r0]
bl delay
ldr r0, =delay2
ldr r0, [r0]
bl delay
ldr r0, =delay3
ldr r0, [r0]
bl delay
ldr r0, =delay4
ldr r0, [r0]
bl delay
ldr r0, =delay5
ldr r0, [r0]
bl delay
ldr r0, =delayMs
ldr r0, [r0]
bl delay
// digitalWrite(pin, 0) ;
ldr r0, =pin2
ldr r0, [r0]
mov r1, #0
bl digitalWrite
ldr r0, =pin3
ldr r0, [r0]
mov r1, #0
bl digitalWrite
ldr r0, =pin4
ldr r0, [r0]
mov r1, #0
bl digitalWrite
ldr r0, =pin5
ldr r0, [r0]
mov r1, #0
bl digitalWrite
ldr r0, =pin6
ldr r0, [r0]
mov r1, #0
bl digitalWrite
ldr r0, =pin7
ldr r0, [r0]
mov r1, #0
bl digitalWrite
// delay() ;
ldr r0, =delay1
ldr r0, [r0]
bl delay
ldr r0, =delay2
ldr r0, [r0]
bl delay
ldr r0, =delay3
ldr r0, [r0]
bl delay
ldr r0, =delay4
ldr r0, [r0]
bl delay
ldr r0, =delay5
ldr r0, [r0]
bl delay
ldr r0, =delayMs
ldr r0, [r0]
bl delay
add r4, #1
bl forLoop
done:
pop {pc}