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

Subversion Repositories minimips

[/] [minimips/] [trunk/] [gasm/] [Syntaxe] - Blame information for rev 15

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

Line No. Rev Author Line
1 2 poppy
; This file is part of gasm.
2
;
3
;
4
; If you encountered any problem, please contact :
5
;
6
;   lmouton@enserg.fr
7
;   shangoue@enserg.fr
8
;
9
 
10
 
11
 
12
;===============================================================================;
13
;                                                                               ;
14
;                                                                               ;
15
; Fichier de donnees sur la syntaxe de l'assembleur du microprocesseur miniMIPS ;
16
;                                                                               ;
17
;                                                                               ;
18
;===============================================================================;
19
 
20
; Les instructions SET s'adressant au preparateur doivent se trouver avant la première accolade.
21
 
22
 
23
SET MACROFILE   psd_instr.sx            ; Fichier macro par défaut (pseudo instructions).
24
SET NOCASSE                             ; L'assembleur MIPS n'est pas sensible à la casse
25
 
26
SET DEFINESTR   D                       ; Chaine de définition de macro
27
SET UNDEFSTR    U                       ; Chaine de supression de macro
28
 
29
; Il est également possible d'activer l'inclusion de fichier mais dans ce cas la liste
30
; d'assemblage sera interdite...
31
; SET INCLUDESTR        I               ; Chaine d'inclusion de fichier
32
 
33
; Définition du séparateur d'instructions (ici, NL)
34
; Le séparateur est utilisé lors de la détection d'une erreur par l'analyseur pour déterminer
35
; à partir de quel endroit poursuivre l'assemblage. Il effectue la recherche du prochain séparateur
36
; puis se place juste après et continue l'analyse.
37
SET SEP
38
 
39
; Définition des sous-types que l'on utilise dans la syntaxe de l'assembleur.
40
; Le nombre de sous-types pouvant actuellement être référencés est de 16.
41
SET NUMSST      3               ; Déclaration de deux sous types du type ALPHA
42
 
43
; Le troisième champ correspond au code du sous-type. Si plusieurs sont identiques,
44
; ils seront confondus par l'assembleur. On peut utiliser cette propriété pour
45
; définir plusieurs motifs définissant le même type.
46
; Codage des registres R0 à R31 (la notation R02 est autorisée) :
47
SET NEWSST      Reg     $?09    1
48
SET NEWSST      Reg     $?02?09 1
49
SET NEWSST      Reg     $3?01   1
50
 
51
; Mots clefs autorisées dans la déclaration de la syntaxe d'une instruction : Int, Alpha, Reg
52
; Mots clefs autorisés dans les propriétés de l'instruction : TMO, MSK, FUN
53
; Les masques doivent commencer par - et peuvent contenir - le caractère '_'
54
 
55
; Autorise les lignes vides
56
{
57
}
58
 
59
; Déclaration d'étiquette
60
{ Alpha: }
61
        FUN     Ajoute_Etiquette                ; Ajoute une étiquette dans la table
62
 
63
; DÉFINITION DES DIRECTIVES
64
 
65
; Directives de définition des équivalences
66
{ Alpha EQU Alpha }
67
        FUN     AddEqu
68
 
69
{ Alpha EQU Int }
70
        FUN     AddEqu
71
 
72
; Directive d'alignement sur adresse congrue à 4
73
{ ALIGN4 }
74
        FUN     Complete_zeros
75
 
76
; Directives d'inclusion de données dans le code
77
{ DCB Int }
78
        TMO     1
79
        MSK     _0000_0000_
80
        FUN     Dcb_Int
81
{ DCB Alpha }
82
        TMO     1
83
        MSK     _0000_0000_
84
        FUN     Dcb_Alpha
85
{ DCW Int }
86
        TMO     4
87
        MSK     _0000_0000_0000_0000__0000_0000_0000_0000_
88
        FUN     Dcw_Int
89
{ DCW Alpha }
90
        TMO     2
91
        MSK     _0000_0000_0000_0000__0000_0000_0000_0000_
92
        FUN     Dcw_Alpha
93
 
94
; Directives de positionnement de l'adresse d'implantation
95
{ ORG Int }
96
        FUN     Org_Int
97
 
98
{ ORG Alpha }
99
        FUN     Org_Label
100
 
101
; DEFINITION DES INSTRUCTIONS
102
 
103
; Instruction ADD
104
{ ADD Reg, Reg, Reg }
105
        TMO     4
106
        MSK     _000000_00000_00000_00000_00000_100000
107
        FUN     R1D
108
        FUN     R3S
109
        FUN     R5T
110
 
