cambridge-asm 0.6.1

Run pseudoassembly from Cambridge International syllabus 9618
Documentation

cambridge-asm

GitHub Workflow Status Crates.io version Crates.io version

Disclaimer

This software is not related to Cambridge International, Cambridge University, or any of their sister institutions

Purpose

This is an interpreter for the pseudoassembly defined in syllabus 9618 - Computer Science of Cambridge Assesment International Education.

Usage

Cambridge Pseudoassembly Interpreter 0.6.0
Saadi Save <github.com/SaadiSave>
Run pseudoassembly from Cambridge International syllabus 9618 (2021)

USAGE:
    cambridge-asm [FLAGS] <INPUT>

FLAGS:
    -h, --help       Prints help information
    -t               Enables output of execution time
    -V, --version    Prints version information
    -v               Sets the logging level

ARGS:
    <INPUT>    Sets the input file containing pseudoassembly

Flags may be combined, e.g. -tv, -vvt, etc.

Logging levels

  • OFF by default
  • -v = WARN: Enable warnings
  • -vv = INFO: Enable info logs
  • -vvv = DEBUG: Enable debugging logs
  • -vvvv = TRACE: Trace execution line by line

WARN

Arithmetic overflows are logged as warnings. That may change in the future.

INFO

General status is logged as info.

DEBUG

Steps in the parsing procedure and internal structs created are shown in debug logs

TRACE

Line-by-line execution is logged

Example program

LOOP: LDX 201
OUT
INC IX
LDD CNT
INC ACC
STO CNT
CMP #5
JPN LOOP
LDM #10 // Code for newline
OUT // Output newline
END // This program prints HELLO


CNT: 0
201 72 // H
202 69 // E
203 76 // L
204 76 // L
205 79 // O