NEMU(NJU Emulator) is a simple but complete full-system emulator designed for teaching purpose. Currently it supports x86, mips32, and riscv32. To build programs run above NEMU, refer to the AM project.
The main features of NEMU include
- a small monitor with a simple debugger
- single step
- register/memory examination
- expression evaluation without the support of symbols
- watch point
- differential testing with reference design (e.g. QEMU)
- snapshot
- CPU core with support of most common used instructions
- x86
- real mode is not supported
- x87 floating point instructions are not supported
- mips32
- CP1 floating point instructions are not supported
- riscv32
- only RV32IM
- x86
- memory
- paging
- TLB is optional (but necessary for mips32)
- protection is not supported
- interrupt and exception
- protection is not supported
- 5 devices
- serial, timer, keyboard, VGA, audio
- most of them are simplified and unprogrammable
- 2 types of I/O
- port-mapped I/O and memory-mapped I/O