mirror of
https://github.com/fadden/6502bench.git
synced 2024-09-10 13:54:52 +00:00
We weren't checking to see if character operands matched their delimiters, so bad code like "LDA #'''" was being generated. There wasn't a test for this in 2006-operand-formats, so the test has been updated with single and double quotes in low and high ASCII.
87 lines
1.8 KiB
ArmAsm
87 lines
1.8 KiB
ArmAsm
; Copyright 2018 faddenSoft. All Rights Reserved.
|
|
; See the LICENSE.txt file for distribution terms (Apache 2.0).
|
|
;
|
|
; Assembler: Merlin 32
|
|
|
|
org $1000
|
|
|
|
; 65816 with short regs
|
|
clc
|
|
xce
|
|
sep #$30
|
|
mx %11
|
|
|
|
; Basic operand formats. Show first set as hex, second as decimal,
|
|
; third as binary.
|
|
lda $01
|
|
lda $0102
|
|
ldal $010203
|
|
|
|
lda $01
|
|
lda $0102
|
|
ldal $010203
|
|
|
|
lda $01
|
|
lda $0102
|
|
ldal $010203
|
|
|
|
bra :skipdata
|
|
|
|
; Now hex/decimal/binary, 1-2-3-4 bytes, in data area.
|
|
hex 01010201020301020304
|
|
hex 01010201020301020304
|
|
hex 01010201020301020304
|
|
|
|
:skipdata
|
|
|
|
; Convert these to ASCII; requires editing file. The code generator
|
|
; should display some of these as hex.
|
|
lda #$68
|
|
lda $68
|
|
lda: $0068
|
|
ldal $000068
|
|
|
|
lda #$1f
|
|
lda #$20
|
|
lda #$22
|
|
lda #$27
|
|
lda #$7e
|
|
lda #$7f
|
|
lda #$80
|
|
lda #$9f
|
|
lda #$a0
|
|
lda #$a2
|
|
lda #$a7
|
|
lda #$fe
|
|
lda #$ff
|
|
|
|
; Switch to long regs, continue with ASCII.
|
|
rep #$30
|
|
mx %00
|
|
|
|
lda #$0068
|
|
lda #$00c8
|
|
lda #$6868
|
|
|
|
rts
|
|
|
|
; Continuing with ASCII
|
|
:ascii
|
|
dfb $68
|
|
dfb $80
|
|
dw $6868
|
|
dfb $80
|
|
|
|
|
|
; Format first set as address, second set as symbol.
|
|
dw :skipdata
|
|
adr :skipdata
|
|
dfb >:skipdata,:skipdata ;format as big-endian address
|
|
|
|
dfb :ascii
|
|
dfb >:ascii
|
|
dw :ascii
|
|
adr :ascii
|
|
dfb >:ascii,:ascii ;format as big-endian symbol
|
|
|