Skip to main content

An interpreter for the ARM instruction set and an accompanying Jupyter kernel

Project description

IArm is an ARM interpreter for the ARMv6 THUMB instruction set (More specifically for the ARM Cortex M0+ CPU). It supports almost 100% of the instructions, and some assembler directives. There is also its Jupyter kernel counterpart so it can be used with Jupyter notebooks. Check out the /docs folder to see a technical overview and some example notebooks.

Install

Install with pip

pip install iarm

Or clone the repo and install with setuptools

python setup.py install

To install the Jupyer kernel counterpart, after installation, run

python -m iarm_kernel.install

Usage

Python

Import the arm module and instantiate an interpreter from the Arm class

import iarm.arm
interp = iarm.arm.Arm()

To run code, pass the code into the evaluate method. Multiple lines can be sent in as well as one line at a time.

interp.evaluate(" MOVS R0, #5")
interp.evaluate("""
    MOVS R1, #3
    ADDS R2, R0, R1
""")

By default, code is not run. The run method must be called.

interp.run()
print(interp.register)  # Print out the status of all the registers

Jupyter

Simply activate the iarm_kernel module and make a new notebook as an IArm notebook. Most of the magics have a 1 to 1 to the module. Refer to the notebooks in the /docs/examples folder and the %help magic.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iarm-0.1.0.zip (28.4 kB view details)

Uploaded Source

Built Distribution

iarm-0.1.0-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file iarm-0.1.0.zip.

File metadata

  • Download URL: iarm-0.1.0.zip
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for iarm-0.1.0.zip
Algorithm Hash digest
SHA256 d7e95df06afa449b2769c965403a3c5f0ee887795ab95e49a47b1e41cd2dc890
MD5 2049f88ab051ba3d8824f408b0dd171c
BLAKE2b-256 1b94273d68aa80eddbc5f0280243f2de7e48c826514526e96c88a93798d5d1f5

See more details on using hashes here.

File details

Details for the file iarm-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for iarm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f6b8179eb010ffbe57b803ac753487d632c8f0b3606b747c0abe94d1e762ba8
MD5 c1915d2004a3ff2604954b72a8c9298a
BLAKE2b-256 3565a2f823b086ec2d269dc89b01408592536bc5e96f355f96679e57cec71ad4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page