OpenCores
URL https://opencores.org/ocsvn/mlite/mlite/trunk

Subversion Repositories mlite

[/] [mlite/] [trunk/] [tools/] [opcodes.asm] - Blame information for rev 194

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 15 rhoads
##################################################################
2
# TITLE: Opcode Tester
3
# AUTHOR: Steve Rhoads (rhoadss@yahoo.com)
4
# DATE CREATED: 1/10/02
5
# FILENAME: opcodes.asm
6 43 rhoads
# PROJECT: Plasma CPU core
7 15 rhoads
# COPYRIGHT: Software placed into the public domain by the author.
8
#    Software 'as is' without warranty.  Author liable for nothing.
9
# DESCRIPTION:
10
#    This assembly file tests all of the opcodes supported by the
11 43 rhoads
#    Plasma core.
12 148 rhoads
#    This test assumes that address 0x20000000 is the UART write register
13 15 rhoads
#    Successful tests will print out "A" or "AB" or "ABC" or ....
14
#    Missing letters or letters out of order indicate a failure.
15
##################################################################
16
        .text
17
        .align  2
18
        .globl  entry
19
        .ent    entry
20
entry:
21
   .set noreorder
22
 
23 29 rhoads
   #These four instructions must be the first instructions
24
   #convert.exe will correctly initialize $gp
25
   lui   $gp,0
26
   ori   $gp,$gp,0
27
   #convert.exe will set $4=.sbss_start $5=.bss_end
28 111 rhoads
   lui   $4,0
29
   ori   $4,$4,0
30
   lui   $5,0
31
   ori   $5,$5,0
32
   lui   $sp,0
33
   ori   $sp,$sp,0xfff0
34 29 rhoads
 
35 194 rhoads
   b     StartTest
36
   nop                      #nops required to place ISR at 0x3c
37
   nop
38
 
39
OS_AsmPatchValue:
40
   #Code to place at address 0x3c
41
   lui   $26, 0x1000
42
   ori   $26, $26, 0x3c
43
   jr    $26
44
   nop
45
 
46
InterruptVector:            #Address=0x3c
47
   mfc0  $26,$14            #C0_EPC=14 (Exception PC)
48
   jr    $26
49
   add   $4,$4,5
50
 
51
StartTest:
52 23 rhoads
   mtc0  $0,$12             #disable interrupts
53 148 rhoads
   lui   $20,0x2000         #serial port write address
54 15 rhoads
   ori   $21,$0,'\n'        # letter
55
   ori   $22,$0,'X'         #'X' letter
56 68 rhoads
   ori   $23,$0,'\r'
57 100 rhoads
   ori   $24,$0,0x0f80      #temp memory
58 15 rhoads
 
59 194 rhoads
   sb    $23,0($20)
60
   sb    $21,0($20)
61
   sb    $23,0($20)
62
   sb    $21,0($20)
63
   sb    $23,0($20)
64
   sb    $21,0($20)
65
   sb    $23,0($20)
66
   sb    $21,0($20)
67
 
68
   #Patch interrupt vector to 0x1000003c
69
   la    $5, OS_AsmPatchValue
70
   sub   $6,$5,0x1000
71
   blez  $6,NoPatch
72
 
73
   lw    $6, 0($5)
74
   sw    $6, 0x3c($0)
75
   lw    $6, 4($5)
76
   sw    $6, 0x40($0)
77
   lw    $6, 8($5)
78
   sw    $6, 0x44($0)
79
   lw    $6, 12($5)
80
   sw    $6, 0x48($0)
81
NoPatch:
82
 
83 15 rhoads
   ######################################
84
   #Arithmetic Instructions
85
   ######################################
86 194 rhoads
ArthmeticTest:
87 15 rhoads
   ori   $2,$0,'A'
88
   sb    $2,0($20)
89
   ori   $2,$0,'r'
90
   sb    $2,0($20)
91
   ori   $2,$0,'i'
92
   sb    $2,0($20)
93
   ori   $2,$0,'t'
94
   sb    $2,0($20)
95
   ori   $2,$0,'h'
96
   sb    $2,0($20)
97 68 rhoads
   sb    $23,0($20)
98 15 rhoads
   sb    $21,0($20)
99
 
100 23 rhoads
   #a: ADD
101
   ori   $2,$0,'a'
102
   sb    $2,0($20)
103 15 rhoads
   ori   $3,$0,5
104
   ori   $4,$0,60
105
   add   $2,$3,$4
106 23 rhoads
   sb    $2,0($20)    #A
107 68 rhoads
   sb    $23,0($20)
108 15 rhoads
   sb    $21,0($20)
109
 
110 23 rhoads
   #b: ADDI
111
   ori   $2,$0,'b'
112
   sb    $2,0($20)
113 15 rhoads
   ori   $4,$0,60
114
   addi  $2,$4,5
115 23 rhoads
   sb    $2,0($20)    #A
116 68 rhoads
   sb    $23,0($20)
117 15 rhoads
   sb    $21,0($20)
118
 
119 23 rhoads
   #c: ADDIU
120
   ori   $2,$0,'c'
121
   sb    $2,0($20)
122 15 rhoads
   ori   $4,$0,50
123
   addiu $5,$4,15
124 23 rhoads
   sb    $5,0($20)    #A
125 68 rhoads
   sb    $23,0($20)
126 15 rhoads
   sb    $21,0($20)
127
 
128 23 rhoads
   #d: ADDU
129
   ori   $2,$0,'d'
