FORMAT : keyword FLAG OPERAND1 OPERAND2 OUTPUT
KEYWORD : add , sub , mul , div , mod , and , or , xor
FLAGS : .data , .value , .result , .xword
OPERAND : The data which gets operated on, can be an immediate value or a variable
OUTPUT : .result , .xword , variable , The result gets saved here.
POSSIBLE COMBINATIONS :
var1 , var2 , var3 = User Defined Variable
value1 , value2 = Immediate Data
keyword .data var1 var2 .result
keyword .data var1 var2 .xword
keyword .data var1 var2 var3
keyword .value value1 value2 .result
keyword .value value1 value2 xword
keyword .value value1 value2 var1
keyword .result value1 .result
keyword .result value1 .xword
keyword .result value1 var1
add .xword value1 .result
add .xword value1 .xword
add .xword value1 var1
EDGE CASES
If no OUTPUT is specified Primary Accumulator (.result) is copied to Secondary Accumulator (.xword) to preserve it for potentially junk operations , Secondary Accumulator (xword) is NOT preserved in this operation.
If var1 (or any variable) uses the identifier name ".result" or ".xword" , the actual virtual accumulators will be prioritized
Example of .xword and .result in a real script
Example of using .value in a real program
Example of using .data flag