let exec system_state =
  let p = system_state.current in
  begin
    let pcode = p.preg.(a0in
    try
      ignore system_state.codes.(pcode);
      if !verbose then
        Printf.eprintf "Exec %d\n%!" pcode;
      system_state.current.pcode <- pcode;
      p.preg.(pc) <- 0;
    with Invalid_argument s ->
      if !verbose then
        Printf.eprintf "Exec error %d\n%!" pcode;
      p.preg.(v0) <- -1
  end;
  run system_state in
system_traps.(sys_Exec) <- exec;;