Implementation of CPU
emulator and custom assembler
for it.
Third task in MIPT in the first year of education.
The idea is to understand how CPU works, how CPU communicates with devices (input, output), how assembler works, how translation process is done, how CPU processes bytecode
, what is CPU microcode
and how it is implemented and some other intricacies of CPU, assembler.
You can see the user documentation here
and developer documentation here
.
This project has two main parts:
- Data manipulating:
push
,pop
. - Arithmetic:
add
,sub
,mul
,div
,sqrt
. - Program flow control:
call
,ret
,jmp
,je
,jl
,jg
,jne
. - I/O:
out
,outc
,in
. - Logical:
cmp
.
Coming soon...
Coming soon...
Clone the repository
git clone https://github.com/V13kv/CPU-Emulator;
cd CPU-Emulator
Compiling
make init;
make asm proc
./asm.exe <path_to_vasm_file> <output_file_name>
./proc.exe <path_to_compiled_vasm_file>