31 lines
997 B
Markdown
31 lines
997 B
Markdown
# Assembly language
|
|
|
|
## Syntax
|
|
|
|
ADD $01 ; comments follow a `;`
|
|
|
|
ADD $FF ; this is direct addressing
|
|
ADD ($CC) ; this is indirect addressing
|
|
|
|
END ; END and NOP don't require operands
|
|
; (the assembler will fill in a default value of 0)
|
|
|
|
@subroutine ; create a label
|
|
ADD $01 ; (it must be on the line before the code it names)
|
|
ADD $02
|
|
|
|
JMP @subroutine ; use a label as operand
|
|
; the label will be replaced with
|
|
; the address of the label
|
|
|
|
#foo $FF ; define a constant
|
|
; (must be defined before it is referenced)
|
|
|
|
ADD #foo ; use a constant as an operand
|
|
|
|
LDA * ; `*` is a special label referencing the memory address
|
|
; where the current line will be stored after assembly
|
|
|
|
- Prefix hexadecimal numbers with `$` (or `0x`)
|
|
- Prefix binary numbers with `0b`
|
|
- Whitespace is ignored |