Changeset 45


Ignore:
Timestamp:
Sep 8, 2010, 12:39:25 PM (8 years ago)
Author:
mulligan
Message:

More pretty stuff added.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Deliverables/D4.1/Pretty.ml

    r44 r45  
     1open ASM;;
     2
    13let pretty_bit =
    24  function true -> "1"
     
    1921  function (b1,b2,b3,b) ->
    2022    "word11: " ^ pretty_word (((false,false,false,false),(false,b1,b2,b3)),b)
     23
     24let pretty_instruction =
     25 function
     26    ACALL (`ADDR11 (a10,a9,a8,b1)) ->
     27     "ACALL addr11 (" ^ pretty_word11 (a10,a9,a8,b1) ^ ")"
     28  | ADD (`A,`REG (r1,r2,r3)) ->
     29     "ADD A Rn (" ^ pretty_bit r1 ^ pretty_bit r2 ^ pretty_bit r3 ^ ")"
     30  | ADD (`A, `DIRECT b1) ->
     31     "ADD A direct (" ^ pretty_byte b1 ^ ")"
     32(*
     33  | ADD (`A, `INDIRECT i1) ->
     34     [(false,false,true,false),(false,true,true,i1)]
     35  | ADD (`A, `DATA b1) ->
     36     [(false,false,true,false),(false,true,false,false); b1]
     37  | ADDC (`A, `REG(r1,r2,r3)) ->
     38     [(false,false,true,true),(true,r1,r2,r3)]
     39  | ADDC (`A, `DIRECT b1) ->
     40     [(false,false,true,true),(false,true,false,true); b1]
     41  | ADDC (`A,`INDIRECT i1) ->
     42     [(false,false,true,true),(false,true,true,i1)]
     43  | ADDC (`A,`DATA b1) ->
     44     [(false,false,true,true),(false,true,false,false); b1]
     45  | AJMP (`ADDR11 (a10,a9,a8,b1)) ->
     46     [(a10,a9,a8,false),(false,false,false,true)]
     47  | ANL (`U1 (`A, `REG (r1,r2,r3))) ->
     48     [(false,true,false,true),(true,r1,r2,r3)]
     49  | ANL (`U1 (`A, `DIRECT b1)) ->
     50     [(false,true,false,true),(false,true,false,true); b1]
     51  | ANL (`U1 (`A, `INDIRECT i1)) ->
     52     [(false,true,false,true),(false,true,true,i1)]
     53  | ANL (`U1 (`A, `DATA b1)) ->
     54     [(false,true,false,true),(false,true,false,false); b1]
     55  | ANL (`U2 (`DIRECT b1,`A)) ->
     56     [(false,true,false,true),(false,false,true,false); b1]
     57  | ANL (`U2 (`DIRECT b1,`DATA b2)) ->
     58     [(false,true,false,true),(false,false,true,true); b1; b2]
     59  | ANL (`U3 (`C,`BIT b1)) ->
     60     [(true,false,false,false),(false,false,true,false); byte_of_byte7 b1]
     61  | ANL (`U3 (`C,`NBIT b1)) ->
     62    [(true,false,true,true),(false,false,false,false); byte_of_byte7 b1]
     63  | CJNE (`U1 (`A, `DIRECT b1), `REL b2) ->
     64    [(true,false,true,true),(false,true,false,true); b1; b2]
     65  | CJNE (`U1 (`A, `DATA b1), `REL b2) ->
     66    [(true,false,true,true),(false,true,false,false); b1; b2]
     67  | CJNE (`U2 (`REG(r1,r2,r3), `DATA b1), `REL b2) ->
     68    [(true,false,true,true),(true,r1,r2,r3); b1; b2]
     69  | CJNE (`U2 (`INDIRECT i1, `DATA b1), `REL b2) ->
     70    [(true,false,true,true),(false,true,true,i1); b1; b2]
     71  | CLR `A ->
     72    [(true,true,true,false),(false,true,false,false)]
     73  | CLR `C ->
     74    [(true,true,false,false),(false,false,true,true)]
     75  | CLR (`BIT b1) ->
     76    [(true,true,false,false),(false,false,true,false); byte_of_byte7 b1]
     77  | DA `A ->
     78    [(true,true,false,true),(false,true,false,false)]
     79  | DEC `A ->
     80    [(false,false,false,true),(false,true,false,false)]
     81  | DEC (`REG(r1,r2,r3)) ->
     82    [(false,false,false,true),(true,r1,r2,r3)]
     83  | DEC (`DIRECT b1) ->
     84    [(false,false,false,true),(false,true,false,true); b1]
     85  | DEC (`INDIRECT i1) ->
     86    [(false,false,false,true),(false,true,true,i1)]
     87  | DIV (`A, `B) ->
     88    [(true,false,false,false),(false,true,false,false)]
     89  | DJNZ (`REG(r1,r2,r3), `REL b1) ->
     90    [(true,true,false,true),(true,r1,r2,r3); b1]
     91  | DJNZ (`DIRECT b1, `REL b2) ->
     92    [(true,true,false,true),(false,true,false,true); b1; b2]
     93  | INC `A ->
     94    [(false,false,false,false),(false,true,false,false)]
     95  | INC (`REG(r1,r2,r3)) ->
     96    [(false,false,false,false),(true,r1,r2,r3)]
     97  | INC (`DIRECT b1) ->
     98    [(false,false,false,false),(false,true,false,true); b1]
     99  | INC (`INDIRECT i1) ->
     100    [(false,false,false,false),(false,true,true,i1)]
     101  | INC `DPTR ->
     102    [(true,false,true,false),(false,false,true,true)]
     103  | JB (`BIT b1, `REL b2) ->
     104    [(false,false,true,false),(false,false,false,false); byte_of_byte7 b1; b2]
     105  | JBC (`BIT b1, `REL b2) ->
     106    [(false,false,false,true),(false,false,false,false); byte_of_byte7 b1; b2]
     107  | JC (`REL b1) ->
     108    [(false,true,false,false),(false,false,false,false); b1]
     109  | JMP `IND_DPTR ->
     110    [(false,true,true,true),(false,false,true,true)]
     111  | JNB (`BIT b1, `REL b2) ->
     112    [(false,false,true,true),(false,false,false,false); byte_of_byte7 b1; b2]
     113  | JNC (`REL b1) ->
     114    [(false,true,false,true),(false,false,false,false); b1]
     115  | JNZ (`REL b1) ->
     116    [(false,true,true,true),(false,false,false,false); b1]
     117  | JZ (`REL b1) ->
     118    [(false,true,true,false),(false,false,false,false); b1]
     119  | LCALL (`ADDR16 (b1,b2)) ->
     120    [(false,false,false,true),(false,false,true,false); b1; b2]
     121  | LJMP (`ADDR16 (b1,b2)) ->
     122    [(false,false,false,false),(false,false,true,false); b1; b2]
     123  | MOV (`U1 (`A, `REG(r1,r2,r3))) ->
     124    [(true,true,true,false),(true,r1,r2,r3)]
     125  | MOV (`U1 (`A, `DIRECT b1)) ->
     126    [(true,true,true,false),(false,true,false,true); b1]
     127  | MOV (`U1 (`A, `INDIRECT i1)) ->
     128    [(true,true,true,false),(false,true,true,i1)]
     129  | MOV (`U1 (`A, `DATA b1)) ->
     130    [(false,true,true,true),(false,true,false,false); b1]
     131  | MOV (`U2 (`REG(r1,r2,r3), `A)) ->
     132    [(true,true,true,true),(true,r1,r2,r3)]
     133  | MOV (`U2 (`REG(r1,r2,r3), (`DIRECT b1))) ->
     134    [(true,false,true,false),(true,r1,r2,r3); b1]
     135  | MOV (`U2 (`REG(r1,r2,r3), (`DATA b1))) ->
     136    [(false,true,true,true),(true,r1,r2,r3); b1]
     137  | MOV (`U3 (`DIRECT b1, `A)) ->
     138    [(true,true,true,true),(false,true,false,true); b1]
     139  | MOV (`U3 (`DIRECT b1, `REG(r1,r2,r3))) ->
     140    [(true,false,false,false),(true,r1,r2,r3); b1]
     141  | MOV (`U3 (`DIRECT b1, `DIRECT b2)) ->
     142    [(true,false,false,false),(false,true,false,true); b1; b2]
     143  | MOV (`U3 (`DIRECT b1, `INDIRECT i1)) ->
     144    [(true,false,false,false),(false,true,true,i1); b1]
     145  | MOV (`U3 (`DIRECT b1, `DATA b2)) ->
     146    [(false,true,true,true),(false,true,false,true); b1; b2]
     147  | MOV (`U2 (`INDIRECT i1, `A)) ->
     148    [(true,true,true,true),(false,true,true,i1)]
     149  | MOV (`U2 (`INDIRECT i1, `DIRECT b1)) ->
     150    [(true,false,true,false),(false,true,true,i1); b1]
     151  | MOV (`U2 (`INDIRECT i1, `DATA b1)) ->
     152    [(false,true,true,true),(false,true,true,i1); b1]
     153  | MOV (`U5 (`C, `BIT b1)) ->
     154    [(true,false,true,false),(false,false,true,false); byte_of_byte7 b1]
     155  | MOV (`U6 (`BIT b1, `C)) ->
     156    [(true,false,false,true),(false,false,true,false); byte_of_byte7 b1]
     157  | MOV (`U4 (`DPTR, `DATA16(b1,b2))) ->
     158    [(true,false,false,true),(false,false,false,false); b1; b2]
     159  | MOVC (`A, `A_DPTR) ->
     160    [(true,false,false,true),(false,false,true,true)]
     161  | MOVC (`A, `A_PC) ->
     162    [(true,false,false,false),(false,false,true,true)]
     163  | MOVX (`U1 (`A, `INDIRECT i1)) ->
     164    [(true,true,true,false),(false,false,true,i1)]
     165  | MOVX (`U1 (`A, `IND_DPTR)) ->
     166    [(true,true,true,false),(false,false,false,false)]
     167  | MOVX (`U2 (`INDIRECT i1, `A)) ->
     168    [(true,true,true,true),(false,false,true,i1)]
     169  | MOVX (`U2 (`IND_DPTR, `A)) ->
     170    [(true,true,true,true),(false,false,false,false)]
     171  | MUL(`A, `B) ->
     172    [(true,false,true,false),(false,true,false,false)]
     173  | NOP ->
     174    [(false,false,false,false),(false,false,false,false)]
     175  | ORL (`U1(`A, `REG(r1,r2,r3))) ->
     176    [(false,true,false,false),(true,r1,r2,r3)]
     177  | ORL (`U1(`A, `DIRECT b1)) ->
     178    [(false,true,false,false),(false,true,false,true); b1]
     179  | ORL (`U1(`A, `INDIRECT i1)) ->
     180    [(false,true,false,false),(false,true,true,i1)]
     181  | ORL (`U1(`A, `DATA b1)) ->
     182    [(false,true,false,false),(false,true,false,false); b1]
     183  | ORL (`U2(`DIRECT b1, `A)) ->
     184    [(false,true,false,false),(false,false,true,false); b1]
     185  | ORL (`U2 (`DIRECT b1, `DATA b2)) ->
     186    [(false,true,false,false),(false,false,true,true); b1; b2]
     187  | ORL (`U3 (`C, `BIT b1)) ->
     188    [(false,true,true,true),(false,false,true,false); byte_of_byte7 b1]
     189  | ORL (`U3 (`C, `NBIT b1)) ->
     190    [(true,false,true,false),(false,false,false,false); byte_of_byte7 b1]
     191  | POP (`DIRECT b1) ->
     192    [(true,true,false,true),(false,false,false,false); b1]
     193  | PUSH (`DIRECT b1) ->
     194    [(true,true,false,false),(false,false,false,false); b1]
     195  | RET ->
     196    [(false,false,true,false),(false,false,true,false)]
     197  | RETI ->
     198    [(false,false,true,true),(false,false,true,false)]
     199  | RL `A ->
     200    [(false,false,true,false),(false,false,true,true)]
     201  | RLC `A ->
     202    [(false,false,true,true),(false,false,true,true)]
     203  | RR `A ->
     204    [(false,false,false,false),(false,false,true,true)]
     205  | RRC `A ->
     206    [(false,false,false,true),(false,false,true,true)]
     207  | SETB `C ->
     208    [(true,true,false,true),(false,false,true,true)]
     209  | SETB (`BIT b1) ->
     210    [(true,true,false,true),(false,false,true,false); byte_of_byte7 b1]
     211  | SJMP (`REL b1) ->
     212    [(true,false,false,false),(false,false,false,false); b1]
     213  | SUBB (`A, `DIRECT b1) ->
     214    [(true,false,false,true),(false,true,false,true); b1]
     215  | SUBB (`A, `INDIRECT i1) ->
     216    [(true,false,false,true),(false,true,true,i1)]
     217  | SUBB (`A, `DATA b1) ->
     218    [(true,false,false,true),(false,true,false,false); b1]
     219  | SWAP `A ->
     220    [(true,true,false,false),(false,true,false,false)]
     221  | XCH (`A, `REG(r1,r2,r3)) ->
     222    [(true,true,false,false),(true,r1,r2,r3)]
     223  | XCH (`A, `DIRECT b1) ->
     224    [(true,true,false,false),(false,true,false,true); b1]
     225  | XCH (`A, `INDIRECT i1) ->
     226    [(true,true,false,false),(false,true,true,i1)]
     227  | XCHD(`A, `INDIRECT i1) ->
     228    [(true,true,false,true),(false,true,true,i1)]
     229  | XRL(`U1(`A, `REG(r1,r2,r3))) ->
     230    [(false,true,true,false),(true,r1,r2,r3)]
     231  | XRL(`U1(`A, `DIRECT b1)) ->
     232    [(false,true,true,false),(false,true,false,true); b1]
     233  | XRL(`U1(`A, `INDIRECT i1)) ->
     234    [(false,true,true,false),(false,true,true,i1)]
     235  | XRL(`U1(`A, `DATA b1)) ->
     236    [(false,true,true,false),(false,true,false,false); b1]
     237  | XRL(`U2(`DIRECT b1, `A)) ->
     238    [(false,true,true,false),(false,false,true,false); b1]
     239  | XRL(`U2(`DIRECT b1, `DATA b2)) ->
     240    [(false,true,true,false),(false,false,true,true); b1; b2] *)
     241;;
Note: See TracChangeset for help on using the changeset viewer.