The one thing that immediately caught my eye is the lack of fixed-width-ness (for lack of a better term) in the value displays. IMHO besides being somewhat annoying to read it can be rather misleading, which is bad especially for something "designed specifically to use as a teaching tool". It's misleading because it doesn't show that the storage for the values is fixed-width. For example, this clearly shows that the registers are 32 bits and never anything but:
I've taught Asm before and seen so many students get this wrong that it's worth calling out. In fact the right example under the "Error Correction Suggestions" section gets this wrong too --- that's an assembly/syntax error, not a runtime error. (ARM's immediate value encoding is also worth looking at if you haven't seen it before, since it's not just a single 32-bit value either: https://alisdair.mcdiarmid.org/arm-immediate-value-encoding/ )
The other thing that I'd suggest as an improvement is a 16-byte-hexdump mode with ASCII on the right for "View Memory Contents". Other than that, with perhaps the exception of "infinite loop detection", the other features look useful.
Is there a video we can see this in action? I wouldnt ever use a tool like this because my work doesn't require it, but this stuff still fascinates me and I'd like to watch someone use it.
This simulator since it is based on the unicorn,keystone,capstone framework, has a lot more instruction support(and architecture support): https://github.com/hugsy/cemu .
Its front was just thrown together though, and it has a few issues. It would be nice if it ever develops into having a rich front end and progresses towards what VisUAL has.
To be able to use VisUAL, your system must be compatible with the Java 8 Runtime Environment
Theoretically it should run on any platform with a JVM, although the lack of a JAR download (as well as 32-bit Windows) is a little odd.
Edit: I can confirm that the 64-bit Windows download consists of mostly a 64-bit JRE (56MB) and a JAR (<5MB), the latter of which works on 32-bit Windows too.
If anyone wants to learn ARM assembly, a program called ARMsim and the pdf documentation you can find is a pretty good way to do it. You can step through, set break points and follow tutorials to learn with a gradual buildup in difficulty.
It seems very good project. Because I am using fedora I couldn't use it though, I wish there were a rpm package too. or at least linux .run package would be great.
The other thing that I'd suggest as an improvement is a 16-byte-hexdump mode with ASCII on the right for "View Memory Contents". Other than that, with perhaps the exception of "infinite loop detection", the other features look useful.