111
; Instruction ADDI
112
{ ADDI Reg, Reg, Int }
113
    TMO     4
114
    MSK _001000_00000_00000__00000000_00000000
115
    FUN     R1T
116
    FUN     R3S
117
    FUN     IMM5
118
{ ADDI Reg, Reg, Alpha }
119
    TMO     4
120
    MSK _001000_00000_00000__00000000_00000000
121
    FUN     R1T
122
    FUN     R3S
123
    FUN     ETIQ5
124
 
125
; Instruction ADDIU
126
{ ADDIU Reg, Reg, Int }
127
    TMO     4
128
    MSK _001001_00000_00000__00000000_00000000
129
    FUN     R1T
130
    FUN     R3S
131
    FUN     IMM5
132
 
133
; Instruction ADDU
134
{ ADDU Reg, Reg, Reg }
135
        TMO     4
136
        MSK     _000000_00000_00000_00000_00000_100001
137
        FUN     R1D
138
        FUN     R3S
139
        FUN     R5T
140
 
141
; Instruction AND
142
{ AND Reg, Reg, Reg }
143
        TMO     4
144
        MSK     _000000_00000_00000_00000_00000_100100
145
        FUN     R1D
146
        FUN     R3S
147
        FUN     R5T
148
 
149
; Instruction ANDI
150
{ ANDI Reg, Reg, Int }
151
        TMO     4
152
        MSK     _001100_00000_00000__00000000_00000000
153
        FUN     R1T
154
        FUN     R3S
155
        FUN     IMM5
156
{ ANDI Reg, Reg, Alpha }
157
        TMO     4
158
        MSK     _001100_00000_00000__00000000_00000000
159
        FUN     R1T
160
        FUN     R3S
161
        FUN     ETIQ5
162
 
163
; Instruction BEQ
164
{ BEQ Reg, Reg, Alpha }
165
        TMO     4
166
        MSK     _000100_00000_00000__0000_0000_0000_0000
167
        FUN     R1S
168
        FUN     R3T
169
        FUN     OFFSET5
170
 
171
; Instruction BGEZ
172
{ BGEZ Reg, Alpha }
173
        TMO     4
174
        MSK     _000001_00000_00001__00000000_00000000
175
        FUN     R1S
176
        FUN     OFFSET3
177
 
178
; Instruction BGEZAL
179
{ BGEZAL Reg, Alpha }
180
        TMO     4
181
        MSK     _000001_00000_10001__00000000_00000000
182
        FUN     R1S
183
        FUN     OFFSET3
184
 
185
; Instruction BGTZ
186
{ BGTZ Reg, Alpha }
187
        TMO     4
188
        MSK     _000111_00000_00000__00000000_00000000
189
        FUN     R1S
190
        FUN     OFFSET3
191
 
192
; Instruction BLEZ
193
{ BLEZ Reg, Alpha }
194
        TMO     4
195
        MSK     _000110_00000_00000__00000000_00000000
196
        FUN     R1S
197
        FUN     OFFSET3
198
 
199
; Instruction BLTZ
200
{ BLTZ Reg, Alpha }
201
        TMO     4
202
        MSK     _000001_00000_00000__00000000_00000000
203
        FUN     R1S
204
        FUN     OFFSET3
205
 
206
; Instruction BLTZAL
207
{ BLTZAL Reg, Alpha }
208
        TMO     4
209
        MSK     _000001_00000_10000__00000000_00000000
210
        FUN     R1S
211
        FUN     OFFSET3
212
 
213
; Instruction BNE
214
{ BNE Reg, Reg, Alpha }
215
        TMO     4
216
        MSK     _000101_00000_00000__00000000_00000000
217
        FUN     R1S
218
        FUN     R3T
219
        FUN     OFFSET5
220
 
221
; Instruction BREAK
222
{ BREAK }
223
        TMO     4
224
        MSK     _000000__00000_00000_00000_00000__001101
225
 
226
; Instruction COP0
227
{ COP0 Int }
228
        TMO     4
229
        MSK     _010000_00001_00000_0000_0000_0000_0000
230
    FUN IMM1
231
 
232
; Instruction J
233
{ J Alpha }
234
        TMO     4
235
        MSK     _000010__00_0000_0000_0000_0000_0000_0000
236
        FUN     ABSOLU1
237
 
238
; Instruction JAL
239
{ JAL Alpha }
240
        TMO     4
241
        MSK     _000011__00_0000_0000_0000_0000_0000_0000
242
        FUN     ABSOLU1
243
 
244
; Instruction JALR
245
{ JAL Reg, Reg }
246
        TMO     4
