Files
wassembly/design.md

931 B

Design

Parsing

  • First we tokenize the input (syntax check)
  • Then we interpret the input (semantics check)
  • Then we execute the input

Notation

  • [operation][number type], e.g. divi for divide (div) integer
  • %[register] for addressing registers
  • $[value] for using literals/immediate values
  • ; for end of statement (mandatory)
  • [label]: for labels
  • Elements must be separated by whitespace character
    • Good: add $2 $5 %A;
    • Bad: add $2$5%A;

Examples

Divide register A by 5 and store the result in register A: divi %A $5 %A;

Reserved symbols

The following whitespace characters are used to separate symbols:

  • space (' ')
  • tab ('\t')
  • return carriage ('\r')
  • newline ('\n')

The following characters are used as identifiers:

  • dollar ('$')
  • percentage ('%')
  • colon (':')
  • semicolon (';')
  • hash ('#')

All operands are reserved keywords and can therefore NOT be used as labels.