130
   sb    $2,0($20)
131 15 rhoads
   ori   $3,$0,5
132
   ori   $4,$0,60
133
   add   $2,$3,$4
134 23 rhoads
   sb    $2,0($20)    #A
135 68 rhoads
   sb    $23,0($20)
136 15 rhoads
   sb    $21,0($20)
137
 
138 23 rhoads
   #e: DIV
139
   ori   $2,$0,'e'
140
   sb    $2,0($20)
141
   ori   $2,$0,65*117+41
142
   ori   $3,$0,117
143 15 rhoads
   div   $2,$3
144
   nop
145
   mflo  $4
146 23 rhoads
   sb    $4,0($20)    #A
147
   mfhi  $4
148
   addi  $4,$4,66-41
149
   sb    $4,0($20)    #B
150
   li    $2,-67*19
151 15 rhoads
   ori   $3,$0,19
152
   div   $2,$3
153
   nop
154
   mflo  $4
155
   sub   $4,$0,$4
156 23 rhoads
   sb    $4,0($20)    #C
157
   ori   $2,$0,68*23
158 15 rhoads
   li    $3,-23
159
   div   $2,$3
160
   nop
161
   mflo  $4
162
   sub   $4,$0,$4
163 23 rhoads
   sb    $4,0($20)    #D
164
   li    $2,-69*13
165 15 rhoads
   li    $3,-13
166
   div   $2,$3
167
   mflo  $4
168 23 rhoads
   sb    $4,0($20)    #E
169 68 rhoads
   sb    $23,0($20)
170 15 rhoads
   sb    $21,0($20)
171
 
172 23 rhoads
   #f: DIVU
173
   ori   $2,$0,'f'
174
   sb    $2,0($20)
175 15 rhoads
   ori   $2,$0,65*13
176
   ori   $3,$0,13
177 23 rhoads
   divu  $2,$3
178 15 rhoads
   nop
179
   mflo  $4
180 23 rhoads
   sb    $4,0($20)    #A
181 68 rhoads
   sb    $23,0($20)
182 15 rhoads
   sb    $21,0($20)
183
 
184 23 rhoads
   #g: MULT
185
   ori   $2,$0,'g'
186
   sb    $2,0($20)
187 15 rhoads
   ori   $2,$0,5
188
   ori   $3,$0,13
189
   mult  $2,$3
190
   nop
191
   mflo  $4
192 23 rhoads
   sb    $4,0($20)    #A
193 15 rhoads
   li    $2,-5
194
   ori   $3,$0,13
195
   mult  $2,$3
196 100 rhoads
   mfhi  $5
197 15 rhoads
   mflo  $4
198
   sub   $4,$0,$4
199 100 rhoads
   addu  $4,$4,$5
200
   addi  $4,$4,2
201 23 rhoads
   sb    $4,0($20)    #B
202 15 rhoads
   ori   $2,$0,5
203
   li    $3,-13
204
   mult  $2,$3
205 100 rhoads
   mfhi  $5
206 15 rhoads
   mflo  $4
207
   sub   $4,$0,$4
208 100 rhoads
   addu  $4,$4,$5
209
   addi  $4,$4,3
210 23 rhoads
   sb    $4,0($20)    #C
211 15 rhoads
   li    $2,-5
212
   li    $3,-13
213
   mult  $2,$3
214 100 rhoads
   mfhi  $5
215 15 rhoads
   mflo  $4
216 100 rhoads
   addu  $4,$4,$5
217 15 rhoads
   addi  $4,$4,3
218 23 rhoads
   sb    $4,0($20)    #D
219 44 rhoads
   lui   $4,0xfe98
220
   ori   $4,$4,0x62e5
221
   lui   $5,0x6
222
   ori   $5,0x8db8
223
   mult  $4,$5
224
   mfhi  $6
225
   addiu $7,$6,2356+1+'E' #E
226
   sb    $7,0($20)
227 68 rhoads
   sb    $23,0($20)
228 15 rhoads
   sb    $21,0($20)
229
 
230 23 rhoads
   #h: MULTU
231
   ori   $2,$0,'h'
232
   sb    $2,0($20)
233 15 rhoads
   ori   $2,$0,5
234
   ori   $3,$0,13
235 23 rhoads
   multu $2,$3
236 15 rhoads
   nop
237
   mflo  $4
238 23 rhoads
   sb    $4,0($20)    #A
239 68 rhoads
   sb    $23,0($20)
240 15 rhoads
   sb    $21,0($20)
241
 
242 23 rhoads
   #i: SLT
243
   ori   $2,$0,'i'
244
   sb    $2,0($20)
245 15 rhoads
   ori   $2,$0,10
246
   ori   $3,$0,12
247
   slt   $4,$2,$3
248
   addi  $5,$4,64
249 23 rhoads
   sb    $5,0($20)    #A
250 15 rhoads
   slt   $4,$3,$2
251
   addi  $5,$4,66
252 23 rhoads
   sb    $5,0($20)    #B
253 15 rhoads
   li    $2,0xfffffff0
254
   slt   $4,$2,$3
255
   addi  $5,$4,66
256 23 rhoads
   sb    $5,0($20)    #C
257 15 rhoads
   slt   $4,$3,$2
258
   addi  $5,$4,68
259 23 rhoads
   sb    $5,0($20)    #D
260 15 rhoads
   li    $3,0xffffffff
261
   slt   $4,$2,$3
262
   addi  $5,$4,68
263 23 rhoads
   sb    $5,0($20)    #E
