From 285dbf5c89d5631c5c4195dbabbc2af4ac69f0b9 Mon Sep 17 00:00:00 2001 From: mappu Date: Sun, 24 Jan 2016 00:00:00 +0000 Subject: [PATCH] commit all archived files --- README.md | 26 ++++++++++++++++++++++++++ dist-archive/asmbuilder-r44.zip | Bin 0 -> 16450 bytes 2 files changed, 26 insertions(+) create mode 100644 README.md create mode 100644 dist-archive/asmbuilder-r44.zip diff --git a/README.md b/README.md new file mode 100644 index 0000000..08ea59e --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# asmbuilder + +![](https://img.shields.io/badge/written%20in-C%2B%2B-blue) + +An assembler for x86_32. + +This project contains two parts: +- An assembler library, capable of producing x86_32 output in either raw binary format, COFF .obj binary format, and/or NASM text format +- An assembler binary around it, which parses assembly input files and calls into the above library + +It's intended to be useful either as a standalone assembler, or integrated as a library into part of a larger toolchain. + +Tags: PL + +## Changelog + +2016-01-24: r44 +- Public release of last private release +- [⬇️ asmbuilder-r44.zip](dist-archive/asmbuilder-r44.zip) *(16.06 KiB)* + + +2015-09-09: r44-private +- Initial private release + +2015-08-01: r0 +- Initial commit diff --git a/dist-archive/asmbuilder-r44.zip b/dist-archive/asmbuilder-r44.zip new file mode 100644 index 0000000000000000000000000000000000000000..37ef1bac59e71679aba0f5fc3857f96cf9f1939d GIT binary patch literal 16450 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