The HARM package

[ Tags: compilers-interpreters, library, program ] [ Propose Tags ]

A simple ARM virtual machine designed for teaching assembly. See http:/tinyurl.com639v6u for details on internals and examples of how to use it. It is advised you look through the source on the site and try following along to really learn what's going on. Currently the emulator does not use standard ARM assembly, but a custom variant. This will hopefully be changed in the near future.

Two programs, runarm and dbgarm, are provided which can be used to run and debug the assembly.

[Skip to Readme]


Versions 0.1.1, 0.1.2, 0.1.3, 0.1.4
Dependencies array, base [details]
License OtherLicense
Author Jeffrey A. Meunier (and Alex Mason)
Maintainer Alex Mason (
Category Compilers/Interpreters
Home page
Bug tracker
Uploaded Sat Dec 6 05:07:59 UTC 2008 by AlexMason
Distributions NixOS:0.1.4
Executables dbgarm, runarm
Downloads 1480 total (11 in the last 30 days)
Rating 0.0 (0 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees

Readme for HARM-0.1.4

[back to package description]
HARM is a simple ARM emulator written in haskell, with the intention of teaching students about assembly and how CPU's work. It was written by Jeffrey A. Meunier at the University of Connecticut for the 2000 "CSE240 Intermediate Computer Systems" course.

It is advised that you go to and work through the syllabus if you want to understand how the project got to where it is. I have updated most of it to work in GHC with the changes that have been made since it was originally written.

Included are two programs, p1.arm and p2.arm which demonstrate the syntax used in the machines. To run there, you can use runarm in ~/.cabal/bin, and dbgarm to debug the assembly.

If you have any questions, email me at and I'll see what I can do for you.