================== Linker Word List ================== ``!=`` ------ Compare two numbers on the stack. ``&`` ----- Bitwise AND of two numbers on the stack. ``*`` ----- Multiply two numbers on the stack. ``+`` ----- Add two numbers on the stack. ``-`` ----- Subtract two numbers on the stack. ``/`` ----- Divide two numbers on the stack. ``16BIT`` --------- Store a word (16 bits) from the stack in the current segment. The value is masked to 16 bits. Example:: 0x1234 16BIT ``32BIT`` --------- Store an integer (32 bits) from the stack in the current segment. The value is masked to 32 bits. Example:: 0x12345678 32BIT ``8BIT`` -------- Store a byte (8 bits) from the stack in the current segment. The value is masked to 8 bits. Example:: 0x12 8BIT ``<`` ----- Compare two numbers on the stack. ``<<`` ------ Bitwise shift left. ``<=`` ------ Compare two numbers on the stack. ``==`` ------ Compare two numbers on the stack. ``>`` ----- Compare two numbers on the stack. ``>=`` ------ Compare two numbers on the stack. ``>>`` ------ Bitwise shift right. ``ALIGN`` --------- Make location counter (PC) even. ``AND`` ------- Logical AND of two numbers on the stack ``CLEAR`` --------- Clear stack. ``COLUMN`` ---------- Store source filename for error messages. Example:: 10 COLUMN ``CONSTANT-SYMBOL`` ------------------- Create symbol and assign to it the value from the stack. Example: ``1 CONSTANT-SYMBOL somelabel`` ``CREATE-SYMBOL`` ----------------- Mark current location with symbol. Example: ``CREATE-SYMBOL somelabel`` ``DROP`` -------- Remove and forget about topmost element on the stack. ``DUP`` ------- Duplicate the topmost element on the stack. ``FILENAME`` ------------ Store source filename for error messages. This also clears all local symbols. Example:: FILENAME source.S ``FLOAT`` --------- Convert TOS to a floating point number. ``GET-SYMBOL`` -------------- Get a symbol and put its value on the stack. Example: ``GET-SYMBOL somelabel`` ``IFTE`` -------- If then else for 3 values on the stack: predicate, value_true, value_false. ``INT`` ------- Convert TOS to an integer. ``JMP`` ------- MSP430 jump instruction (insns dist). Takes offset and instruction from stack, calculate final opcode and store it. Example:: 0x2000 GET-SYMBOL somelabel PC - 2 - JMP ``LINE`` -------- Store source filename for error messages. Example:: 5 LINE ``LIST`` -------- testing only: print all knwon words to stdout ``MAX`` ------- Leave the larger of two values on the stack. ``MIN`` ------- Leave the smaller of two values on the stack. ``NEG`` ------- Negate number on stack. ``NOT`` ------- Logical NOT of number on stack ``OR`` ------ Logical OR of two numbers on the stack ``OVER`` -------- Push a copy of the second element on the stack. ``PC`` ------ Put the value of the location counter on the stack. ``PICK`` -------- Push a copy of the N'th element on the stack. ``RESERVE`` ----------- Reserve space in the current segment. Length in bytes is taken from the stack. ``RESET`` --------- Reset state. This can be used between files, so that every file starts with the same preconditions (such as no segment selected). ``SEGMENT`` ----------- Select a different segment to put data into. The segment name must be known. The location counter is set to append to any existing data in the segment. Example:: SEGMENT .vectors ``SWAP`` -------- Exchange the two topmost elements on the stack. ``WEAK-ALIAS`` -------------- Assign a symbol for an other symbol. The alias is used when the symbol is not defined. Example: ``WEAK-ALIAS __vector_0 _unused_vector`` here, if ``__vector_0`` is not defined, it will point to ``_unused_vector``. ``^`` ----- Bitwise XOR of two numbers on the stack. ``|`` ----- Bitwise OR of two numbers on the stack. ``~`` ----- Bitwise invert of number on stack.