A teaching environment to model and simulate computer processors