175 lines
3.9 KiB
Plaintext
175 lines
3.9 KiB
Plaintext
|
|
|
|
C:\>asm43 --help
|
|
Relay Computer Assembler: Ver. Beta 0.4.3
|
|
|
|
Valid assembler codes:
|
|
|
|
ADD : 22 00100010
|
|
AND : 26 00100110
|
|
BRA : 60 01100000
|
|
BRN : 48 01001000
|
|
BRNN : 54 01010100
|
|
BRNO : 5c 01011100
|
|
BRNP : 50 01010000
|
|
BRNZ : 4c 01001100
|
|
BRO : 58 01011000
|
|
BRP : 44 01000100
|
|
BRZ : 40 01000000
|
|
DEF :
|
|
EQU :
|
|
HALT : 08 00001000
|
|
INCB,A : 2c 00101100
|
|
INCB,C : 2e 00101110
|
|
LDAA : a0 10100000
|
|
LDAB : a1 10100001
|
|
LDAC : a2 10100010
|
|
LDDA : a8 10101000
|
|
LDDB : a9 10101001
|
|
LDDC : aa 10101010
|
|
LDIA : 98 10011000
|
|
LDIB : 99 10011001
|
|
LDIC : 9a 10011010
|
|
MOVA,B : c1 11000001
|
|
MOVA,C : c2 11000010
|
|
MOVA,MH : c3 11000011
|
|
MOVA,ML : c4 11000100
|
|
MOVAD+,PC: ec 11101100
|
|
MOVB,A : c8 11001000
|
|
MOVB,C : ca 11001010
|
|
MOVB,MH : cb 11001011
|
|
MOVB,ML : cc 11001100
|
|
MOVC,A : d0 11010000
|
|
MOVC,B : d1 11010001
|
|
MOVC,MH : d3 11010011
|
|
MOVC,ML : d4 11010100
|
|
MOVM,PC : de 11011110
|
|
MOVPC,AD+: f5 11110101
|
|
MOVZ,A : f8 11111000
|
|
MOVZ,B : f9 11111001
|
|
MOVZ,C : fa 11111010
|
|
MOVZ,MH : fb 11111011
|
|
MOVZ,ML : fc 11111100
|
|
NOP : 00 00000000
|
|
NOTA,B : 29 00101001
|
|
NOTA,C : 2a 00101010
|
|
ORG :
|
|
RESET : 04 00000100
|
|
ROLB,A : 34 00110100
|
|
ROLB,C : 36 00110110
|
|
RORA,B : 31 00110001
|
|
RORA,C : 32 00110010
|
|
STAA : 84 10000100
|
|
STAB : 8c 10001100
|
|
STAC : 94 10010100
|
|
STAZ : bc 10111100
|
|
STDA : 85 10000101
|
|
STDB : 8d 10001101
|
|
STDC : 95 10010101
|
|
WAIT : 0c 00001100
|
|
\ :
|
|
|
|
|
|
Example assembly
|
|
|
|
|
|
>>>>> Starting pass1...
|
|
Constant-> START 05H (5)
|
|
Constant-> LENG 0AH (10)
|
|
Constant-> END 0FH (15)
|
|
Symbol-> STACK 4000H (16384)
|
|
Symbol-> stkPtr 400AH (16394)
|
|
Label-> L1: 0040H
|
|
Label-> RET1: 0062H
|
|
<<<<< end of pass1
|
|
|
|
\ This is a comment
|
|
\ Define a constant
|
|
EQU START 05H
|
|
EQU LENG 10
|
|
EQU END START+LENG
|
|
|
|
\ Define some variables in RAM
|
|
4000: ORG 4000H \Ram at 4000H
|
|
DEF STACK *10 \Holds 5 addresses
|
|
DEF stkPtr *2 \Pointer into stack
|
|
|
|
\ Beginning of code
|
|
\
|
|
\ Space prefixed string
|
|
\ Tab prefixed string
|
|
\ Space after \ in string
|
|
0100: org 0100H
|
|
0100: 00 nop
|
|
0101: 00 NOP
|
|
0102: BC 40 0A STAZ stkPtr
|
|
0105: BC 40 0B STAZ stkPtr+1
|
|
0108: F8 MOVZ,A
|
|
0109: 85 STDA
|
|
010A: A8 LDDA
|
|
0032: org 50 \using decimal org
|
|
0032: 99 FF LDIB FFH
|
|
0034: 99 08 LDIB START+3
|
|
0036: 98 05 LDIA START
|
|
0038: 98 40 LDIA STACK:H
|
|
003A: 98 00 LDIA STACK:L
|
|
003C: 98 03 LDIA STACK+3:L
|
|
003E: 98 40 LDIA STACK+3:H
|
|
L1:
|
|
0040: 22 ADD
|
|
0041: D0 MOVC,A
|
|
0042: 4C 00 40 BRNZ L1: \ Test trailing comment
|
|
0045: 00 nop
|
|
0046: 00 nop
|
|
0047: A0 00 02 LDAA 0002H \ Address in Hex
|
|
004A: A0 00 40 LDAA L1: \ Address as a label
|
|
004D: A1 40 0A LDAB stkPtr \ Address as a symbol
|
|
0050: 2E INCB,C
|
|
0051: 94 40 0A STAC stkPtr
|
|
0054: 94 40 0D STAC stkPtr+START-2
|
|
0057: A0 40 0B LDAA stkPtr+1
|
|
005A: 36 ROLB,C
|
|
005B: 98 00 LDIA RET1:H
|
|
005D: C3 MOVA,MH
|
|
005E: 98 62 LDIA RET1:L
|
|
0060: C4 MOVA,ML
|
|
0061: DE MOVM,PC
|
|
RET1:
|
|
0062: 08 halt
|
|
\ End of program
|
|
|
|
|
|
|
|
Labels
|
|
======
|
|
0040: L1:
|
|
0062: RET1:
|
|
|
|
Symbols
|
|
=======
|
|
STACK: 4000
|
|
stkPtr: 400A
|
|
|
|
Constants
|
|
=========
|
|
START: 05
|
|
LENG: 0A
|
|
END: 0F
|
|
|
|
Hex output
|
|
==========
|
|
4000:
|
|
0100: 00 00 BC 40 0A BC 40 0B
|
|
0108: F8 85 A8
|
|
0032: 99 FF 99 08 98 05 98 40
|
|
003A: 98 00 98 03 98 40 22 D0
|
|
0042: 4C 00 40 00 00 A0 00 02
|
|
004A: A0 00 40 A1 40 0A 2E 94
|
|
0052: 40 0A 94 40 0D A0 40 0B
|
|
005A: 36 98 00 C3 98 62 C4 DE
|
|
0062: 08
|
|
|
|
0:Errors
|
|
|
|
|
|
C:\> |