M1.1 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. .\"Made with Love
  2. .TH M1 1 "JULY 2019" Linux "User Manuals"
  3. .SH NAME
  4. M1 \- The universal Macro assembler
  5. .SH SYNOPSIS
  6. .na
  7. M1 --architecture ARCHITECTURE --file FILE [--output FILE --octal --binary --big-endian --little-endian]
  8. .SH DESCRIPTION
  9. M1 is the most minimal cross-platform macro assembler possible
  10. .br
  11. Leveraging a few grammar details to provide the user with a
  12. rich vocabulary of ways of expressing their desired output
  13. and input; thus eliminating surprise from the generation
  14. process.
  15. .br
  16. At it's core is DEFINE MACRO EXPANDED
  17. .br
  18. Where one can define an assembly instruction like:
  19. DEFINE INT_80 CD80
  20. and know that everywhere INT_80 is placed in the input
  21. file there will be the hex encoding of that instruction
  22. in the output file or if no output file is specified the
  23. output will be send to standard out.
  24. .br
  25. The supported ARCHITECTURES are as follows: knight-native,
  26. knight-posix, x86, amd64, armv7l and aarch64.
  27. If you fail to specify an architecture, the default of knight-native
  28. will be used.
  29. .br
  30. M1 also supports the generation of 8, 16 and 32bit integers
  31. provided they are encoded as !NUM, @NUM or %NUM respectively.
  32. eg !-1, @42 and %8675309
  33. You however can not mix integers with definitions as macros
  34. are always applied first and will not be evaluated further.
  35. Should you wish to specify the bit and byte encoding of the
  36. integers to match your target --big-endian and --little-endian
  37. Should you wish for the output to be something other than hex
  38. format, you can specify the exact output you desire with:
  39. --octal or --binary
  40. .SH EXAMPLES
  41. Typically, M1 will be called in scripts used in bootstrapping
  42. .br
  43. # M1 -f x86.defs -f libc-core.M1 -f cc.M1 -f cc-footer.M1 --little-endian --architecture x86 -o cc.hex2
  44. .br
  45. .SH COMPATIBILITY
  46. M1 is compatible with all Turing complete machines;
  47. even the ones that try to be Turing complete -1
  48. .SH AUTHORS
  49. Jeremiah Orians <Jeremiah@pdp10.guru>
  50. .br
  51. Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
  52. .SH COPYRIGHT
  53. Copyright 2016-2019 Jeremiah Orians <Jeremiah@pdp10.guru>
  54. .br
  55. Copyright 2017 Jan Nieuwenhuizen <janneke@gnu.org>
  56. .br
  57. License GPLv3+.
  58. .SH "SEE ALSO"
  59. hex2(1), blood-elf(1), kaem(1), syscalls(2)