Changeset 42 for Deliverables/D4.1
- Timestamp:
- Sep 8, 2010, 11:24:01 AM (10 years ago)
- Location:
- Deliverables/D4.1
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Deliverables/D4.1/ASMInterpret.ml
r41 r42 193 193 let pc,b1 = next pc in 194 194 let pc,b2 = next pc in 195 LCALL (`ADDR16 (b1,b 1)), pc, 2195 LCALL (`ADDR16 (b1,b2)), pc, 2 196 196 | (false,false,false,false),(false,false,true,false) -> 197 197 let pc,b1 = next pc in 198 198 let pc,b2 = next pc in 199 LJMP (`ADDR16 (b1,b 1)), pc, 2199 LJMP (`ADDR16 (b1,b2)), pc, 2 200 200 | (true,true,true,false),(true,r1,r2,r3) -> 201 201 MOV (`U1 (`A, `REG(r1,r2,r3))), pc, 1 … … 390 390 | ANL (`U2 (`DIRECT b1,`DATA b2)) -> 391 391 [(false,true,false,true),(false,false,true,true); b1; b2] 392 (*| ANL (`U3 (`C,`BIT b1)) ->393 [(true,false,false,false),(false,false,true,false); b 1]392 | ANL (`U3 (`C,`BIT b1)) -> 393 [(true,false,false,false),(false,false,true,false); byte_of_byte7 b1] 394 394 | ANL (`U3 (`C,`NBIT b1)) -> 395 [(true,false,true,true),(false,false,false,false); b1] *) 395 [(true,false,true,true),(false,false,false,false); byte_of_byte7 b1] 396 | CJNE (`U1 (`A, `DIRECT b1), `REL b2) -> 397 [(true,false,true,true),(false,true,false,true); b1; b2] 398 | CJNE (`U1 (`A, `DATA b1), `REL b2) -> 399 [(true,false,true,true),(false,true,false,false); b1; b2] 400 | CJNE (`U2 (`REG(r1,r2,r3), `DATA b1), `REL b2) -> 401 [(true,false,true,true),(true,r1,r2,r3); b1; b2] 402 | CJNE (`U2 (`INDIRECT i1, `DATA b1), `REL b2) -> 403 [(true,false,true,true),(false,true,true,i1); b1; b2] 404 | CLR `A -> 405 [(true,true,true,false),(false,true,false,false)] 406 | CLR `C -> 407 [(true,true,false,false),(false,false,true,true)] 408 | CLR (`BIT b1) -> 409 [(true,true,false,false),(false,false,true,false); byte_of_byte7 b1] 410 | DA `A -> 411 [(true,true,false,true),(false,true,false,false)] 412 | DEC `A -> 413 [(false,false,false,true),(false,true,false,false)] 414 | DEC (`REG(r1,r2,r3)) -> 415 [(false,false,false,true),(true,r1,r2,r3)] 416 | DEC (`DIRECT b1) -> 417 [(false,false,false,true),(false,true,false,true); b1] 418 | DEC (`INDIRECT i1) -> 419 [(false,false,false,true),(false,true,true,i1)] 420 | DIV (`A, `B) -> 421 [(true,false,false,false),(false,true,false,false)] 422 | DJNZ (`REG(r1,r2,r3), `REL b1) -> 423 [(true,true,false,true),(true,r1,r2,r3); b1] 424 | DJNZ (`DIRECT b1, `REL b2) -> 425 [(true,true,false,true),(false,true,false,true); b1; b2] 426 | INC `A -> 427 [(false,false,false,false),(false,true,false,false)] 428 | INC (`REG(r1,r2,r3)) -> 429 [(false,false,false,false),(true,r1,r2,r3)] 430 | INC (`DIRECT b1) -> 431 [(false,false,false,false),(false,true,false,true); b1] 432 | INC (`INDIRECT i1) -> 433 [(false,false,false,false),(false,true,true,i1)] 434 | INC `DPTR -> 435 [(true,false,true,false),(false,false,true,true)] 436 | JB (`BIT b1, `REL b2) -> 437 [(false,false,true,false),(false,false,false,false); byte_of_byte7 b1; b2] 438 | JBC (`BIT b1, `REL b2) -> 439 [(false,false,false,true),(false,false,false,false); byte_of_byte7 b1; b2] 440 | JC (`REL b1) -> 441 [(false,true,false,false),(false,false,false,false); b1] 442 | JMP `IND_DPTR -> 443 [(false,true,true,true),(false,false,true,true)] 444 | JNB (`BIT b1, `REL b2) -> 445 [(false,false,true,true),(false,false,false,false); byte_of_byte7 b1; b2] 446 | JNC (`REL b1) -> 447 [(false,true,false,true),(false,false,false,false); b1] 448 | JNZ (`REL b1) -> 449 [(false,true,true,true),(false,false,false,false); b1] 450 | JZ (`REL b1) -> 451 [(false,true,true,false),(false,false,false,false); b1] 452 | LCALL (`ADDR16 (b1,b2)) -> 453 [(false,false,false,true),(false,false,true,false); b1; b2] 454 | LJMP (`ADDR16 (b1,b2)) -> 455 [(false,false,false,false),(false,false,true,false); b1; b2] 456 | MOV (`U1 (`A, `REG(r1,r2,r3))) -> 457 [(true,true,true,false),(true,r1,r2,r3)] 458 | MOV (`U1 (`A, `DIRECT b1)) -> 459 [(true,true,true,false),(false,true,false,true); b1] 460 | MOV (`U1 (`A, `INDIRECT i1)) -> 461 [(true,true,true,false),(false,true,true,i1)] 462 | MOV (`U1 (`A, `DATA b1)) -> 463 [(false,true,true,true),(false,true,false,false); b1] 464 | MOV (`U2 (`REG(r1,r2,r3), `A)) -> 465 [(true,true,true,true),(true,r1,r2,r3)] 466 | MOV (`U2 (`REG(r1,r2,r3), (`DIRECT b1))) -> 467 [(true,false,true,false),(true,r1,r2,r3); b1] 468 | MOV (`U2 (`REG(r1,r2,r3), (`DATA b1))) -> 469 [(false,true,true,true),(true,r1,r2,r3); b1] 470 | MOV (`U3 (`DIRECT b1, `A)) -> 471 [(true,true,true,true),(false,true,false,true); b1] 472 | MOV (`U3 (`DIRECT b1, `REG(r1,r2,r3))) -> 473 [(true,false,false,false),(true,r1,r2,r3); b1] 474 | MOV (`U3 (`DIRECT b1, `DIRECT b2)) -> 475 [(true,false,false,false),(false,true,false,true); b1; b2] 476 | MOV (`U3 (`DIRECT b1, `INDIRECT i1)) -> 477 [(true,false,false,false),(false,true,true,i1); b1] 478 | MOV (`U3 (`DIRECT b1, `DATA b2)) -> 479 [(false,true,true,true),(false,true,false,true); b1; b2] 480 | MOV (`U2 (`INDIRECT i1, `A)) -> 481 [(true,true,true,true),(false,true,true,i1)] 482 | MOV (`U2 (`INDIRECT i1, `DIRECT b1)) -> 483 [(true,false,true,false),(false,true,true,i1); b1] 484 | MOV (`U2 (`INDIRECT i1, `DATA b1)) -> 485 [(false,true,true,true),(false,true,true,i1); b1] 486 | MOV (`U5 (`C, `BIT b1)) -> 487 [(true,false,true,false),(false,false,true,false); byte_of_byte7 b1] 488 | MOV (`U6 (`BIT b1, `C)) -> 489 [(true,false,false,true),(false,false,true,false); byte_of_byte7 b1] 490 | MOV (`U4 (`DPTR, `DATA16(b1,b2))) -> 491 [(true,false,false,true),(false,false,false,false); b1; b2] 492 | MOVC (`A, `A_DPTR) -> 493 [(true,false,false,true),(false,false,true,true)] 494 | MOVC (`A, `A_PC) -> 495 [(true,false,false,false),(false,false,true,true)] 496 | MOVX (`U1 (`A, `INDIRECT i1)) -> 497 [(true,true,true,false),(false,false,true,i1)] 498 | MOVX (`U1 (`A, `IND_DPTR)) -> 499 [(true,true,true,false),(false,false,false,false)] 500 | MOVX (`U2 (`INDIRECT i1, `A)) -> 501 [(true,true,true,true),(false,false,true,i1)] 502 | MOVX (`U2 (`IND_DPTR, `A)) -> 503 [(true,true,true,true),(false,false,false,false)] 504 | MUL(`A, `B) -> 505 [(true,false,true,false),(false,true,false,false)] 396 506 ;; 397 507 -
Deliverables/D4.1/physical.ml
r41 r42 107 107 ;; 108 108 109 let byte _of_bit b =110 (false,false,false,false),(false,false,false,b)109 let byte7_of_bit b = 110 false,false,false,(false,false,false,b) 111 111 ;; 112 113 let byte_of_byte7 (b1,b2,b3,n) = 114 (false,b1,b2,b3),n -
Deliverables/D4.1/physical.mli
r41 r42 19 19 val int_of_byte: byte -> int 20 20 val int_of_nibble: nibble -> int 21 val byte_of_bit: bit -> byte 21 val byte7_of_bit: bit -> byte7 22 val byte_of_byte7: byte7 -> byte 22 23 23 24 val (++): word -> int -> word
Note: See TracChangeset
for help on using the changeset viewer.