264 15 rhoads
   slt   $4,$3,$2
265
   addi  $5,$4,70
266 23 rhoads
   sb    $5,0($20)    #F
267 68 rhoads
   sb    $23,0($20)
268 15 rhoads
   sb    $21,0($20)
269
 
270 23 rhoads
   #j: SLTI
271
   ori   $2,$0,'j'
272
   sb    $2,0($20)
273 15 rhoads
   ori   $2,$0,10
274
   slti  $4,$2,12
275
   addi  $5,$4,64
276 23 rhoads
   sb    $5,0($20)    #A
277 15 rhoads
   slti  $4,$2,8
278
   addi  $5,$4,66
279 23 rhoads
   sb    $5,0($20)    #B
280 68 rhoads
   sb    $23,0($20)
281 15 rhoads
   sb    $21,0($20)
282
 
283 23 rhoads
   #k: SLTIU
284
   ori   $2,$0,'k'
285
   sb    $2,0($20)
286 15 rhoads
   ori   $2,$0,10
287
   sltiu $4,$2,12
288
   addi  $5,$4,64
289 23 rhoads
   sb    $5,0($20)    #A
290 15 rhoads
   sltiu $4,$2,8
291
   addi  $5,$4,66
292 23 rhoads
   sb    $5,0($20)    #B
293 68 rhoads
   sb    $23,0($20)
294 15 rhoads
   sb    $21,0($20)
295
 
296 23 rhoads
   #l: SLTU
297
   ori   $2,$0,'l'
298
   sb    $2,0($20)
299 15 rhoads
   ori   $2,$0,10
300
   ori   $3,$0,12
301
   slt   $4,$2,$3
302
   addi  $5,$4,64
303 23 rhoads
   sb    $5,0($20)    #A
304 15 rhoads
   slt   $4,$3,$2
305
   addi  $5,$4,66
306 23 rhoads
   sb    $5,0($20)    #B
307 68 rhoads
   sb    $23,0($20)
308 15 rhoads
   sb    $21,0($20)
309
 
310 23 rhoads
   #m: SUB
311
   ori   $2,$0,'m'
312
   sb    $2,0($20)
313 15 rhoads
   ori   $3,$0,70
314
   ori   $4,$0,5
315
   sub   $2,$3,$4
316 23 rhoads
   sb    $2,0($20)    #A
317 68 rhoads
   sb    $23,0($20)
318 15 rhoads
   sb    $21,0($20)
319
 
320 23 rhoads
   #n: SUBU
321
   ori   $2,$0,'n'
322
   sb    $2,0($20)
323 15 rhoads
   ori   $3,$0,70
324
   ori   $4,$0,5
325
   sub   $2,$3,$4
326 23 rhoads
   sb    $2,0($20)    #A
327 68 rhoads
   sb    $23,0($20)
328 15 rhoads
   sb    $21,0($20)
329
 
330
   ######################################
331
   #Branch and Jump Instructions
332
   ######################################
333 194 rhoads
BranchTest:
334 15 rhoads
   ori   $2,$0,'B'
335
   sb    $2,0($20)
336
   ori   $2,$0,'r'
337
   sb    $2,0($20)
338
   ori   $2,$0,'a'
339
   sb    $2,0($20)
340
   ori   $2,$0,'n'
341
   sb    $2,0($20)
342
   ori   $2,$0,'c'
343
   sb    $2,0($20)
344
   ori   $2,$0,'h'
345
   sb    $2,0($20)
346 68 rhoads
   sb    $23,0($20)
347 15 rhoads
   sb    $21,0($20)
348
 
349 23 rhoads
   #a: B
350
   ori   $2,$0,'a'
351
   sb    $2,0($20)
352 15 rhoads
   ori   $10,$0,'A'
353
   ori   $11,$0,'B'
354
   b     $B1
355
   sb    $10,0($20)
356
   sb    $22,0($20)
357
$B1:
358
   sb    $11,0($20)
359 68 rhoads
   sb    $23,0($20)
360 15 rhoads
   sb    $21,0($20)
361
 
362 23 rhoads
   #b: BAL
363
   ori   $2,$0,'b'
364
   sb    $2,0($20)
365 15 rhoads
   ori   $10,$0,'A'
366
   ori   $11,$0,'B'
367
   ori   $12,$0,'C'
368
   ori   $13,$0,'D'
369
   ori   $14,$0,'E'
370
   ori   $15,$0,'X'
371
   bal   $BAL1
372
   sb    $10,0($20)
373
   sb    $13,0($20)
374
   b     $BAL2
375
   sb    $14,0($20)
376
   sb    $15,0($20)
377
$BAL1:
378
   sb    $11,0($20)
379
   jr    $31
380
   sb    $12,0($20)
381
   sb    $22,0($20)
382
$BAL2:
383 68 rhoads
   sb    $23,0($20)
384 15 rhoads
   sb    $21,0($20)
385
 
386 23 rhoads
   #c: BEQ
387
   ori   $2,$0,'c'
388
   sb    $2,0($20)
389 15 rhoads
   ori   $10,$0,'A'
390
   ori   $11,$0,'B'
391
   ori   $12,$0,'C'
392
   ori   $13,$0,'D'
393
   ori   $2,$0,100
394
   ori   $3,$0,123
395
   ori   $4,$0,123
396
   beq   $2,$3,$BEQ1
397
   sb    $10,0($20)
398
   sb    $11,0($20)
399
   beq   $3,$4,$BEQ1
400
   sb    $12,0($20)
401
   sb    $22,0($20)
402
$BEQ1:
403
   sb    $13,0($20)
404 68 rhoads
   sb    $23,0($20)
405 15 rhoads
   sb    $21,0($20)
406
 
407 23 rhoads
   #d: BGEZ
408
   ori   $2,$0,'d'
409
   sb    $2,0($20)
410 15 rhoads
   ori   $10,$0,'A'
411
   ori   $11,$0,'B'
412
   ori   $12,$0,'C'
413
   ori   $13,$0,'D'
414
   or    $15,$0,'X'
415
   ori   $2,$0,100
416
   li    $3,0xffff1234
417
   ori   $4,$0,123
418
   bgez  $3,$BGEZ1
419
   sb    $10,0($20)
420
   sb    $11,0($20)
421
   bgez  $2,$BGEZ1
422
   sb    $12,0($20)
423
   sb    $22,0($20)
424
$BGEZ1:
425
   bgez  $0,$BGEZ2
426
   nop
427
   sb    $15,0($20)
428
$BGEZ2:
429
   sb    $13,0($20)
430 68 rhoads
   sb    $23,0($20)
431 15 rhoads
   sb    $21,0($20)
432
 
433 23 rhoads
   #e: BGEZAL
434
   ori   $2,$0,'e'
435
   sb    $2,0($20)
436 15 rhoads
   ori   $10,$0,'A'
437
   ori   $11,$0,'B'
438
   ori   $12,$0,'C'
439
   ori   $13,$0,'D'
440
   ori   $14,$0,'E'
441
   ori   $15,$0,'X'
442
   li    $3,0xffff1234
443
   bgezal $3,$BGEZAL1
444
   nop
445
   sb    $10,0($20)
446
   bgezal $0,$BGEZAL1
447
   nop
448
   sb    $13,0($20)
449
   b     $BGEZAL2
450
   sb    $14,0($20)
451
   sb    $15,0($20)
452
$BGEZAL1:
453
   sb    $11,0($20)
454
   jr    $31
455
   sb    $12,0($20)
456
   sb    $22,0($20)
457
$BGEZAL2:
458 68 rhoads
   sb    $23,0($20)
459 15 rhoads
   sb    $21,0($20)
460
 
461 23 rhoads
   #f: BGTZ
462
   ori   $2,$0,'f'
463
   sb    $2,0($20)
464 15 rhoads
   ori   $10,$0,'A'
465
   ori   $11,$0,'B'
466
   ori   $12,$0,'C'
467
   ori   $13,$0,'D'
468
   ori   $2,$0,100
469
   li    $3,0xffff1234
470
   bgtz  $3,$BGTZ1
471
   sb    $10,0($20)
472
   sb    $11,0($20)
473
   bgtz  $2,$BGTZ1
474
   sb    $12,0($20)
475
   sb    $22,0($20)
476
$BGTZ1:
477
   sb    $13,0($20)
478 68 rhoads
   sb    $23,0($20)
479 15 rhoads
   sb    $21,0($20)
480
 
481 23 rhoads
   #g: BLEZ
482
   ori   $2,$0,'g'
483
   sb    $2,0($20)
484 15 rhoads
   ori   $10,$0,'A'
485
   ori   $11,$0,'B'
486
   ori   $12,$0,'C'
487
   ori   $13,$0,'D'
488
   ori   $2,$0,100
489
   li    $3,0xffff1234
490
   blez  $2,$BLEZ1
491
   sb    $10,0($20)
492
   sb    $11,0($20)
493
   blez  $3,$BLEZ1
494
   sb    $12,0($20)
495
   sb    $22,0($20)
496
$BLEZ1:
497
   blez  $0,$BLEZ2
498
   nop
499
   sb    $22,0($20)
500
$BLEZ2:
501
   sb    $13,0($20)
502 68 rhoads
   sb    $23,0($20)
503 15 rhoads
   sb    $21,0($20)
504
 
505 23 rhoads
   #h: BLTZ
506
   ori   $2,$0,'h'
507
   sb    $2,0($20)
508 15 rhoads
   ori   $10,$0,'A'
509
   ori   $11,$0,'B'
510
   ori   $12,$0,'C'
511
   ori   $13,$0,'D'
512
   ori   $14,$0,'E'
513
   ori   $2,$0,100
514
   li    $3,0xffff1234
515
   ori   $4,$0,0
516
   bltz  $2,$BLTZ1
517
   sb    $10,0($20)
518
   sb    $11,0($20)
519
   bltz  $3,$BLTZ1
520
   sb    $12,0($20)
521
   sb    $22,0($20)
522
$BLTZ1:
523
   bltz  $4,$BLTZ2
524
   nop
525
   sb    $13,0($20)
526
$BLTZ2:
527
   sb    $14,0($20)
528 68 rhoads
   sb    $23,0($20)
529 15 rhoads
   sb    $21,0($20)
530
 
531 23 rhoads
   #i: BLTZAL
532
   ori   $2,$0,'i'
533
   sb    $2,0($20)
534 15 rhoads
   ori   $10,$0,'A'
535
   ori   $11,$0,'B'
536
   ori   $12,$0,'C'
537
   ori   $13,$0,'D'
538
   ori   $14,$0,'E'
539
   ori   $15,$0,'X'
540
   li    $3,0xffff1234
541
   bltzal $0,$BLTZAL1
542
   nop
543
   sb    $10,0($20)
544
   bltzal $3,$BLTZAL1
