commit 9917f2dfdaf62864c5d13d32090563cfe4b5a6ea parent 96727b424184400ffad582f8c74d2c02997cfe59 Author: Georges Dupéron <georges.duperon@gmail.com> Date: Tue, 3 Jul 2018 15:09:28 +0200 fixup! Disassemble the OS (use a compact representation for repetitive parts), re-assemble and check that the result is identical. Diffstat:
| M | example-os/Makefile | | | 10 | ++++++---- |
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/example-os/Makefile b/example-os/Makefile @@ -9,10 +9,12 @@ os.sh: os.asm ../deploy-screenshots Makefile chmod a+x $@ os.ndisasm.disasm: os.sh Makefile - ndisasm $< \ - | uniq -s 8 -c \ - | sed -r -e 's/\s*1 //; t; s/\s*([0-9]+) ([^ ]+\s+[^ ]+\s+)/\2times \1 /' \ - | sed -r -e 's/([^ ]+\s+[0-9A-F]{4}\s+jz) 0x/\1 short 0x/' > $@ + (echo "[BITS 16]"; \ + echo "[ORG 0x7c00]"; \ + ndisasm -o 0x7C00 $< \ + | uniq -s 8 -c \ + | sed -r -e 's/\s*1 //; t; s/\s*([0-9]+) ([^ ]+\s+[^ ]+\s+)/\2times \1 /' \ + | sed -r -e 's/([^ ]+\s+[0-9A-F]{4}\s+jz) 0x/\1 short 0x/') > $@ # The last sed line just above fixes an issue with ndisasm # (it fails to annotate the jz with short).