|
|
Assembler: a low-level programming language for a computer, in which there is a very strong correspondence between the language and the architecture's machine code instructions.
Virtual machine: an emulation of a particular or hypothetical computer system.
SpecMan4EPR Assembler is executed on the Virtual Machine that has two registers: ax register, internal time counter register treg, and the stack. The Assembler supports memory addressing, conditional statements, cycles and jumps. To reduce the length of program, many assembler commands perform composite actions.
| |
Command |
Action |
Comment |
| 0 |
NOP |
nop |
Empty operation |
| 1 |
ADD |
add ax, stack; pop stack |
Addition |
| 2 |
SUB |
sub ax, stack; pop stack |
Subtraction |
| 3 |
MUL |
mul ax, stack; pop stack |
Multiplication |
| 4 |
DIV |
div ax, stack; pop stack |
Division |
| 5 |
IDIV |
idiv ax, stack; pop stack |
Division with rounding |
| 6 |
NEG |
inv ax |
ax = -ax |
| 7 |
AND |
and ax, stack; pop stack |
Logical AND |
| 8 |
OR |
or ax, stack; pop stack |
Logical OR |
| 9 |
LT |
lt ax, stack; pop stack |
ax = stack < ax ? 1 : 0 |
| 10 |
LE |
le ax, stack; pop stack |
ax = stack <= ax ? 1 : 0 |
| 11 |
EQ |
eq ax, stack; pop stack |
ax = stack == ax ? 1 : 0 |
| 12 |
NE |
ne ax, stack; pop stack |
ax = stack != ax ? 1 : 0 |
| 13 |
GE |
ge ax, stack; pop stack |
ax = stack >= ax ? 1 : 0 |
| 14 |
GT |
gt ax, stack; pop stack |
ax = stack > ax ? 1 : 0 |
| 15 |
NOT |
not ax |
Logical NOT |
| 16 |
MOVE_A_ADDR |
mov ax, *ax |
Move to ax from memory |
| 17 |
MOVE_ADDR_A |
mov *ax, ax |
Move ax to memory |
| 18 |
MOVEAX_AX |
mov ax, [*ax+stack]; pop stack |
Move to ax from memory using offset from stack |
| 19 |
PUSH |
push ax |
Push to stack |
| 20 |
POP |
pop ax |
Pop from stack |
| 21 |
JZ |
jz |
Conditional jump |
| 22 |
JNZ |
jnz |
Conditional jump |
| 23 |
JP |
jp |
Unconditional jump |
| 24 |
PARAL_BEGIN |
push treg |
Push current time to stack |
| 25 |
PARAL_END |
pop treg |
Pop current time from stack |
| 26 |
PULSE |
treg = treg + pulselength |
Pulse command |
| 27 |
RepStart |
|
Flow |
| 28 |
RepEnd |
|
Flow |
| 29 |
TIMEZERO |
|
AWG engine and detection phase related |
| 30 |
REFERENCE |
|
Detection phase related |
| 31 |
Round |
|
Function |
See also:
Virtual Machine
|