545
   nop
546
   sb    $13,0($20)
547
   b     $BLTZAL2
548
   sb    $14,0($20)
549
   sb    $15,0($20)
550
$BLTZAL1:
551
   sb    $11,0($20)
552
   jr    $31
553
   sb    $12,0($20)
554
   sb    $22,0($20)
555
$BLTZAL2:
556 68 rhoads
   sb    $23,0($20)
557 15 rhoads
   sb    $21,0($20)
558
 
559 23 rhoads
   #j: BNE
560
   ori   $2,$0,'j'
561
   sb    $2,0($20)
562 15 rhoads
   ori   $10,$0,'A'
563
   ori   $11,$0,'B'
564
   ori   $12,$0,'C'
565
   ori   $13,$0,'D'
566
   ori   $2,$0,100
567
   ori   $3,$0,123
568
   ori   $4,$0,123
569
   bne   $3,$4,$BNE1
570
   sb    $10,0($20)
571
   sb    $11,0($20)
572
   bne   $2,$3,$BNE1
573
   sb    $12,0($20)
574
   sb    $22,0($20)
575
$BNE1:
576
   sb    $13,0($20)
577 68 rhoads
   sb    $23,0($20)
578 15 rhoads
   sb    $21,0($20)
579
 
580 23 rhoads
   #k: J
581
   ori   $2,$0,'k'
582
   sb    $2,0($20)
583 15 rhoads
   ori   $10,$0,'A'
584
   ori   $11,$0,'B'
585
   ori   $15,$0,'X'
586
   j     $J1
587
   sb    $10,0($20)
588
   sb    $15,0($20)
589
$J1:
590
   sb    $11,0($20)
591 68 rhoads
   sb    $23,0($20)
592 15 rhoads
   sb    $21,0($20)
593
 
594 23 rhoads
   #l: JAL
595
   ori   $2,$0,'l'
596
   sb    $2,0($20)
597 15 rhoads
   ori   $10,$0,'A'
598
   ori   $11,$0,'B'
599
   ori   $12,$0,'C'
600
   ori   $13,$0,'D'
601
   ori   $14,$0,'E'
602
   ori   $15,$0,'X'
603
   jal   $JAL1
604
   sb    $10,0($20)
605
   sb    $13,0($20)
606
   b     $JAL2
607
   sb    $14,0($20)
608
   sb    $15,0($20)
609
$JAL1:
610
   sb    $11,0($20)
611
   jr    $31
612
   sb    $12,0($20)
613
   sb    $22,0($20)
614
$JAL2:
615 68 rhoads
   sb    $23,0($20)
616 15 rhoads
   sb    $21,0($20)
617
 
618 23 rhoads
   #m: JALR
619
   ori   $2,$0,'m'
620
   sb    $2,0($20)
621 15 rhoads
   ori   $10,$0,'A'
622
   ori   $11,$0,'B'
623
   ori   $12,$0,'C'
624
   ori   $13,$0,'D'
625
   ori   $14,$0,'E'
626
   ori   $15,$0,'X'
627
   la    $3,$JALR1
628
   jalr  $3
629
   sb    $10,0($20)
630
   sb    $13,0($20)
631
   b     $JALR2
632
   sb    $14,0($20)
633
   sb    $15,0($20)
634
$JALR1:
635
   sb    $11,0($20)
636
   jr    $31
637
   sb    $12,0($20)
638
   sb    $22,0($20)
639
$JALR2:
640 68 rhoads
   sb    $23,0($20)
641 15 rhoads
   sb    $21,0($20)
642
 
643 23 rhoads
   #n: JR
644
   ori   $2,$0,'n'
645
   sb    $2,0($20)
646 15 rhoads
   ori   $10,$0,'A'
647
   ori   $11,$0,'B'
648
   ori   $15,$0,'X'
649
   la    $3,$JR1
650
   jr    $3
651
   sb    $10,0($20)
652
   sb    $15,0($20)
653
$JR1:
654
   sb    $11,0($20)
655 68 rhoads
   sb    $23,0($20)
656 15 rhoads
   sb    $21,0($20)
657
 
658 23 rhoads
   #o: NOP
659
   ori   $2,$0,'o'
660
   sb    $2,0($20)
661 15 rhoads
   ori   $2,$0,65
662
   nop
663
   sb    $2,0($20)
664 68 rhoads
   sb    $23,0($20)
665 15 rhoads
   sb    $21,0($20)
666
 
667 194 rhoads
#   b     LoadTest
668 148 rhoads
 
669 194 rhoads
BreakTest:
670
   #p: BREAK
671
   ori   $2,$0,'p'
672
   sb    $2,0($20)
673
   ori   $2,$0,'z'
674
   ori   $4,$0,59
675
   break 0
676
   addi  $4,$4,1
677
   sb    $4,0($20)
678
   sb    $23,0($20)
679
   sb    $21,0($20)
680
 
681
   #q: SYSCALL
682
   ori   $2,$0,'q'
683
   sb    $2,0($20)
684
   ori   $4,$0,61
685
   syscall 0
686
   addi  $4,$4,-1
687
   sb    $4,0($20)
688
   sb    $23,0($20)
689
   sb    $21,0($20)
690
 
691
 
692 15 rhoads
   ######################################
693
   #Load, Store, and Memory Control Instructions
694
   ######################################
695 194 rhoads
LoadTest:
696 15 rhoads
   ori   $2,$0,'L'
697
   sb    $2,0($20)
