HARSFEN0602ElmoHARmonicaSoftwareManual

PRELIMINARYDRAFT

 

 

 

REM

Reminder from division of the number below top of stack by the top

 

 

stack.

 

 

RSLTAND

Check if number at top of stack and number below are non zero than

 

 

condition is true otherwise condition is false

 

RSLTOR

Check if number at top of stack or number below are non zero than

 

 

condition is true otherwise condition is false

 

XOR

Bitwise XOR operator – between the number at top of stack and the

 

 

number below

 

 

NOT

Bitwise NOT operator – on the number at the top of stack

 

SHR

Logical right shift the number at the top of stack by the number below

 

 

top of stack

 

 

SHL

Logical left shift the number at the top of stack by the number below

 

 

top of stack

 

 

AND

Bitwise AND operator – between the number at top of stack and the

 

 

number below

 

 

F_OR

Bitwise OR operator – between the number at top of stack and the

 

 

number below

 

 

UNARY_NOT

Check if number at top of stack is non zero than condition is false

 

 

otherwise condition is true

 

 

 

 

RSLTE

Compare the number at top of stack with the number below, if they

 

 

are equal condition is true

 

RSLTA

Compare the number at top of stack with the number below, if

 

 

the first number is bigger condition is true

 

RSLTAE

Compare the number at top of stack with the number below, if

 

 

the first number is bigger or they are equal condition is true

 

RSLTB

Compare the number at top of stack with the number below, if

 

 

the first number is smaller condition is true

 

RSLTBE

Compare the number at top of stack with the number below, if

 

 

the first number is smaller or equal condition is true

 

RSLTNE

Compare the number at top of stack with the number below, if

 

 

they are not equal condition is true

 

MOV

Assignment operator (=) between global/local variables, assign value

 

 

can also be constant

 

 

CMP

Compare two values (they can be global/local variables, constants or

 

 

from stack), if they are equal condition is true

 

JMP

Jump to different location in program

 

JMP_EOL

Jump to different location in program, and force end of line (stop

 

 

execution of current program line until next cycle).

 

JMP_LABEL

Jump to a label

 

 

JNZ

Jump if value is not zero (tested value can be local/global variable or

 

 

constant)

 

 

JNZ_EOL

Jump if value is not zero (tested value can be local/global variable or

 

 

constant) and force end of line (stop execution of current program line

 

 

until next cycle).

 

 

JZ

Jump if value is zero (tested value can be local/global variable,

 

 

constant or from stack)

 

 

JZ_EOL

Jump if value is zero (tested value can be local/global variable,

 

 

constant or from stack)

and force end of line (stop execution of

 

 

current program line until next cycle).

 

SPADD

Increase or decrease stack pointer with the value given as an argument

 

GETINDX

Get value from array variable defined in data segment (array member

 

 

index is at top of stack)

 

 

SETINDX

Set value to array variable defined in data segment (array member

 

 

index is at top of stack)

 

 

SET_COMM

Call to function service of a ‘set’ command whose index in the

 

74

Page 76
Image 76
Elmo HARmonica Rem, Rsltand, Rsltor, Not, Shr, Shl, For, Unarynot, Rslte, Rsltae, Rsltbe, Rsltne, Mov, Cmp, Jmp, Jnz