247
        MSK     _000000_00000_00000_00000_00000_001001
248
        FUN     R1D
249
        FUN     R3S
250
 
251
; Instruction JALR avec rd=$31 implicite
252
{ JAL Reg }
253
        TMO     4
254
        MSK     _000000_00000_00000_11111_00000_001001
255
        FUN     R1S
256
 
257
; Instruction JR
258
{ JR Reg }
259
        TMO     4
260
        MSK     _000000_00000__000_0000_0000_0000__001000
261
        FUN     R1S
262
 
263
; Instruction LUI
264
{ LUI Reg, Int }
265
    TMO 4
266
    MSK _001111_00000_00000__0000_0000_0000_0000
267
    FUN R1T
268
    FUN IMM3
269
{ LUI Reg, Alpha }
270
    TMO 4
271
    MSK _001111_00000_00000__0000_0000_0000_0000
272
    FUN R1T
273
    FUN ETIQ3
274
 
275
; Instruction LW
276
{ LW Reg, Int(Reg) }
277
        TMO     4
278
        MSK     _100011_00000_00000__0000_0000_0000_0000
279
        FUN     R1T
280
        FUN     IMM3
281
        FUN     R5S
282
 
283
; Instruction LWC0
284
{ LWC0 Reg, Int(Reg) }
285
    TMO 4
286
    MSK _110000_00000_00000__0000_0000_0000_0000
287
    FUN R1T
288
    FUN IMM3
289
    FUN R5S
290
 
291
; Instruction MFC0
292
{ MFC0 Reg, Reg }
293
    TMO 4
294
    MSK _010000_00000_00000_00000__000000_00000
295
    FUN R1D
296
    FUN R3T
297
 
298
; Instruction MFHI
299
{ MFHI Reg }
300
        TMO     4
301
        MSK     _000000_0000000000_00000_00000_010000
302
        FUN     R1D
303
 
304
; Instruction MFLO
305
{ MFLO Reg }
306
        TMO     4
307
        MSK     _000000_0000000000_00000_00000_010010
308
        FUN     R1D
309
 
310
; Instruction MTC0
311
{ MTC0 Reg, Reg }
312
    TMO 4
313
    MSK _010000_00100_00000_00000__000000_00000
314
    FUN R1T
315
    FUN R3D
316
 
317
; Instruction MTHI
318
{ MTHI Reg }
319
        TMO     4
320
        MSK     _000000_00000__0_0000_0000_0000_00__010001
321
        FUN     R1S
322
 
323
; Instruction MTLO
324
{ MTLO Reg }
325
        TMO     4
326
        MSK     _000000_00000__0_0000_0000_0000_00__010011
327
        FUN     R1S
328
 
329
; Instruction MULT
330
{ MULT Reg, Reg }
331
    TMO 4
332
    MSK _000000_00000_00000__0000_0000_00__011000
333
    FUN R1S
334
    FUN R3T
335
 
336
; Instruction MULTU
337
{ MULTU Reg, Reg }
338
    TMO 4
339
    MSK _000000_00000_00000__0000_0000_00__011001
340
    FUN R1S
341
    FUN R3T
342
 
343
; Instruction NOR
344
{ NOR Reg, Reg, Reg }
345
        TMO     4
346
        MSK     _000000_00000_00000_00000_00000_100111
347
        FUN     R1D
348
        FUN     R3S
349
        FUN     R5T
350
 
351
; Instruction OR
352
{ OR Reg, Reg, Reg }
353
        TMO     4
354
        MSK     _000000_00000_00000_00000_00000_100101
355
        FUN     R1D
356
        FUN     R3S
357
        FUN     R5T
358
 
359
; Instruction ORI
360
{ ORI Reg, Reg, Int }
361
    TMO     4
362
        MSK     _001101_00000_00000__00000000_00000000
363
    FUN     R1T
364
    FUN     R3S
365
    FUN     IMM5
366
{ ORI Reg, Reg, Alpha }
367
    TMO     4
368
        MSK         _001101_00000_00000__00000000_00000000
369
    FUN     R1T
370
    FUN     R3S
371
    FUN     ETIQ5
372
 
373
; Instruction SLL
374
{ SLL Reg, Reg, Int }
375
        TMO     4
376
        MSK     _000000_00000_00000_00000_00000_000000
377
        FUN     R1D
378
        FUN     R3T
379
        FUN     SA5
380
 
381
; Instruction SLLV
382
{ SLLV Reg, Reg, Reg }
383
        TMO     4
384
        MSK     _000000_00000_00000_00000_00000_000100
385
        FUN     R1D
386
        FUN     R3T