698
   ori   $2,$0,'o'
699
   sb    $2,0($20)
700
   ori   $2,$0,'a'
701
   sb    $2,0($20)
702
   ori   $2,$0,'d'
703
   sb    $2,0($20)
704 68 rhoads
   sb    $23,0($20)
705 15 rhoads
   sb    $21,0($20)
706
 
707 23 rhoads
   #a: LB
708
   ori   $2,$0,'a'
709
   sb    $2,0($20)
710 68 rhoads
   or    $2,$0,$24
711 148 rhoads
   li    $3,0x414243fc
712 15 rhoads
   sw    $3,16($2)
713
   lb    $4,16($2)
714
   sb    $4,0($20)
715
   lb    $4,17($2)
716
   sb    $4,0($20)
717
   lb    $4,18($2)
718
   sb    $4,0($20)
719
   lb    $2,19($2)
720 148 rhoads
   sra   $3,$2,8
721
   addi  $3,$3,0x45
722
   sb    $3,0($20)
723
   addi  $2,$2,0x49
724 15 rhoads
   sb    $2,0($20)
725 68 rhoads
   sb    $23,0($20)
726 15 rhoads
   sb    $21,0($20)
727
 
728 23 rhoads
   #b: LBU
729
   ori   $2,$0,'b'
730
   sb    $2,0($20)
731 68 rhoads
   or    $2,$0,$24
732 15 rhoads
   li    $3,0x41424344
733
   sw    $3,16($2)
734
   lb    $4,16($2)
735
   sb    $4,0($20)
736
   lb    $4,17($2)
737
   sb    $4,0($20)
738
   lb    $4,18($2)
739
   sb    $4,0($20)
740
   lb    $2,19($2)
741
   sb    $2,0($20)
742 68 rhoads
   sb    $23,0($20)
743 15 rhoads
   sb    $21,0($20)
744
 
745 23 rhoads
   #c: LH
746
   ori   $2,$0,'c'
747
   sb    $2,0($20)
748 68 rhoads
   or    $2,$0,$24
749 15 rhoads
   li    $3,0x00410042
750
   sw    $3,16($2)
751
   lh    $4,16($2)
752
   sb    $4,0($20)
753
   lh    $2,18($2)
754
   sb    $2,0($20)
755 68 rhoads
   sb    $23,0($20)
756 15 rhoads
   sb    $21,0($20)
757
 
758 23 rhoads
   #d: LHU
759
   ori   $2,$0,'d'
760
   sb    $2,0($20)
761 68 rhoads
   or    $2,$0,$24
762 15 rhoads
   li    $3,0x00410042
763
   sw    $3,16($2)
764
   lh    $4,16($2)
765
   sb    $4,0($20)
766
   lh    $2,18($2)
767
   sb    $2,0($20)
768 68 rhoads
   sb    $23,0($20)
769 15 rhoads
   sb    $21,0($20)
770
 
771 23 rhoads
   #e: LW
772
   ori   $2,$0,'e'
773
   sb    $2,0($20)
774 68 rhoads
   or    $2,$0,$24
775 15 rhoads
   li    $3,'A'
776
   sw    $3,16($2)
777
   ori   $3,$0,0
778
   lw    $2,16($2)
779
   sb    $2,0($20)
780 68 rhoads
   sb    $23,0($20)
781 15 rhoads
   sb    $21,0($20)
782
 
783 23 rhoads
   #f: LWL & LWR
784
   ori   $2,$0,'f'
785
   sb    $2,0($20)
786 68 rhoads
   or    $2,$0,$24
787 15 rhoads
   li    $3,'A'
788
   sw    $3,16($2)
789
   ori   $3,$0,0
790
   lwl   $2,16($2)
791
   lwr   $2,16($2)
792
   sb    $2,0($20)
793 68 rhoads
   sb    $23,0($20)
794 15 rhoads
   sb    $21,0($20)
795
 
796 23 rhoads
   #g: SB
797
   ori   $2,$0,'g'
798
   sb    $2,0($20)
799 15 rhoads
   ori   $2,$0,'A'
800
   sb    $2,0($20)
801 68 rhoads
   sb    $23,0($20)
802 15 rhoads
   sb    $21,0($20)
803
 
804 23 rhoads
   #h: SH
805
   ori   $2,$0,'h'
806
   sb    $2,0($20)
807 68 rhoads
   or    $4,$0,$24
808 15 rhoads
   ori   $2,$0,0x4142
809 29 rhoads
   sh    $2,16($4)
810
   lb    $3,16($4)
811 15 rhoads
   sb    $3,0($20)
812 29 rhoads
   lb    $2,17($4)
813 15 rhoads
   sb    $2,0($20)
814 68 rhoads
   sb    $23,0($20)
815 15 rhoads
   sb    $21,0($20)
816
 
817 23 rhoads
   #i: SW
818
   ori   $2,$0,'i'
819
   sb    $2,0($20)
820 68 rhoads
   or    $2,$0,$24
821 15 rhoads
   li    $3,0x41424344
822
   sw    $3,16($2)
823
   lb    $4,16($2)
824
   sb    $4,0($20)
825
   lb    $4,17($2)
826
   sb    $4,0($20)
827
   lb    $4,18($2)
828
   sb    $4,0($20)
829
   lb    $2,19($2)
830
   sb    $2,0($20)
831 68 rhoads
   sb    $23,0($20)
832 15 rhoads
   sb    $21,0($20)
833
 
834 23 rhoads
   #j: SWL & SWR
