Assembler IDE/Simulator for beginner

42,336

Solution 1

I've found a few bits of software that suggest they might do this - but they either refuse to compile, or don't seem to work properly. Has anyone got any suggestions?

Write one. You're best off picking a nice, simple instruction set (Z80 should be perfect). I remember doing this as a first-year undergraduate exercise - I think we wrote the simulator in C++ and simulated 6800 assembly, but really any language/instruction set will do.

The idea of "learning assembly language" these days is to get the idea of how computers work at the lowest level, only a select few (compiler writers, etc.) have any real reason to actually be writing assembly code these days. Modern processors are stuffed full of features designed to be used by compilers to help optimise code for speed/concurrent execution/power consumption/etc., and trying to write assembly by hand for a modern processor would be a nightmare.

Don't fret about getting your application production-ready unless you want to - in all likelihood the bits of software you've found so far were written by people exactly like you who wanted to figure out how assembly works and wrote their own simulator, then realised how much work would be involved in getting it "production ready" so the general public could use it.

Solution 2

You might want to check out the open source 8085 simulator "GnuSim8085", it's specifically meant to be used for educational purposes, and it was in fact written by student while preparing for his exams. It runs on both, Linux and Windows.

Solution 3

MipSim is FREE

Main Features of MIPSim 2

  • Built-in code editor with features like syntax highlighting and folding
  • Display register and memory values in different representations (signed integer, unsigned integer, hexadecimal and ASCII)
  • Set the block size (full-word, half-word, byte) of the memory cells for easier examination of the memory values
  • Change values of registers and memory cells with a single click even during simulation and debugging
  • Realtime user-interface updating allows you to see how values of registers and memory cells change during execution
  • Built-in debugger with step-by-step instruction execution, instruction skipping and breakpoint features
  • Tools for inserting ASCII, UNICODE strings and integer values to memory for testing of your code
  • Tools for checking duplicate or missing labels and instruction parameters
  • Save computer state (values of all registers and memory cells) so that next time you run the simulator you can continue from where you left!
  • Set the simulation speed - low speeds are great to trace your code and to see how it behaves
  • Encode instructions - produce machine code in either binary or hexadecimal representation
  • Catch assembly time and runtime errors
  • Easier debugging with descriptive error messages
  • Multi-threaded design - MIPSim doesn't get stuck (hopefully ;) even if the assembly code executed is erroneous or contains infinite loops
  • MIPSim API - make your own programs that can read from and write to the registers and memory of MIPSim, great flexibility for powerful testing!

Solution 4

If Your are on windows 8085 Simulator is the best choice. 8085 Simulator by J-tech Softwares

It user interface is excellent than any other simulator. Also this simulator provide live view of memory map very time(also while in the execution).

But this one does not support Windows 98 or lower for that you need to check other simulators like GNUSim8085.

Solution 5

WinApe is a good emulator of an Amstrad CPC. The Amstrad CPC was a Home Computer produced in the 80's. It used a Z80 as its CPU. Using the emulator you can display a lot of the internals while programming. It includes a debugger and a disassembler for Z80 code.

Share:
42,336
danjarvis
Author by

danjarvis

I'm a PhD student at the Institute for Complex Systems Simulation at the University of Southampton, UK studying complexity in Remote Sensing. As part of my work I am heavily involved in Remote Sensing and GIS technologies - particularly ENVI/IDL programming and ArcGIS scripting using Python. My academic website shows some examples of my work, and links to some of the software I have written.

Updated on July 09, 2022

Comments

  • danjarvis
    danjarvis almost 2 years

    I'd like to learn how to program in Assembler. I've done a bit of assembly before (during my A-Level Computing course) but that was very definitely a simplified 'pseudo-assembler'. I've borrowed my Dad's old Z80 Assembler reference manual, and that seems quite interesting so if possible I'd like to have a go with Z80 assembler.

    However, I don't have a Z80 processor to hand, and would like to do it on my PC (I have windows or linux so either is good). I've found various assemblers around on the internet, but I'm not particularly interested in assembling down to a hex file, I want to just be able to assemble it to something that some kind of simulator on the PC can run. Preferably this simulator would show me the contents of all the registers, memory locations etc, and let me step through instructions. I've found a few bits of software that suggest they might do this - but they either refuse to compile, or don't seem to work properly. Has anyone got any suggestions? If there are good simulator/IDE things available for another type of assembler then I could try that instead (assuming there is a good online reference manual available).