387
        FUN     R5S
388
 
389
; Instruction SLT
390
{ SLT Reg, Reg, Reg }
391
        TMO     4
392
        MSK     _000000_00000_00000_00000_00000_101010
393
        FUN     R1D
394
        FUN     R3S
395
        FUN     R5T
396
 
397
; Instruction SLTI
398
{ SLTI Reg, Reg, Int }
399
    TMO     4
400
        MSK     _001010_00000_00000__00000000_00000000
401
    FUN     R1T
402
    FUN     R3S
403
    FUN     IMM5
404
{ SLTI Reg, Reg, Alpha }
405
    TMO     4
406
        MSK     _001010_00000_00000__00000000_00000000
407
    FUN     R1T
408
    FUN     R3S
409
    FUN     ETIQ5
410
 
411
; Instruction SLTIU
412
{ SLTIU Reg, Reg, Int }
413
    TMO     4
414
    MSK     _001010_00000_00000__00000000_00000000
415
    FUN     R1T
416
    FUN     R3S
417
    FUN     IMM5
418
{ SLTIU Reg, Reg, Alpha }
419
    TMO     4
420
    MSK     _001010_00000_00000__00000000_00000000
421
    FUN     R1T
422
    FUN     R3S
423
    FUN     ETIQ5
424
 
425
; Instruction SLTU
426
{ SLTU Reg, Reg, Reg }
427
        TMO     4
428
        MSK     _000000_00000_00000_00000_00000_101011
429
        FUN     R1D
430
        FUN     R3S
431
        FUN     R5T
432
 
433
; Instruction SRA
434
{ SRA Reg, Reg, Int }
435
        TMO     4
436
        MSK     _000000_00000_00000_00000_00000_000011
437
        FUN     R1D
438
        FUN     R3T
439
        FUN     SA5
440
 
441
; Instruction SRAV
442
{ SRAV Reg, Reg, Reg }
443
        TMO     4
444
        MSK     _000000_00000_00000_00000_00000_000111
445
        FUN     R1D
446
        FUN     R3T
447
        FUN     R5S
448
 
449
; Instruction SRL
450
{ SRL Reg, Reg, Int }
451
        TMO     4
452
        MSK     _000000_00000_00000_00000_00000_000010
453
        FUN     R1D
454
        FUN     R3T
455
        FUN     SA5
456
 
457
; Instruction SRLV
458
{ SRLV Reg, Reg, Reg }
459
        TMO     4
460
        MSK     _000000_00000_00000_00000_00000_000110
461
        FUN     R1D
462
        FUN     R3T
463
        FUN     R5S
464
 
465
; Instruction SUB
466
{ SUB Reg, Reg, Reg }
467
        TMO     4
468
        MSK     _000000_00000_00000_00000_00000_100010
469
        FUN     R1D
470
        FUN     R3S
471
        FUN     R5T
472
 
473
; Instruction SUBU
474
{ SUBU Reg, Reg, Reg }
475
        TMO     4
476
        MSK     _000000_00000_00000_00000_00000_100011
477
        FUN     R1D
478
        FUN     R3S
479
        FUN     R5T
480
 
481
; Instruction SW
482
{ SW Reg, Int(Reg) }
483
        TMO     4
484
        MSK     _101011_00000_00000__0000_0000_0000_0000
485
        FUN     R1T
486
        FUN     IMM3
487
        FUN     R5S
488
 
489
; Instruction SWC0
490
{ SWC0 Reg, Int(Reg) }
491
        TMO     4
492
        MSK     _111000_00000_00000__0000_0000_0000_0000
493
        FUN     R1T
494
        FUN     IMM3
495
        FUN     R5S
496
 
497
; Instruction SYSCALL
498
{ SYSCALL }
499
        TMO     4
500
        MSK     _000000__00000_00000_00000_00000__001100
501
 
502
; Instruction XOR
503
{ XOR Reg, Reg, Reg }
504
        TMO     4
505
        MSK     _000000_00000_00000_00000_00000_100110
506
        FUN     R1D
507
        FUN     R3S
508
        FUN     R5T
509
 
510
; Instruction XORI
511
{ XORI Reg, Reg, Int }
512
    TMO     4
513
        MSK     _001110_00000_00000__00000000_00000000
514
    FUN     R1T
515
    FUN     R3S
516
    FUN     IMM5
517
{ XORI Reg, Reg, Alpha }
518
    TMO     4
519
        MSK     _001110_00000_00000__00000000_00000000
520
    FUN     R1T
521
    FUN     R3S
522
    FUN     ETIQ5

powered by: WebSVN 2.1.0

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