Simulator program for the ARM Instruction Set Architecture
TODO
TODO
TODO
Currently, the following ARM instructions are supported:
Logic | Arithmetic | Flow Control | Memory | Other |
---|---|---|---|---|
AND | ADD | B | LDR | MOV |
ORR | SUB | BL | STR | CMP |
BIC | BX | LDM | CMN | |
EOR | BLX | STM | TST | |
LSL | PUSH | TEQ | ||
LSR | POP | NOP |
Variants of these instructions are also supported according to the ARM instruction set architecture. For instance, conditional codes can be appended to enable conditional execution.
At startup, memory is allocated for the user's program. 1024 bytes are designated for the process's stack. 512 bytes are provided for the process's heap memory. 15360 additional bytes are allocated for the user's static data section.
- Clone Repository
- Run following commands:
mkdir build
cd build
cmake ..
make
- To run unit and integration tests, execute following command
make test
- To execute program, execute following command
./src/ARM-ISA-Simulator <Name of main file>
Two external libraries are used, Catch2 and CLI11. You can find their respective installation guides at the links below: