
VisUAL: A highly visual ARM emulator - ingve
https://salmanarif.bitbucket.io/visual/
======
userbinator
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:

    
    
        R0 0000BEEF
        R1 000BEEF0
        R2 000000BE
        R3 00000001
        R4 BEEF0000
        R5 00005F77
        R6 00000000
        R7 00000000
        ...
    

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/](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.

------
Exuma
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.

------
molticrystal
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](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.

------
partycoder
I like this project, and really appreciate that there's a Linux version. Looks
very polished, friendly and inviting, so kudos.

Maybe some code samples could be a good addition.

I used a similar program to learn assembly, GNUSim8085, targeting the Intel
8085 architecture and is packaged for most distros.

~~~
userbinator
_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.

~~~
partycoder
Yes, I realized after a while that it was in fact a Java application since
context menus have the default Java look and feel.

------
CyberDildonics
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.

------
zimmund
This was posted here some time ago; in that thread there are links to other
tools that you may find interesting:
[https://news.ycombinator.com/item?id=10787226](https://news.ycombinator.com/item?id=10787226)

------
tototomtoboro
What is the license of this program? I couldn't find it on the website.

------
0xFFC
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.

