mirror of
https://github.com/wfjm/w11.git
synced 2026-02-26 00:53:40 +00:00
64 lines
2.0 KiB
Plaintext
64 lines
2.0 KiB
Plaintext
; $Id: test_0180_pst.mac 1184 2019-07-10 20:39:44Z mueller $
|
|
; SPDX-License-Identifier: GPL-3.0-or-later
|
|
; Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
|
|
|
; test interaction pst <-> lst
|
|
;
|
|
.asect
|
|
.blkw 400
|
|
|
|
; defined constants based on opcodes
|
|
|
|
c1 = inc ;;!! 005200
|
|
c2 = inc + 67 ;;!! 005267
|
|
|
|
; use opcode values as constants
|
|
|
|
mov #mov,r1 ;;!! 012701 010000
|
|
mov #inc,r2 ;;!! 012702 005200
|
|
|
|
; combine opcodes, especially cc ops
|
|
; uses implicit .word mechanism, and that pst symbols can be used as constants
|
|
|
|
sec ;;!! 000261
|
|
sev ;;!! 000262
|
|
sez ;;!! 000264
|
|
sen ;;!! 000270
|
|
|
|
<sec!sev> ;;!! 000263
|
|
<sec!sev!sez> ;;!! 000267
|
|
<sec!sev!sez!sen> ;;!! 000277
|
|
|
|
; Note: sec!sev without <> will not work, the first sec will trigger operand
|
|
; parsing, and since sec doesn't have operands, flag an error
|
|
|
|
; using self-defined compound opcodes
|
|
|
|
scv = sec ! sev ;;!! 000263
|
|
scv ;;!! 000263
|
|
|
|
; not check pst - lst interference
|
|
; opcodes are always looked-up from pst
|
|
; symbols are looked-up first in lst, than in pst
|
|
|
|
; opcode name defined as const
|
|
cmp = 1234 ;;!! 001234
|
|
|
|
; instruction usage is unaltered, but usage as constant is redefined
|
|
|
|
cmp r0,r0 ;;!! 020000
|
|
mov #cmp,r0 ;;!! 012700 001234
|
|
mov #cmp+77,r0 ;;!! 012700 001333
|
|
|
|
; and label with an opcode name, same concept
|
|
|
|
clr r0 ;;!! 005000
|
|
clr @#mov ;;!! 005037 010000
|
|
clr @#cmp ;;!! 005037 001234
|
|
clr @#clr ;;!! 005037 001060
|
|
clr: clr @#mov ;;!! 001060: 005037 010000
|
|
clr @#cmp ;;!! 005037 001234
|
|
clr @#clr ;;!! 005037 001060
|
|
|
|
.end
|