ASMM
Assembly Macros, or ASMM (pronounced a-zum-em) for short, is a low level programming languange by Chillaxe on 28 February 2025. Its main function is to serve as a stepping stone between C and x86 Assembly. As of now, it is a work in progress, and contains a few basic functions.
Paradigm
ASMM requires in-depth knowledge of the computer, though some operations and functions are abstracted and sped up, hence the name. ASMM works in 32-bit and has 4 registers: eax, ebx, ecx, and edx. These 4 registers are what the CPU has access to at all times and are how you supply function properties. For instance, if you want to call writecon(), then you would do eax = &character(uint);. In this instance, = would be equivalent to mov in x86 Assembly. Types are specified by appending the value with a type name surrounded by brackets.
Operations
ASMM has a few operations;
&>>shifts the location of the variable in memory by the second operand.=duplicates a value from one variable or register in the case of set values, to the location of the first variable or register.+adds the first operand to the second operand.
WIP
Types
ASMM has a few types, including:
byteubytestrshortushortintuintfloat
Libraries
ASMM is compatible with both Assembly (.inc) headers and C (.h) headers. As for static libraries, it supports *nix (.a) libraries.
Functions
ASMM supports every function in the Universal C and C++ runtime library functions, as well as any C libraries you might have installed. It also supports assembly A version may be released that supports Windows (.lib) libraries in the future.
Programs
Hello World:
use "stdio.h";
use "asmm.h";
link "libucrt.a";
data CoolStr[32] = "Hello World"(str);
start {
eax = 256(uint);
ex palloc;
eax = &CoolStr(uint);
ex printf;
eax = 0(uint);
ex return;
};