remake assembler with customasm, misc, need to clean up

This commit is contained in:
Redo
2024-06-26 11:37:29 -06:00
parent 717a9d9b08
commit 7aa99412ba
14 changed files with 2173 additions and 778 deletions

View File

@@ -129,10 +129,10 @@ rts E1 3 I=*(----S)+1
jpr imm8 31 2 I+=imm8
jnz imm8 30 2 I+=imm8 if !Zero
jpz imm8 32 2 I+=imm8 if Zero
jge imm8 33 2 I+=imm8 if !Carry
jlt imm8 34 2 I+=imm8 if Carry
jgt imm8 35 2 I+=imm8 if !Zero & !Carry
jle imm8 36 2 I+=imm8 if Zero | Carry
jlt imm8 33 2 I+=imm8 if !Carry
jge imm8 34 2 I+=imm8 if Carry
jgt imm8 35 2 I+=imm8 if !Zero & Carry
jle imm8 36 2 I+=imm8 if Zero | !Carry
Stack (S):
psh a 40 2 *(S++)=A
@@ -166,30 +166,42 @@ ldc *imm16 57 4 C=*imm16, update zero flag
sta *imm16 50 4 *imm16=A
stb *imm16 58 4 *imm16=B
stc *imm16 59 4 *imm16=C
sta *p 52 2 *P=A
stb *p 5A 2 *P=B
stc *p 5B 2 *P=C
sta *q 54 2 *Q=A
stb *q 5C 2 *Q=B
stc *q 5D 2 *Q=C
lda *p+imm16 01 4 A=*P+imm16, update zero flag
ldb *p+imm16 F7 4 B=*P+imm16, update zero flag
ldc *p+imm16 FE 4 C=*P+imm16, update zero flag
lda *q+imm16 EB 4 A=*Q+imm16, update zero flag
ldb *q+imm16 08 4 B=*Q+imm16, update zero flag
ldc *q+imm16 09 4 C=*Q+imm16, update zero flag
sta *p+imm16 0A 4 *P+imm16=A
stb *p+imm16 0B 4 *P+imm16=B
stc *p+imm16 0C 4 *P+imm16=C
sta *q+imm16 0D 4 *Q+imm16=A
stb *q+imm16 0E 4 *Q+imm16=B
stc *q+imm16 0F 4 *Q+imm16=C
lda *p 53 2 A=*P, update zero flag
ldb *p 5E 2 B=*P, update zero flag
ldc *p 5F 2 C=*P, update zero flag
lda *q 55 2 A=*Q, update zero flag
ldb *q 61 2 B=*Q, update zero flag
ldc *q 62 2 C=*Q, update zero flag
sta *p++ C0 2 *P++=A
stb *p++ C1 2 *P++=B
stc *p++ C2 2 *P++=C
sta *q++ C3 2 *Q++=A
stb *q++ C4 2 *Q++=B
stc *q++ C5 2 *Q++=C
sta *p 52 2 *P=A
stb *p 5A 2 *P=B
stc *p 5B 2 *P=C
sta *q 54 2 *Q=A
stb *q 5C 2 *Q=B
stc *q 5D 2 *Q=C
lda *p++ C6 2 A=*P++, update zero flag
ldb *p++ C7 2 B=*P++, update zero flag
ldc *p++ C8 2 C=*P++, update zero flag
lda *q++ C9 2 A=*Q++, update zero flag
ldb *q++ CA 2 B=*Q++, update zero flag
ldc *q++ CB 2 C=*Q++, update zero flag
sta *p++ C0 2 *P++=A
stb *p++ C1 2 *P++=B
stc *p++ C2 2 *P++=C
sta *q++ C3 2 *Q++=A
stb *q++ C4 2 *Q++=B
stc *q++ C5 2 *Q++=C
16-bit Load/Store (W):
ldp imm16 21 3 P=imm16
@@ -204,6 +216,12 @@ ldp *imm16 68 5 P=*imm16
ldq *imm16 6A 5 Q=*imm16
stp *imm16 6C 5 *imm16=P
stq *imm16 6E 5 *imm16=Q
ldp *p+imm16 EC 5 P=*P+imm16
ldq *p+imm16 EE 5 Q=*P+imm16
ldp *q+imm16 F8 5 P=*Q+imm16
ldq *q+imm16 FA 5 Q=*Q+imm16
stq *p+imm16 06 5 *P+imm16=Q
stp *q+imm16 FC 5 *Q+imm16=P
ldp *p 92 3 P=*P
ldq *p 93 3 Q=*P
ldp *q 94 3 P=*Q
@@ -240,9 +258,9 @@ ldq p 8E 1 Q=P
lds p 8F 1 S=P
ldv p 90 1 V=P
Opcodes used: 228/255
Opcodes used: 252/255
0123456789ABCDEF
00 | C---------------
00 | CB----WWBBBBBBBB
10 | UUIIUIIUUUUUUUUU
20 | BWWWAWBBBBBUUUUA
30 | JJJJJJJMMMMSSSAA
@@ -256,5 +274,5 @@ A0 | AAAAAAAAAAAAAAAA
B0 | AAAAAAAAAAAAAAAA
C0 | BBBBBBBBBBBBWWWW
D0 | AAAAAAAAAAAAAAAA
E0 | MJJJJJXXXSS-----
F0 | CCCCCCC--------C
E0 | MJJJJJXXXSSBWWWW
F0 | CCCCCCCBWWWWWWBC