Re:Visual x86 emulator
by thlorenz on Monday June 08, 2015 @08:14PM
(#9683339)
That's nice, thanks for the link!
Seems to serve a different purpose tough. visulator is supposed to help you learn how a CPU processes opcodes (at an abstract level) instead of looking at actual hardware wiring.
Re:Visual x86 emulator
by strommen on Monday June 08, 2015 @04:05PM
(#9681993)
Nice work, this is really cool!
But I'm kinda missing the point. I think it would be very helpful to put some corresponding C (or pseudo-C) code. I understand assembly, but it would take me forever to parse out what this program does.
Also, a few design issues (on Windows 8, Chrome):
- The bold font in the registers is difficult to read.
- The dark colors (blue and maroon) in the register names are difficult to read.
- The columns of the register table don't quite line up with their headers.
Re:Visual x86 emulator
by thlorenz on Monday June 08, 2015 @04:08PM
(#9682011)
Please file an issue on github, so I can track these problems and fix them.
As I mentioned I'm color blind and could use some styling help via a pull request :)
Re:Visual x86 emulator
by thlorenz on Monday June 08, 2015 @03:03PM
(#9681427)
That's not a bad idea. Please file an issue on github.
Ideally with a sketch of how this would be laid out.
This project is still in its infancy and I'm very open to suggestions.
Re:Visual x86 emulator
by squidbot on Monday June 08, 2015 @02:41PM
(#9681243)
This is a nifty visualizer, I'm going to show it to my daughter who I've been teaching programming. We haven't broached registers and general CPU design yet, but this has inspired me to do so!
It's interesting that the example shows overflow, but doesn't show the flags register. I'm not a web dev generally, but I think I may fork this one to show it as it exists in the emulator, it's just not rendered.
Re:Visual x86 emulator
by gshrikant on Monday June 08, 2015 @02:50PM
(#9681325)
This is pretty neat! It is still a work-in-progress though as the Github issue [1] notes. I'd love to be able to edit the disassembly and play with the visualization when its done.
Re:Visual x86 emulator
by thlorenz on Monday June 08, 2015 @03:05PM
(#9681452)
> It is still a work-in-progress though
Exactly this is just a start and I'm actively working on it.
Editing the assembly could be an option, but I also plan to allow users to load simple binaries into it.
This way you could edit the assembly, assemble it and load.
However please file an issue with feature suggestions on github so we can track what people want.
Re:Visual x86 emulator
by zyxley on Monday June 08, 2015 @03:55PM
(#9681900)
This is neat, but the registers on the right are painfully unreadable on my screen, with tiny text and contrasts either too dark or too bright in a way that makes my eyes glaze over them.
Re:Visual x86 emulator
by userbinator on Monday June 08, 2015 @08:06PM
(#9683314)
That was my first thought too - "here are some example instructions, moving the cursor around changes some registers... but I want to assemble a little program to try it out."
I think an "emulator" that doesn't let you run your own code in it is not an emulator. It's only an interesting visualisation.
Seems to serve a different purpose tough. visulator is supposed to help you learn how a CPU processes opcodes (at an abstract level) instead of looking at actual hardware wiring.
I'll link to it from the visulator readme though.
But I'm kinda missing the point. I think it would be very helpful to put some corresponding C (or pseudo-C) code. I understand assembly, but it would take me forever to parse out what this program does.
Also, a few design issues (on Windows 8, Chrome):
- The bold font in the registers is difficult to read.
- The dark colors (blue and maroon) in the register names are difficult to read.
- The columns of the register table don't quite line up with their headers.
That's not the point. All this is trying to show is how assembly and a CPU works. Understanding the program is secondary.
Additionally there is no C code for this as the assembly was written directly.
unsigned short data[8] = {0, 0, 0, 0, 0, 0, 0, 0};
for(int i=0;i<8;i++) {
}for(int i=0;i<8;i++) {
}data[0] = 0x7fff;
data[0] += 1;
data[0] += 1;
And so on.
So yea, nothing special.
I agree though that a more interesting example would be nice and I'll try to come up with one even with what it can do now.
It's interesting that the example shows overflow, but doesn't show the flags register. I'm not a web dev generally, but I think I may fork this one to show it as it exists in the emulator, it's just not rendered.
This is the next feature I've planned. Hopefully I can get this done tonight - check back soon :)
It'll be visualized with LEDs that light up when a flag is set.
[1] https://github.com/thlorenz/visulator/issues/1
Exactly this is just a start and I'm actively working on it. Editing the assembly could be an option, but I also plan to allow users to load simple binaries into it. This way you could edit the assembly, assemble it and load.
However please file an issue with feature suggestions on github so we can track what people want.
Also I do accept pull requests that fix some styling issues (I myself am color blind). Just update the CSS [here](https://github.com/thlorenz/visulator/blob/bad27bc164c1ba173...)
I think an "emulator" that doesn't let you run your own code in it is not an emulator. It's only an interesting visualisation.
See [status](https://github.com/thlorenz/visulator#status) -- indicating in experimental stage.
I'm planning to allow loading binaries and also editing assembly (assembling it in the browser so the CPU emulator can run the opcodes).
It currently already contains a memory unit and supports push/pop instructions. More memory related instructions will be added.