Changeset 32


Ignore:
Timestamp:
Sep 3, 2010, 1:36:32 PM (9 years ago)
Author:
mulligan
Message:

All MOV variations done.

File:
1 edited

Legend:

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

    r31 r32  
    198198       let pc,b2 = next pc in
    199199         LJMP (`ADDR16 (b1,b1)), pc, 2
     200   | (true,true,true,false),(true,r1,r2,r3) ->
     201         MOV (`U1 (`A, `REG(r1,r2,r3))), pc, 1
     202   | (true,true,true,false),(false,true,false,true) ->
     203       let pc,b1 = next pc in
     204         MOV (`U1 (`A, `DIRECT b1)), pc, 1
     205   | (true,true,true,false),(false,true,true,i1) ->
     206         MOV (`U1 (`A, `INDIRECT i1)), pc, 1
     207   | (false,true,true,true),(false,true,false,false) ->
     208       let pc,b1 = next pc in
     209         MOV (`U1 (`A, `DATA b1)), pc, 1
     210   | (true,true,true,true),(true,r1,r2,r3) ->
     211         MOV (`U2 (`REG(r1,r2,r3), `A)), pc, 1
     212   | (true,false,true,false),(true,r1,r2,r3) ->
     213       let pc,b1 = next pc in
     214         MOV (`U2 (`REG(r1,r2,r3), (`DIRECT b1))), pc, 2
     215   | (false,true,true,true),(true,r1,r2,r3) ->
     216       let pc,b1 = next pc in
     217         MOV (`U2 (`REG(r1,r2,r3), (`DATA b1))), pc, 1
     218   | (true,true,true,true),(false,true,false,true) ->
     219       let pc,b1 = next pc in
     220         MOV (`U3 (`DIRECT b1, `A)), pc, 1
     221   | (true,false,false,false),(true,r1,r2,r3) ->
     222       let pc,b1 = next pc in
     223         MOV (`U3 (`DIRECT b1, `REG(r1,r2,r3))), pc, 2
     224   | (true,false,false,false),(false,true,false,true) ->
     225       let pc,b1 = next pc in
     226       let pc,b2 = next pc in
     227         MOV (`U3 (`DIRECT b1, `DIRECT b2)), pc, 2
     228   | (true,false,false,false),(false,true,true,i1) ->
     229       let pc,b1 = next pc in
     230         MOV (`U3 (`DIRECT b1, `INDIRECT i1)), pc, 2
     231   | (false,true,true,true),(false,true,false,true) ->
     232       let pc,b1 = next pc in
     233       let pc,b2 = next pc in
     234         MOV (`U3 (`DIRECT b1, `DATA b2)), pc, 2
     235   | (true,true,true,true),(false,true,true,i1) ->
     236         MOV (`U2 (`INDIRECT i1, `A)), pc, 1
     237   | (true,false,true,false),(false,true,true,i1) ->
     238       let pc,b1 = next pc in
     239         MOV (`U2 (`INDIRECT i1, `DIRECT b1)), pc, 2
     240   | (false,true,true,true),(false,true,true,i1) ->
     241       let pc,b1 = next pc in
     242         MOV (`U2 (`INDIRECT i1, `DATA b1)), pc, 1
     243   | (true,false,true,false),(false,false,true,false) ->
     244       let pc,b1 = next7 pc in
     245         MOV (`U5 (`C, `BIT b1)), pc, 1
     246   | (true,false,false,true),(false,false,true,false) ->
     247       let pc,b1 = next7 pc in
     248         MOV (`U6 (`BIT b1, `C)), pc, 2
     249   | (true,false,false,true),(false,false,false,false) ->
     250       let pc,b1 = next pc in
     251       let pc,b2 = next pc in
     252         MOV (`U4 (`DPTR, `DATA16(b1,b2))), pc, 2
    200253 with
    201254  Not_found -> raise BOO
Note: See TracChangeset for help on using the changeset viewer.