stdf - Standard Functions library
The built-in standrad functions library.
stdf library
The stdf library is a collection of standard functions within CrateAssembly that provides basic operations for manipulating floating-point values in variables. It includes functions for assigning values, arithmetic addition, subtraction, incrementing, decrementing, and printing values to the console.
mov Function
The mov
function is a fundamental operation in the stdf library for variable management. It is designed to set a specified value
to a variable named varname
. The function operates as follows:
If
varname
does not already exist,mov
will define a new variable with that name.If
varname
does exist,mov
will modify the existing variable's value to the newvalue
.; Usage of the mov function in CrateAssembly mov varname value ; Sets the value of 'varname' to 'value'
Example Usage:
include stdf ; Includes the stdf functions ; Define and set a new floating-point variable 'eax' to 10.5 mov eax 10.5 ; Modify the value of existing variable 'eax' to 20.0 mov eax 20.0
add Function
The add function is another essential operation in the stdf library for variable arithmetic. It allows for the addition of a specified amount to a variable named varname
. If varname
does not exist, the add function will return an error, indicating that the variable must be defined before performing arithmetic operations. The function behaves in the following manner:
The function requires that
varname
already exists.It will add the numerical value of
amount
to the current value ofvarname
.If
varname
does not exist, a DefinitionError is returned.
; Usage of the add function in CrateAssembly add varname amount ; Adds the value of 'amount' to the variable 'varname'
Example Usage:
include stdf ; Includes the stdf functions
; Assuming variable 'eax' has been previously defined and set to 10.5
add eax 5.5 ; Adds 5.5 to the current value of 'eax', resulting in 16.0
If 'eax' was not previously defined, the add function would return an error:
add eax 5.5 ; DefinitionError: eax is not defined
sub Function
The sub function is a crucial arithmetic operation available in the stdf library for variable arithmetic. It subtracts a specified amount from a variable named varname. Here's how the sub function works:
The function requires the existence of the variable named varname.
It will subtract the numerical value of amount from the current value of varname.
If the variable varname does not exist, a DefinitionError is returned with a specific message.
; Usage of the sub function in CrateAssembly sub varname amount ; Subtracts the value of 'amount' from the variable 'varname'
Example Usage:
include stdf ; Includes the stdf functions ; Let's assume variable 'ebx' has been previously defined and set to 30.0 sub ebx 5.0 ; Subtracts 5.0 from the current value of 'ebx', resulting in 25.0
If 'ebx' was not previously defined, the sub function would return an error:
sub ebx 5.0 ; DefinitionError: ebx is not defined
inc Function
The inc function is a convenient operation from the stdf library that allows for incrementing the value of an existing variable by 1. This function is particularly useful for operations where regular increments are needed. Here's how to use the inc function in CrateAssembly:
The inc function requires that the variable
varname
has already been declared.It increments the value of
varname
by 1.If
varname
does not exist, an error messageDefinitionError: varname is not defined
is shown.; Usage of the inc function in CrateAssembly inc varname ; Increments the value of 'varname' by 1
Example Usage:
include stdf ; Includes the stdf functions ; Assuming the variable 'ecx' has been previously defined and set to 5 inc ecx ; The value of 'ecx' is now 6
If 'ecx' was not previously defined, the inc function would result in an error as shown below:
inc ecx ; DefinitionError: ecx is not defined
dec Function
The dec function is a simple yet essential operation in the stdf library meant for decreasing the value of an existing variable by 1. Below is a comprehensive guide to using the dec function in CrateAssembly:
The dec function decrements the value of a predefined variable by 1.
This function requires the variable varname to be already initialized.
If the variable varname does not exist, a DefinitionError is triggered, signaling that the variable needs definition.
; Usage of the dec function in CrateAssembly
dec varname ; Decrements the value of 'varname' by 1
Example Usage:
include stdf ; Includes the stdf functions
; Assuming the variable 'edx' has been defined earlier and its value is set to 8
dec edx ; After execution, the value of 'edx' will be 7
If 'edx' was not previously defined, the dec function would return an error:
dec edx ; DefinitionError: edx is not defined
prt Function
The prt function is part of the stdf library in CrateAssembly and it allows you to print the value of a variable or a direct numerical value, be it a floating-point number or an integer. The usage of the prt function is straightforward; it takes a single argument that can be either a variable name or a number.
; Usage of the prt function in CrateAssembly
prt varname_or_value ; Prints the value of 'varname' or 'value' to the output
Example Usage:
include stdf ; Includes the standard function library
; If you have a variable named 'counter' set to a value, for example, 10
prt counter ; This will output the value of 'counter', i.e., 10
; You can also directly print a literal value without defining a variable
prt 42 ; This will output the number 42
mul Function
The mul function is a key arithmetic operator provided by the stdf library in CrateAssembly, used for multiplying the value of an existing variable by a given amount. To understand and use the mul function effectively, consider the following points:
The function requires the existence of the variable referred to as varname.
The mul function multiplies the current value of varname by the numerical value provided in amount.
If the variable varname is not already defined in the code, executing the mul function will result in a DefinitionError with the message indicating that varname is not defined.
; Usage of the mul function in CrateAssembly mul varname amount ; Multiplies the variable 'varname' by 'amount'
Example Usage:
include stdf ; Includes the standard function library ; Let's assume the variable 'eax' has already been defined with a value of 10 mul eax 2 ; After execution, the value of 'eax' will be 20 (10 multiplied by 2)
In the event that 'eax' was not previously defined, the mul function would generate an error message:
mul eax 2 ; DefinitionError: eax is not defined
div Function
The div
function is an arithmetic operation included in the CrateAssembly language for dividing the value of an existing variable by a specified amount. The following guidelines will help you understand and use the div
function:
Before using the
div
function, the variable referred to as varname must be previously declared and initialized.The div function divides the current value of varname by the numerical value given in amount.
In case varname is not defined in the code, a DefinitionError is triggered with the message "varname is not defined".
; Usage of the div function in CrateAssembly div varname amount ; Divides the value of 'varname' by 'amount'
Example Usage:
include stdf ; Includes the stdf library for CrateAssembly ; Assuming varname 'esi' has been defined and has a value of 20 div esi 5 ; This will divide 'esi' by 5, resulting in the value 4
If 'esi' was not previously defined, the div function would produce an error:
div esi 5 ; DefinitionError: esi is not defined
elev Function
The elev
function is an advanced mathematical operation available in the CrateAssembly language, allowing users to raise a previously defined variable to the power of a given amount. Below are the details on how to use the elev
function effectively:
Ensure that the
varname
has already been declared and initialized before using theelev
function.The
elev
function takes two arguments:varname
andamount
.It raises the value of
varname
to the power specified byamount
.If
varname
is not defined, the function triggers aDefinitionError
, indicating the variable needs to be declared.
; Usage of the elev function in CrateAssembly
elev varname amount ; Raises 'varname' to the power of 'amount'
Example Usage:
include stdf ; Includes the standard function library in CrateAssembly
; Assuming the variable 'ebx' has been defined earlier with a value of 3
elev ebx 2 ; After execution, 'ebx' will be 9 (3 raised to the power of 2)
If 'ebx' was not previously defined, attempting to use the elev
function would result in an error:
elev ebx 2 ; DefinitionError: ebx is not defined
root Function
The root
function is a mathematical operation present in the CrateAssembly language that calculates the specified root of a given variable. It's included as part of the standard function library (stdf). To use the root
function properly, follow these guidelines:
Before using the
root
function, ensure that the variable (varname
) has been previously declared and assigned a value.The
root
function takes two arguments:varname
andamount
, whereamount
represents the degree of the root (e.g., 2 for square root, 3 for cubic root, etc.).The function computes the specified root of the variable
varname
.If
varname
is not defined, executing theroot
function will result in aDefinitionError
with a message thatvarname
is not defined.; Usage of the root function in CrateAssembly root varname amount ; Computes the 'amount'-degree root of 'varname'
Example Usage:
include stdf ; Includes the standard function library ; Assuming the variable 'ecx' is defined with a value of 16 root ecx 2 ; This will calculate the square root of 'ecx', setting it to 4
In the case where 'ecx' is not defined, you would encounter an error like so:
root ecx 2 ; DefinitionError: ecx is not defined
Last updated