Changeset 29


Ignore:
Timestamp:
Sep 3, 2010, 11:51:26 AM (8 years ago)
Author:
mulligan
Message:

Commit while I check Siemen's data sheet. Instructions C--J added to
`fetch' function.

File:
1 edited

Legend:

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

    r28 r29  
    110110      let pc,b1 = next7 pc in
    111111       ANL (`U3 (`C,`NBIT b1)), pc, 2
    112    (* page 12 SIEMENS, first CJNE instruction *)
     112   | (true,false,true,true),(false,true,false,true) ->
     113      let       pc,b1 = next pc in
     114      let pc,b2 = next pc in
     115        CJNE (`U1 (`A, `DIRECT b1), `REL b2), pc, 2
     116   | (true,false,true,true),(false,true,false,false) ->
     117       let pc,b1 = next pc in
     118       let pc,b2 = next pc in
     119         CJNE (`U1 (`A, `DATA b1), `REL b2), pc, 2
     120   | (true,false,true,true),(true,r1,r2,r3) ->
     121       let pc,b1 = next pc in
     122       let pc,b2 = next pc in
     123         CJNE (`U2 (`REG(r1,r2,r3), `DATA b1), `REL b2), pc, 2
     124   | (true,false,true,true),(false,true,true,i1) ->
     125       let pc,b1 = next pc in
     126       let pc,b2 = next pc in
     127         CJNE (`U2 (`INDIRECT i1, `DATA b1), `REL b2), pc, 2
     128   | (true,true,true,false),(false,true,false,false) ->
     129         CLR `A, pc, 1
     130   | (true,true,false,false),(false,false,true,true) ->
     131         CLR `C, pc, 1
     132   | (true,true,false,false),(false,false,true,false) ->
     133       let pc,b1 = next7 pc in
     134         CLR (`BIT b1), pc, 1
     135   | (true,true,false,true),(false,true,false,false) ->
     136         DA `A, pc, 1
     137   | (false,false,false,true),(false,true,false,false) ->
     138         DEC `A, pc, 1
     139   | (false,false,false,true),(true,r1,r2,r3) ->
     140         DEC (`REG(r1,r2,r3)), pc, 1
     141   | (false,false,false,true),(false,true,false,true) ->
     142       let pc,b1 = next pc in
     143         DEC (`DIRECT b1), pc, 1
     144   | (false,false,false,true),(false,true,true,i1) ->
     145         DEC (`INDIRECT i1), pc, 1
     146   | (true,false,false,false),(false,true,false,false) ->
     147         DIV (`A, `B), pc, 4
     148   | (true,true,false,true),(true,r1,r2,r3) ->
     149       let pc,b1 = next pc in
     150         DJNZ (`REG(r1,r2,r3), `REL b1), pc, 2
     151   | (true,true,false,true),(false,true,false,true) ->
     152       let pc,b1 = next pc in
     153       let pc,b2 = next pc in
     154         DJNZ (`DIRECT b1, `REL b2), pc, 2
     155   | (false,false,false,false),(false,true,false,false) ->
     156         INC `A, pc, 1
     157   | (false,false,false,false),(true,r1,r2,r3) ->
     158         INC (`REG(r1,r2,r3)), pc, 1
     159   | (false,false,false,false),(false,true,false,true) ->
     160       let pc,b1 = next pc in
     161         INC (`DIRECT b1), pc, 1
     162   | (false,false,false,false),(false,true,true,i1) ->
     163         INC (`INDIRECT i1), pc, 1
     164   | (true,false,true,false),(false,false,true,true) ->
     165         INC `DPTR, pc, 2
     166   | (false,false,true,false),(false,false,false,false) ->
     167       let pc,b1 = next pc in
     168       let pc b2 = next pc in
     169         JB (`BIT)
    113170 with
    114171  Not_found -> raise BOO
Note: See TracChangeset for help on using the changeset viewer.