V2releases icon indicating copy to clipboard operation
V2releases copied to clipboard

How it can simulate the arm instructions?

Open Pr0214 opened this issue 6 years ago • 2 comments

Dear developer, I sincerely love your software. I am curious how it can simulate the arm instructions? Is it using unicorn? Or other CPU emulator framework.?

Pr0214 avatar Jan 10 '20 05:01 Pr0214

(1) it is not a complete simulation ATM - it simulates a subset of UAL that we wanted for teaching. (2) It has a custom-coded emulator written in F#. This was tested for accuracy against the original Visual (a whole load of random generated tests) + several years of 200 students using it. The original Visual was tested - again a whole load of tests against Pydgyn's ARM implementation. Interestingly when Visual was tested against Pydgyn we discovered about as many mistakes in Pydgyn as there were in our implementation! (3) The timing simulation is not precisely accurate, in any case for later architectures that is difficult due to memory and cache effects. (4) The parser/emulator was written by 4 students in 4 weeks at 10 hours/week. While they were learning F#. It is well separated from the rest and should probably be rewritten. It could be plugged into some other framework although for nice integration that should be portable to either dotnet core or javascript.

tomcl avatar Jan 10 '20 06:01 tomcl

Professor, thank you very much! Your students' coding ability is really appreciated! I also want to know, does it support thumb2 mode? @tomcl

Pr0214 avatar Jan 10 '20 09:01 Pr0214