835
   ori   $2,$0,'j'
836
   sb    $2,0($20)
837 68 rhoads
   or    $2,$0,$24
838 15 rhoads
   li    $3,0x41424344
839
   swl   $3,16($2)
840
   swr   $3,16($2)
841
   lb    $4,16($2)
842
   sb    $4,0($20)
843
   lb    $4,17($2)
844
   sb    $4,0($20)
845
   lb    $4,18($2)
846
   sb    $4,0($20)
847
   lb    $2,19($2)
848
   sb    $2,0($20)
849 68 rhoads
   sb    $23,0($20)
850 15 rhoads
   sb    $21,0($20)
851
 
852
 
853
   ######################################
854
   #Logical Instructions
855
   ######################################
856 194 rhoads
LogicalTest:
857 15 rhoads
   ori   $2,$0,'L'
858
   sb    $2,0($20)
859
   ori   $2,$0,'o'
860
   sb    $2,0($20)
861
   ori   $2,$0,'g'
862
   sb    $2,0($20)
863
   ori   $2,$0,'i'
864
   sb    $2,0($20)
865
   ori   $2,$0,'c'
866
   sb    $2,0($20)
867 68 rhoads
   sb    $23,0($20)
868 15 rhoads
   sb    $21,0($20)
869
 
870 23 rhoads
   #a: AND
871
   ori   $2,$0,'a'
872
   sb    $2,0($20)
873 15 rhoads
   ori   $2,$0,0x0741
874
   ori   $3,$0,0x60f3
875
   and   $4,$2,$3
876
   sb    $4,0($20)
877 68 rhoads
   sb    $23,0($20)
878 15 rhoads
   sb    $21,0($20)
879
 
880 23 rhoads
   #b: ANDI
881
   ori   $2,$0,'b'
882
   sb    $2,0($20)
883 15 rhoads
   ori   $2,$0,0x0741
884
   andi  $4,$2,0x60f3
885
   sb    $4,0($20)
886 68 rhoads
   sb    $23,0($20)
887 15 rhoads
   sb    $21,0($20)
888
 
889 23 rhoads
   #c: LUI
890
   ori   $2,$0,'c'
891
   sb    $2,0($20)
892 15 rhoads
   lui   $2,0x41
893
   srl   $3,$2,16
894
   sb    $3,0($20)
895 68 rhoads
   sb    $23,0($20)
896 15 rhoads
   sb    $21,0($20)
897
 
898 23 rhoads
   #d: NOR
899
   ori   $2,$0,'d'
900
   sb    $2,0($20)
901 15 rhoads
   li    $2,0xf0fff08e
902
   li    $3,0x0f0f0f30
903
   nor   $4,$2,$3
904
   sb    $4,0($20)
905 68 rhoads
   sb    $23,0($20)
906 15 rhoads
   sb    $21,0($20)
907
 
908 23 rhoads
   #e: OR
909
   ori   $2,$0,'e'
910
   sb    $2,0($20)
911 15 rhoads
   ori   $2,$0,0x40
912
   ori   $3,$0,0x01
913
   or    $4,$2,$3
914
   sb    $4,0($20)
915 68 rhoads
   sb    $23,0($20)
916 15 rhoads
   sb    $21,0($20)
917
 
918 23 rhoads
   #f: ORI
919
   ori   $2,$0,'f'
920
   sb    $2,0($20)
921 15 rhoads
   ori   $2,$0,0x40
922
   ori   $4,$2,0x01
923
   sb    $4,0($20)
924 68 rhoads
   sb    $23,0($20)
925 15 rhoads
   sb    $21,0($20)
926
 
927 23 rhoads
   #g: XOR
928
   ori   $2,$0,'g'
929
   sb    $2,0($20)
930 15 rhoads
   ori   $2,$0,0xf043
931
   ori   $3,$0,0xf002
932
   xor   $4,$2,$3
933
   sb    $4,0($20)
934 68 rhoads
   sb    $23,0($20)
935 15 rhoads
   sb    $21,0($20)
936
 
937 23 rhoads
   #h: XORI
938
   ori   $2,$0,'h'
939
   sb    $2,0($20)
940 15 rhoads
   ori   $2,$0,0xf043
941
   xor   $4,$2,0xf002
942
   sb    $4,0($20)
943 68 rhoads
   sb    $23,0($20)
944 15 rhoads
   sb    $21,0($20)
945
 
946
 
947
   ######################################
948
   #Move Instructions
949
   ######################################
950 194 rhoads
MoveTest:
951 15 rhoads
   ori   $2,$0,'M'
952
   sb    $2,0($20)
953
   ori   $2,$0,'o'
954
   sb    $2,0($20)
955
   ori   $2,$0,'v'
956
   sb    $2,0($20)
957
   ori   $2,$0,'e'
958
   sb    $2,0($20)
959 68 rhoads
   sb    $23,0($20)
960 15 rhoads
   sb    $21,0($20)
961
 
962 23 rhoads
   #a: MFHI
963
   ori   $2,$0,'a'
964
   sb    $2,0($20)
965 15 rhoads
   ori   $2,$0,65
966
   mthi  $2
967
   mfhi  $3
968
   sb    $3,0($20)
969 68 rhoads
   sb    $23,0($20)
970 15 rhoads
   sb    $21,0($20)
971
 
972 23 rhoads
   #b: MFLO
973
   ori   $2,$0,'b'
974
   sb    $2,0($20)
975 15 rhoads
   ori   $2,$0,65
