https://github.com/aitjcize/toyvm
Virtual machine for executing Princeton I2CS Toy ISA
https://github.com/aitjcize/toyvm
Last synced: about 1 year ago
JSON representation
Virtual machine for executing Princeton I2CS Toy ISA
- Host: GitHub
- URL: https://github.com/aitjcize/toyvm
- Owner: aitjcize
- Created: 2013-03-22T13:07:13.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2013-03-22T13:28:55.000Z (about 13 years ago)
- Last Synced: 2025-01-29T18:31:49.942Z (over 1 year ago)
- Language: C
- Size: 125 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Toy Virtual Machine
Virtual machine for executing [Toy ISA](http://introcs.cs.princeton.edu/xtoy/) created by Introduction to CS, Princeton University.
## Features
* GDB-like debug interface
* Allow setting breakpoint
## Usage
Usage: toyvm [-d] [-v] ToyFile [InputFile]
toyvm [--version| -h| --help]
NORMAL MODE
-d Enter Debug Mode
-v Verbose mode
ToyFile *.toy file you want to run.
InputFile This is optional, using InputFile instead of manually input.
-h, --help Show this help list.
--version Show version.
DEBUG MODE
run, r Run program
step, s Run program in step mode, each line is shown before executing.
next, n Execute next program line (after stopping).
continue, c Continue running your program (after stopping, e.g. at a
break point).
break [LINE] Set a breakpoint, program will pause at break point.
info Show breakpoint information.
delete [NUM] Delete a breakpoint, NUM can be found by the `info' command.
reg Show register data.
list [FMT] List memory file. FMT can be a line or a range. If a line is
entered, list will show 13 line around it. If a ragne like
A..B is entered, list will show lines from A to B.
disasm [FMT] Disassemble the lines specified by FMT. FMT is same as the
FMT in `list'.
verbose, v Verbose mode, every instruction is shown before executing.
noverbose, nv Disable verbose mode.
quit, q Quit toyvm debuger.
## Bugs
Please report bugs to Aitjcize
## Contributing
1. Fork it
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create new Pull Request