GitXplorerGitXplorer
N

nemu

public
940 stars
199 forks
5 issues

Commits

List of commits on branch master.
Unverified
98bc0822da1a3025c545b34b988006408a2e1edf

device,io,map: enlarge io space

ssashimi-yzh committed 4 months ago
Unverified
460dd550b604c15cba8c3d39631773116b919b0a

*,inst: add panic() for unsupported decode type

ssashimi-yzh committed 4 months ago
Unverified
4bc3ba0d3d1e831bd012aa102d5a9a3773040f68

change s->isa.inst.val to s->isa.inst

ssashimi-yzh committed 4 months ago
Unverified
a738d2ea2d0194ab248c8b10c7e409e7a130b3ee

re-add x86

ssashimi-yzh committed 4 months ago
Unverified
bbbf9e3ac1cbf53ae754d19a5dcf406b630d4e1e

utils.h: fix typo

ssashimi-yzh committed 5 months ago
Unverified
1a493f9c0b433af2fbddabeb9c186bd55ccd4ad1

utils,disasm: use capstone instead of llvm

ssashimi-yzh committed 6 months ago

README

The README file for this repository.

NEMU

NEMU(NJU Emulator) is a simple but complete full-system emulator designed for teaching purpose. Currently it supports x86, mips32, riscv32 and riscv64. 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
    • riscv64
      • only RV64IM
  • 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