976
   mtlo  $2
977
   mflo  $3
978
   sb    $3,0($20)
979 68 rhoads
   sb    $23,0($20)
980 15 rhoads
   sb    $21,0($20)
981
 
982 23 rhoads
   #c: MTHI
983
   ori   $2,$0,'c'
984
   sb    $2,0($20)
985 15 rhoads
   ori   $2,$0,65
986
   mthi  $2
987
   mfhi  $3
988
   sb    $3,0($20)
989 68 rhoads
   sb    $23,0($20)
990 15 rhoads
   sb    $21,0($20)
991
 
992 23 rhoads
   #d: MTLO
993
   ori   $2,$0,'d'
994
   sb    $2,0($20)
995 15 rhoads
   ori   $2,$0,65
996
   mtlo  $2
997
   mflo  $3
998
   sb    $3,0($20)
999 68 rhoads
   sb    $23,0($20)
1000 15 rhoads
   sb    $21,0($20)
1001
 
1002
 
1003
   ######################################
1004
   #Shift Instructions
1005
   ######################################
1006 194 rhoads
ShiftTest:
1007 15 rhoads
   ori   $2,$0,'S'
1008
   sb    $2,0($20)
1009
   ori   $2,$0,'h'
1010
   sb    $2,0($20)
1011
   ori   $2,$0,'i'
1012
   sb    $2,0($20)
1013
   ori   $2,$0,'f'
1014
   sb    $2,0($20)
1015
   ori   $2,$0,'t'
1016
   sb    $2,0($20)
1017 68 rhoads
   sb    $23,0($20)
1018 15 rhoads
   sb    $21,0($20)
1019
 
1020 23 rhoads
   #a: SLL
1021
   ori   $2,$0,'a'
1022
   sb    $2,0($20)
1023 15 rhoads
   li    $2,0x40414243
1024
   sll   $3,$2,8
1025
   srl   $3,$3,24
1026
   sb    $3,0($20)
1027 68 rhoads
   sb    $23,0($20)
1028 15 rhoads
   sb    $21,0($20)
1029
 
1030 23 rhoads
   #b: SLLV
1031
   ori   $2,$0,'b'
1032
   sb    $2,0($20)
1033 15 rhoads
   li    $2,0x40414243
1034
   ori   $3,$0,8
1035
   sllv  $3,$2,$3
1036
   srl   $3,$3,24
1037
   sb    $3,0($20)
1038 68 rhoads
   sb    $23,0($20)
1039 15 rhoads
   sb    $21,0($20)
1040
 
1041 23 rhoads
   #c: SRA
1042
   ori   $2,$0,'c'
1043
   sb    $2,0($20)
1044 15 rhoads
   li    $2,0x40414243
1045
   sra   $3,$2,16
1046
   sb    $3,0($20)
1047
   li    $2,0x84000000
1048
   sra   $3,$2,25
1049
   sub   $3,$3,0x80
1050
   sb    $3,0($20)
1051 68 rhoads
   sb    $23,0($20)
1052 15 rhoads
   sb    $21,0($20)
1053
 
1054 23 rhoads
   #d: SRAV
1055
   ori   $2,$0,'d'
1056
   sb    $2,0($20)
1057 15 rhoads
   li    $2,0x40414243
1058
   ori   $3,$0,16
1059
   srav  $3,$2,$3
1060
   sb    $3,0($20)
1061
   ori   $3,$0,25
1062
   li    $2,0x84000000
1063 29 rhoads
   srav  $3,$2,$3
1064 15 rhoads
   sub   $3,$3,0x80
1065
   sb    $3,0($20)
1066 68 rhoads
   sb    $23,0($20)
1067 15 rhoads
   sb    $21,0($20)
1068
 
1069 23 rhoads
   #e: SRL
1070
   ori   $2,$0,'e'
1071
   sb    $2,0($20)
1072 15 rhoads
   li    $2,0x40414243
1073
   srl   $3,$2,16
1074
   sb    $3,0($20)
1075
   li    $2,0x84000000
1076 29 rhoads
   srl   $3,$2,25
1077 15 rhoads
   sb    $3,0($20)
1078 68 rhoads
   sb    $23,0($20)
1079 15 rhoads
   sb    $21,0($20)
1080
 
1081 23 rhoads
   #f: SRLV
1082
   ori   $2,$0,'f'
1083
   sb    $2,0($20)
1084 15 rhoads
   li    $2,0x40414243
1085
   ori   $3,$0,16
1086
   srlv  $4,$2,$3
1087
   sb    $4,0($20)
1088
   ori   $3,$0,25
1089
   li    $2,0x84000000
1090 29 rhoads
   srlv  $3,$2,$3
1091 15 rhoads
   sb    $3,0($20)
1092 68 rhoads
   sb    $23,0($20)
1093 15 rhoads
   sb    $21,0($20)
1094
 
1095
 
1096
   ori   $2,$0,'D'
1097
   sb    $2,0($20)
1098
   ori   $2,$0,'o'
1099
   sb    $2,0($20)
1100
   ori   $2,$0,'n'
1101
   sb    $2,0($20)
1102
   ori   $2,$0,'e'
1103
   sb    $2,0($20)
1104 68 rhoads
   sb    $23,0($20)
1105 15 rhoads
   sb    $21,0($20)
1106
 
1107
 
1108
$DONE:
1109
   j     $DONE
1110
   nop
1111
 
1112
   .set reorder
1113
        .end    entry
1114
 

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.