6800 Assembler (6800 instruction set)

(other stuff: Arduino Timer Interrupts Calculator, Pixel Font Editor)

Informace ...

Upozornění:

Pokud jsou detekovány chyby (výpis v políčku Errors), není vygenerový výstup v pořádku, byť tak může působit!!

Poznámky:

Překladač nebere zřetel na velikost písma, výstupy jsou verzálkami.

Formální tvar zdrojového řádku je: LABEL[mezera]MNEMO-KOD-INSTRUKCE[mezera]PARAMETR/Y[mezera]KOMENTÁŘ

Labely jsou nepovinné, musejí však začínat písmenem abecedy, je nutno psát ihned z počátku řádku a mohou, ale nemusejí končit dvojtečkou.

Komentáře se uvozují středníkem ";" a platí od daného místa až po konec řádku.

Instrukce adresující akumulátory je možné psát s určením akumulátoru zvlášť nebo dohromady s instrukcí - "ADC A #$10" i "ADCA #$10"

Parametry instrukce mohou být přímo vyčísleny nebo zapsány pomocí proměnné či celým výrazem.

Číselné hodnoty je možno zadávat ve dvojkové, osmičkové, desítkové nebo šestnáctkové soustavě, kdy uvedené soustavy jsou určeny prefixem:

Proměnné se definují uvedením znaku rovnítka "=" za název proměnné a následnou hodnotou nebo výrazem složeným z výrazu z na daném místě známých proměnných.

Výrazy musejí být syntakticky správně napsány a mimo běžné matematické operace mohou obsahovat symboly "<" a ">" pro extrakci LO nebo HI-Bytu z nasledující hodnoty (uvedené buď přímo číselně, proměnnou nebo výrazem).

U relativní adresace (REL) se počítá s formátem zápisu parametru buď "*-$12" pro relativní skok vzhledem k aktuální pozici, nebo uvedením labelu/proměnné či výrazu, kdy jeho výsledná hodnota je považována za cílovou adresu a vyčíslení relativního skoku je dopočítáno.

Nový stav pozice v paměti se nastavuje pomocí "*=ADDR". (Hvězdička vlastně obecně zastupuje PC.)

Uživatelská data se zadávají za řídicí výraz ".DATA" umístěný na řádku na pozici instrukce a mohou být uváděna v libovolné číselné soustavě jako jedno či dvojbajtová čísla nebo jako řetězec v uvozovkách, kdy se ukládají ASCII kódy jednotlivých znaků řetězce.

Operation notes...

Warning:

If any error occurs (any printout in "Errors" field) the produced output IS NOT OK!!

Notes:

Assembler is case insensitive. Output is allways in upper-case.

Formal source line notation is: LABEL[space]INSTRUCTION-MNEMO-CODE[space]PARAMETER/S[space]COMMENT

Labels are optional; must begin with alphabet character; must be written from the first column of the source line; optionally can end with colon.

Comments begins with semicolon and are valid to the end of line.

Accumulator instructions can be written altogether (the base mnemo-code with accumulator specification) or separately (with space) - "ADCA #$10" or "ADC A #$10"

Parameters can be numbers, variables or expressions.

Number values can by entered in bin, oct, dec or hex radix - specified by prefix:

Variables are defined by placing the equal sign "=" after the variable name and putting a numeric value or expression from values or known variables.

Expression syntax must be valid and beside common math operation it can contain symbols "<" and ">" for LO or HI-Byte of succeeding value (written by value, variable or expression).

Relative address mode instruction (REL) value can be entered by the label, full destination adress by value, variable or expression, or using syntax "*-$12" for relative jump to the current position.

New position in memory can be set by notation "*=ADDR". (asterisk again represents PC)

User data can be written after the ".DATA" statement located on the instruction position of the line. Data can be entered as one/two-byte numbers in any radix (prefixed) or as ASCII coded strings enclosed in quotes.