diff options
author | Kartik Agaram <vc@akkartik.com> | 2019-07-15 12:26:41 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2019-07-15 12:26:41 -0700 |
commit | aef4efb959b215a2cd830e186c083c78f7bde60a (patch) | |
tree | ad3735842abc8de847ef407a83915cae4a54c26d /subx/examples | |
parent | 867894b3efdc9c9df39d8ad9b6011f01e95e2811 (diff) | |
download | mu-aef4efb959b215a2cd830e186c083c78f7bde60a.tar.gz |
5404 - subx/examples/ex1 now translating
The result isn't an identical binary to before, and it segfaults when run. But it's bugfix seven. A couple of places where we make .subx files a little more strict: a) All .subx files must define a data segment. Even if they have no data. b) All .subx files must define an `Entry` label for the binary to start at. Earlier we used to default to the start of the code label. That's not too hard to add; we'd just need to: i) rename `get` to `get-or-abort` ii) clone a third variant of `get-or-insert` called `get` that returns null if the key is not found. iii) use `get` rather than `get-or-abort` when looking up the `Entry` label.
Diffstat (limited to 'subx/examples')
-rwxr-xr-x | subx/examples/ex1 | bin | 96 -> 128 bytes | |||
-rw-r--r-- | subx/examples/ex1.subx | 3 |
2 files changed, 3 insertions, 0 deletions
diff --git a/subx/examples/ex1 b/subx/examples/ex1 index 1c983c03..aeb62302 100755 --- a/subx/examples/ex1 +++ b/subx/examples/ex1 Binary files differdiff --git a/subx/examples/ex1.subx b/subx/examples/ex1.subx index 4b9f208e..0aca40f8 100644 --- a/subx/examples/ex1.subx +++ b/subx/examples/ex1.subx @@ -10,9 +10,12 @@ == code 0x09000000 +Entry: # syscall(exit, 42) bb/copy-to-EBX 2a/imm32 # 42 in hex b8/copy-to-EAX 1/imm32/exit cd/syscall 0x80/imm8 +== data 0x0a000000 + # . . vim:nowrap:textwidth=0 |