Indirect addressing with offset from SP

Hello!
 
 I was using your simulator to teach first year students basics of computer operation and assembly language. It's a wonderful tool for this task. I'm really thankful that I was able to use it, and decided to share some improvements I've done.

To show my students how stack frames are used to pass parameters and store local variables I've added possibility to do things like MOV A,[SP+2].

 I also added checks that no extra parameters are passed to instructions, where they are not supposed to be, because some students tried to do things like MUL B,C and were a bit surprised by results.

 And finally I added HLT instruction with opcode 0, so that I do not have to remind why one should add DB 0 between end of program and start of data.

With best regards,
Sergey Sorokin,
Tver State University.