From e7a4c7102e73cb5588b30f9dd6f8437c7e85bc06 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 24 May 2017 11:45:45 +0200 Subject: Add dump --- main.go | 10 +- testdata/j1.dump | 8192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 8197 insertions(+), 5 deletions(-) create mode 100644 testdata/j1.dump diff --git a/main.go b/main.go index bc4c40a..8053d7e 100644 --- a/main.go +++ b/main.go @@ -23,7 +23,7 @@ func main() { } for i, v := range body { op := Decode(v) - fmt.Printf("%0.4x %0.16b %s\n", i, v, op) + fmt.Printf("%0.4X %0.4X\t%s\n", i, v, op) } } @@ -49,13 +49,13 @@ var opcodes = []string{ func Decode(v uint16) string { switch { case v&(1<<15) == 1<<15: - return fmt.Sprintf("literal %d", v&0x7fff) + return fmt.Sprintf("LIT %0.4X", v&0x7fff) case v&(7<<13) == 0: - return fmt.Sprintf("ubranch %0.4x", v&0x1fff) + return fmt.Sprintf("UBRANCH %0.4X", v&0x1fff) case v&(7<<13) == 1<<13: - return fmt.Sprintf("0branch %0.4x", v&0x1fff) + return fmt.Sprintf("0BRANCH %0.4X", v&0x1fff) case v&(7<<13) == 1<<14: - return fmt.Sprintf("call %0.4x", v&0x1fff) + return fmt.Sprintf("CALL %0.4X", v&0x1fff) case v&(7<<13) == 3<<13: op := (v & 15 << 8) >> 8 s := "ALU " + opcodes[op] diff --git a/testdata/j1.dump b/testdata/j1.dump new file mode 100644 index 0000000..0483c3d --- /dev/null +++ b/testdata/j1.dump @@ -0,0 +1,8192 @@ +0000 1C5D UBRANCH 1C5D +0001 1C5D UBRANCH 1C5D +0002 6E81 ALU N T→N dstack+ +0003 80FF LIT 00FF +0004 730F ALU Nu