https://github.com/jorgeterence/shinzou
An IAS computer compiler/emulator
https://github.com/jorgeterence/shinzou
assembler ias ias-computer rust
Last synced: 3 months ago
JSON representation
An IAS computer compiler/emulator
- Host: GitHub
- URL: https://github.com/jorgeterence/shinzou
- Owner: JorgeTerence
- License: gpl-3.0
- Created: 2024-03-25T23:35:49.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-03-31T22:43:27.000Z (over 1 year ago)
- Last Synced: 2025-01-22T11:39:36.330Z (9 months ago)
- Topics: assembler, ias, ias-computer, rust
- Language: Rust
- Homepage:
- Size: 54.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Shinzou Assembler
## What is this?
This project is an assembler simulating the [IAS Machine](https://en.wikipedia.org/wiki/IAS_machine). I learned about it in a class on computer architecture and decided to take on a challenge.
## How to run
```sh
shinzou run finnish.asm
# or
shinzou compile finnish.asm -o ancient_sumerian.bin
shinzou run ancient_sumerian.bin
```## For the future
- Add a custom directive to output the whole state of memory at runtime, sort of like debugging.
- Show a web visualization for the working machine and its components.## Updated command sheet
While the IAS spec has an I/O module, it does not list a right API for accessing it - at least I didn't find it. I used for reference [this document from Unicamp](https://www.ic.unicamp.br/~edson/disciplinas/mc404/2012-1s/anexos/programando_o_IAS.pdf). As this is _my_ project, I will be adding brand new instructions:
| Representation | Code | Description |
| -------------- | -------- | -------------------------------------------------------------------------- |
| OUT M(X) | 10000001 | Outputs the contents of the memory address of X to the I/O stream |
| CHAR M(X) | 10000010 | Outputs the contents of the memory address of X as ASCII to the I/O stream |