Releases: bracesoftware/newasm
beta
.
0.1.2-R1-test
Full Changelog: 0.1.1-R3-test...0.1.2-R1-test
NewASM
Release Notes
Welcome to NewASM
: interpreted low-level language that mimics assembly.
- Version:
0.1.2
- Release:
1
- Release type:
test
NOTE: This is a pre-release which means that this product version doesn't represent the final quality of the product - it may contain bugs and problems that aren't yet discovered.
What's new
- If you try to use an
end
instruction without creating a procedure, you will get an exception with exit code 32. Namely:
_:start
end ; error
; other stuff
-
Added the new
-log
argument. -
Added the new dynamic library system which is explained in the
README.md
in details. -
Added more exception codes.
What's changed
- No changes were made to other existing systems.
Fixed issues
- No fixed issues.
Building from source
- Use the following command to compile your own build of
NewASM
; make sure that you have G++ installed:
C:\path_to_your_compiler\g++ -static -std=c++20 index.cpp -o index.exe
- If you are using Windows Subsystem for Linux, use the following command:
wsl g++ -m32 -static -std=c++20 index.cpp -o index.out
Downloading
- Download one of the following archives that suits your system. Once you have downloaded it, extract the archive into a folder of your choice and begin using the application.
Using the application
- Use the following command to execute your
NewASM
programs on Windows:
newasm -input yourfile.asm
- If you are on Linux, just add the
.out
extension:
./newasm.out -input yourfile.asm
Writing your first NewASM
app
- Create the file named
yourfile.asm
, or just name it whatever you like, and edit it with an editor of your choice:
_ : start
mov . tlr , "Hello world!"
mov . stl , %endl
mov . fdx , 1
syscall . 0 , %ios
retn . 0 , 0
Output:
Hello world!
0.1.1-R3-test
Full Changelog: 0.1.1-R2-test...0.1.1-R3-test
NewASM
Release Notes
Welcome to NewASM
: interpreted low-level language that mimics assembly.
- Version:
0.1.1
- Release:
3
- Release type:
test
NOTE: This is a pre-release which means that this product version doesn't represent the final quality of the product - it may contain bugs and problems that aren't yet discovered.
What's new
- This update introduces a new data type -
char
; or character. To declare a character, use:
_:data
char $ myvariablename = 'c'
-
Added
%ios
system call7
. Now you can use this system call to print single characters. -
Added
%ios
system call8
; you can use this system call to ask for single character input. -
If you try to create an empty procedure (taking up space), you will get an exception.
What's changed
-
The
cmp
instrucion has been adapted to support character variables as well. -
The
load
instruction used for the heap allocation now also supports the character data type. -
If you try to change the section inside the procedure code block, you will get an invalid syntax exception:
proc.0, procedure
_:config ; shouldn't be here
end
Fixed issues
- No fixed issues.
Building from source
- Use the following command to compile your own build of
NewASM
; make sure that you have G++ installed:
C:\path_to_your_compiler\g++ -static -std=c++20 index.cpp -o index.exe
- If you are using Windows Subsystem for Linux, use the following command:
wsl g++ -m32 -static -std=c++20 index.cpp -o index.out
Downloading
- Download one of the following archives that suits your system. Once you have downloaded it, extract the archive into a folder of your choice and begin using the application.
Using the application
- Use the following command to execute your
NewASM
programs on Windows:
newasm -input yourfile.asm
- If you are on Linux, just add the
.out
extension:
./newasm.out -input yourfile.asm
Writing your first NewASM
app
- Create the file named
yourfile.asm
, or just name it whatever you like, and edit it with an editor of your choice:
_ : start
mov . tlr , "Hello world!"
mov . stl , %endl
mov . fdx , 1
syscall . 0 , %ios
retn . 0 , 0
Output:
Hello world!
0.1.1-R2-test
Full Changelog: 0.1.1...0.1.1-R2-test
NewASM
Release Notes
Welcome to NewASM
: interpreted low-level language that mimics assembly.
- Version:
0.1.1
- Release:
2
- Release type:
test
NOTE: This is a pre-release which means that this product version doesn't represent the final quality of the product - it may contain bugs and problems that aren't yet discovered.
What's new
- If you create a struct that hasn't been closed, an interpreter will throw an exception. You can find more about this error in the exit code table.
- If you attempt to create a struct within a struct code block, an interpreter will also throw an exception.
What's changed
- Product version ID now also contains one of 3 following release type labels:
test
- the build is under the testing phase;stable
- the build is stable and ready for use;unstable
- the build is unstable, you may encounter issues with it.
- Source code has been split into more modules, enhancing productivity.
Fixed issues
- Fixed an issue where the contents of the
tlr
register were not printed using the5
th system call in the input and output stream module.
Building from source
- Use the following command to compile your own build of
NewASM
; make sure that you have G++ installed:
C:\path_to_your_compiler\g++ -static -std=c++20 index.cpp -o index.exe
- If you are using Windows Subsystem for Linux, use the following command:
wsl g++ -m32 -static -std=c++20 index.cpp -o index.out
Downloading
- Download one of the following archives that suits your system. Once you have downloaded it, extract the archive into a folder of your choice and begin using the application.
Using the application
- Use the following command to execute your
NewASM
programs on Windows:
newasm -input yourfile.asm
- If you are on Linux, just add the
.out
extension:
./newasm.out -input yourfile.asm
Writing your first NewASM
app
- Create the file named
yourfile.asm
, or just name it whatever you like, and edit it with an editor of your choice:
_ : start
mov . tlr , "Hello world!"
mov . stl , %endl
mov . fdx , 1
syscall . 0 , %ios
retn . 0 , 0
Output:
Hello world!
0.1.1
Full Changelog: 0.1.0...0.1.1
I really should make a changelog.
0.1.0
Full Changelog: 0.0.9...0.1.0
0.0.9
Full Changelog: 0.0.8...0.0.9
0.0.8
Full Changelog: 0.0.7...0.0.8
0.0.7
Full Changelog: 0.0.6...0.0.7
Support for different architectures. Linux builds coming soon...
0.0.6
Full Changelog: 0.0.5...0.0.6
Currently, only x64 binaries are available.