- Notifications
You must be signed in to change notification settings - Fork0
mcc is a machine code compiler.
License
NotificationsYou must be signed in to change notification settings
esote/mcc
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
NAMEmcc - machine code compilerSYNOPSISmcc [-3hs] [-b addr] [-m memsize] [-o file] [-t addr] fileDESCRIPTIONmcc is a machine code compiler. It reads binary ASCII text '0' and '1'mapping to machine code instructions. All other characters are ignoredexcept the comment token ';'. Comments begin with ';' and continue untilEOL. The -h option enables parsing hexadecimal rather than binary text.Use the -o option to specify the output filename. The default is to putthe executable in a.out.Supports little-endian x86-64 and i386 execution environments using theSystem V application binary interface. 64-bit is the default mode,32-bit mode is specified with the -3 option.When writing to the .bss section, specify the size of memory reservedusing the -m option. If the size is zero (default), no .bss section willbe written for the executable.In 64-bit mode the .bss and .text sections start at 0x402000 and0x401000 respectively, and in 32-bit mode 0x804a000 and 0x8049000respectively. Use the -b and -t options to specify custom addresses.Program header segment alignment is set to 0x1000 (the page size on mostsystems)..bss is aligned to a 16-byte constraint and .text to an 8-byteconstraint.Use the -s option to mark the .text section as writable, allowingself-modifying code.AUTHORSmcc was written by Esote.COPYRIGHTCopyright (c) 2019 Esote. There is NO warranty. You may redistributethis software under the terms of the GNU Affero General Public License.For more information, see the LICENSE file.