Changeset 45 for Deliverables/D4.1/Pretty.ml
- Timestamp:
- Sep 8, 2010, 12:39:25 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Deliverables/D4.1/Pretty.ml
r44 r45 1 open ASM;; 2 1 3 let pretty_bit = 2 4 function true -> "1" … … 19 21 function (b1,b2,b3,b) -> 20 22 "word11: " ^ pretty_word (((false,false,false,false),(false,b1,b2,b3)),b) 23 24 let 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.