Ex09 マルチサイクルプロセッサの全体設計(2)2017: test_instructions.s

File test_instructions.s, 1.8 KB (added by nakasato, 9 years ago)
Line 
1         .data
2A:              .word  0x335e   
3B:              .word  0x0d21
4C:              .word  0xc
5SW_RSLT:        .word  0
6ADD_RSLT:       .word  0               
7SUB_RSLT:       .word  0       
8ADDI_RSLT:      .word  0       
9AND_RSLT:       .word  0
10OR_RSLT:        .word  0
11ANDI_RSLT:      .word  0
12ORI_RSLT:       .word  0
13J_RSLT:         .word  0
14BEQ_NT_RSLT:    .word  0
15BEQ_T_RSLT:     .word  0
16SLT0_RSLT:      .word  0
17SLT1_RSLT:      .word  0
18SLTI0_RSLT:     .word  0
19SLTI1_RSLT:     .word  0
20       
21        .text
22main:
23        lw   $5, A              #  lw ¤Î¥Æ¥¹¥È
24        lw   $6, B              #  lw ¤Î¥Æ¥¹¥È
25        lw   $7, C              #  lw ¤Î¥Æ¥¹¥È
26        sw   $5, A($7)          #  sw ¤Î¥Æ¥¹¥È (´üÂÔ·ë²Ì = 0x335e)
27
28        add  $8, $5, $6         #  add ¤Î¥Æ¥¹¥È
29        sw   $8, ADD_RSLT       #  ´üÂÔ·ë²Ì = 0x407f
30       
31        sub  $9, $5, $6         #  sub ¤Î¥Æ¥¹¥È
32        sw   $9, SUB_RSLT       #  ´üÂÔ·ë²Ì = 0x263d
33
34        addi $10, $5, 0x100     #  addi ¤Î¥Æ¥¹¥È
35        sw   $10, ADDI_RSLT     #  ´üÂÔ·ë²Ì = 0x345e
36       
37        and  $11, $5, $6        #  and ¤Î¥Æ¥¹¥È
38        sw   $11, AND_RSLT      #  ´üÂÔ·ë²Ì = 0x100
39
40        or   $12, $5, $6        #  or ¤Î¥Æ¥¹¥È
41        sw   $12, OR_RSLT       #  ´üÂÔ·ë²Ì = 0x3f7f
42       
43        andi $13, $5, 0x1ff     #  andi ¤Î¥Æ¥¹¥È
44        sw   $13, ANDI_RSLT     #  ´üÂÔ·ë²Ì = 0x15e
45
46        ori  $14, $5, 0x1ff     #  ori ¤Î¥Æ¥¹¥È
47        sw   $14, ORI_RSLT      #  ´üÂÔ·ë²Ì = 0x33ff
48       
49        ori  $15, $0, 1         #  j ¤Î¥Æ¥¹¥È¤Î¤¿¤á¤Î½é´üÀßÄê
50        j skip1
51        ori  $15, $0, 0
52skip1:
53        sw   $15, J_RSLT        #  ´üÂÔ·ë²Ì = 1
54               
55        ori  $15, $0, 1         #  beq ¤Î¥Æ¥¹¥È¤Î¤¿¤á¤Î½é´üÀßÄê
56        ori  $16, $0, 2         #  beq ¤Î¥Æ¥¹¥È¤Î¤¿¤á¤Î½é´üÀßÄê
57        beq  $15, $16, skip2    #  beq ¤Î¥Æ¥¹¥È (not taken)
58        ori  $16, $0, 3
59skip2:         
60        sw   $16, BEQ_NT_RSLT   #  ´üÂÔ·ë²Ì = 3
61       
62        ori  $16, $0, 1
63        beq  $15, $16, skip3    #  beq ¤Î¥Æ¥¹¥È (taken)
64        ori  $16, $0, 3
65skip3: 
66        sw   $16, BEQ_T_RSLT    #  ´üÂÔ·ë²Ì = 1
67       
68        slt  $17, $5, $6        #  slt ¤Î¥Æ¥¹¥È
69        sw   $17, SLT0_RSLT     #  ´üÂÔ·ë²Ì = 0
70        slt  $18, $6, $5        #
71        sw   $18, SLT1_RSLT     #  ´üÂÔ·ë²Ì = 1
72       
73        slti $19, $5, 0x1000    #  slti ¤Î¥Æ¥¹¥È
74        sw   $19, SLTI0_RSLT    #  ´üÂÔ·ë²Ì = 0
75        slti $20, $5, 0x5000    #
76        sw   $20, SLTI1_RSLT    #  ´üÂÔ·ë²Ì = 1
77exit:
78        j    exit