diff options
author | John Darrington <john@darrington.wattle.id.au> | 2018-05-18 15:26:18 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2018-05-18 15:26:18 +0100 |
commit | 7b4ae824289504c173a597e86a00ceab452095b7 (patch) | |
tree | 98efc51666beecffead172a6c29c4c1f75b14174 /gas/doc | |
parent | 011b32fd4270fb7111ee1f63695ccd44562ee7df (diff) | |
download | binutils-7b4ae824289504c173a597e86a00ceab452095b7.zip binutils-7b4ae824289504c173a597e86a00ceab452095b7.tar.gz binutils-7b4ae824289504c173a597e86a00ceab452095b7.tar.bz2 |
Add support for the Freescale s12z processor.
bfd * Makefile.am: Add s12z files.
* Makefile.in: Regenerate.
* archures.c: Add bfd_s12z_arch.
* bfd-in.h: Add exports of bfd_putb24 and bfd_putl24.
* bfd-in2.h: Regenerate.
* config.bfd: Add s12z target.
* configure.ac: Add s12z target.
* configure: Regenerate.
* cpu-s12z.c: New file.
* elf32-s12z.c: New file.
* libbfd.c (bfd_putb24): New function.
(bfd_putl24): New function.
* libbfd.h: Regenerate.
* reloc.c: Add s12z relocations.
(bfd_get_reloc_size): Handle size 5 relocs.
* targets.c: Add s12z_elf32_vec.
opcodes * Makefile.am: Add support for s12z architecture.
* configure.ac: Likewise.
* disassemble.c: Likewise.
* disassemble.h: Likewise.
* Makefile.in: Regenerate.
* configure: Regenerate.
* s12z-dis.c: New file.
* s12z.h: New file.
include * elf/s12z.h: New header.
ld * Makefile.am: Add support for s12z architecture.
* configure.tgt: Likewise.
* Makefile.in: Regenerate.
* emulparams/m9s12zelf.sh: New file.
* scripttempl/elfm9s12z.sc: New file.
* testsuite/ld-discard/static.d: Expect to fail for the s12z
target.
* testsuite/ld-elf/endsym.d: Likewise.
* testsuite/ld-elf/merge.d: Likewise.
* testsuite/ld-elf/pr14926.d: Skip for the s12z target.
* testsuite/ld-elf/sec64k.exp: Likewise.
* testsuite/ld-s12z: New directory.
* testsuite/ld-s12z/opr-linking.d: New file.
* testsuite/ld-s12z/opr-linking.s: New file.
* testsuite/ld-s12z/relative-linking.d: New file.
* testsuite/ld-s12z/relative-linking.s: New file.
* testsuite/ld-s12z/z12s.exp: New file.
gas * Makefile.am: Add support for s12z target.
* Makefile.in: Regenerate.
* NEWS: Mention the new support.
* config/tc-s12z.c: New file.
* config/tc-s12z.h: New file.
* configure.tgt: Add s12z support.
* doc/Makefile.am: Likewise.
* doc/Makefile.in: Regenerate.
* doc/all.texi: Add s12z documentation.
* doc/as.textinfo: Likewise.
* doc/c-s12z.texi: New file.
* testsuite/gas/s12z: New directory.
* testsuite/gas/s12z/abs.d: New file.
* testsuite/gas/s12z/abs.s: New file.
* testsuite/gas/s12z/adc-imm.d: New file.
* testsuite/gas/s12z/adc-imm.s: New file.
* testsuite/gas/s12z/adc-opr.d: New file.
* testsuite/gas/s12z/adc-opr.s: New file.
* testsuite/gas/s12z/add-imm.d: New file.
* testsuite/gas/s12z/add-imm.s: New file.
* testsuite/gas/s12z/add-opr.d: New file.
* testsuite/gas/s12z/add-opr.s: New file.
* testsuite/gas/s12z/and-imm.d: New file.
* testsuite/gas/s12z/and-imm.s: New file.
* testsuite/gas/s12z/and-opr.d: New file.
* testsuite/gas/s12z/and-opr.s: New file.
* testsuite/gas/s12z/and-or-cc.d: New file.
* testsuite/gas/s12z/and-or-cc.s: New file.
* testsuite/gas/s12z/bfext-special.d: New file.
* testsuite/gas/s12z/bfext-special.s: New file.
* testsuite/gas/s12z/bfext.d: New file.
* testsuite/gas/s12z/bfext.s: New file.
* testsuite/gas/s12z/bit-manip.d: New file.
* testsuite/gas/s12z/bit-manip.s: New file.
* testsuite/gas/s12z/bit.d: New file.
* testsuite/gas/s12z/bit.s: New file.
* testsuite/gas/s12z/bra-expression-defined.d: New file.
* testsuite/gas/s12z/bra-expression-defined.s: New file.
* testsuite/gas/s12z/bra-expression-undef.d: New file.
* testsuite/gas/s12z/bra-expression-undef.s: New file.
* testsuite/gas/s12z/bra.d: New file.
* testsuite/gas/s12z/bra.s: New file.
* testsuite/gas/s12z/brclr-symbols.d: New file.
* testsuite/gas/s12z/brclr-symbols.s: New file.
* testsuite/gas/s12z/brset-clr-opr-imm-rel.d: New file.
* testsuite/gas/s12z/brset-clr-opr-imm-rel.s: New file.
* testsuite/gas/s12z/brset-clr-opr-reg-rel.d: New file.
* testsuite/gas/s12z/brset-clr-opr-reg-rel.s: New file.
* testsuite/gas/s12z/brset-clr-reg-imm-rel.d: New file.
* testsuite/gas/s12z/brset-clr-reg-imm-rel.s: New file.
* testsuite/gas/s12z/brset-clr-reg-reg-rel.d: New file.
* testsuite/gas/s12z/brset-clr-reg-reg-rel.s: New file.
* testsuite/gas/s12z/clb.d: New file.
* testsuite/gas/s12z/clb.s: New file.
* testsuite/gas/s12z/clr-opr.d: New file.
* testsuite/gas/s12z/clr-opr.s: New file.
* testsuite/gas/s12z/clr.d: New file.
* testsuite/gas/s12z/clr.s: New file.
* testsuite/gas/s12z/cmp-imm.d: New file.
* testsuite/gas/s12z/cmp-imm.s: New file.
* testsuite/gas/s12z/cmp-opr-inc.d: New file.
* testsuite/gas/s12z/cmp-opr-inc.s: New file.
* testsuite/gas/s12z/cmp-opr-rdirect.d: New file.
* testsuite/gas/s12z/cmp-opr-rdirect.s: New file.
* testsuite/gas/s12z/cmp-opr-reg.d: New file.
* testsuite/gas/s12z/cmp-opr-reg.s: New file.
* testsuite/gas/s12z/cmp-opr-rindirect.d: New file.
* testsuite/gas/s12z/cmp-opr-rindirect.s: New file.
* testsuite/gas/s12z/cmp-opr-sxe4.d: New file.
* testsuite/gas/s12z/cmp-opr-sxe4.s: New file.
* testsuite/gas/s12z/cmp-opr-xys.d: New file.
* testsuite/gas/s12z/cmp-opr-xys.s: New file.
* testsuite/gas/s12z/cmp-s-imm.d: New file.
* testsuite/gas/s12z/cmp-s-imm.s: New file.
* testsuite/gas/s12z/cmp-s-opr.d: New file.
* testsuite/gas/s12z/cmp-s-opr.s: New file.
* testsuite/gas/s12z/cmp-xy.d: New file.
* testsuite/gas/s12z/cmp-xy.s: New file.
* testsuite/gas/s12z/com-opr.d: New file.
* testsuite/gas/s12z/com-opr.s: New file.
* testsuite/gas/s12z/complex-shifts.d: New file.
* testsuite/gas/s12z/complex-shifts.s: New file.
* testsuite/gas/s12z/db-tb-cc-opr.d: New file.
* testsuite/gas/s12z/db-tb-cc-opr.s: New file.
* testsuite/gas/s12z/db-tb-cc-reg.d: New file.
* testsuite/gas/s12z/db-tb-cc-reg.s: New file.
* testsuite/gas/s12z/dbCC.d: New file.
* testsuite/gas/s12z/dbCC.s: New file.
* testsuite/gas/s12z/dec-opr.d: New file.
* testsuite/gas/s12z/dec-opr.s: New file.
* testsuite/gas/s12z/dec.d: New file.
* testsuite/gas/s12z/dec.s: New file.
* testsuite/gas/s12z/div.d: New file.
* testsuite/gas/s12z/div.s: New file.
* testsuite/gas/s12z/eor.d: New file.
* testsuite/gas/s12z/eor.s: New file.
* testsuite/gas/s12z/exg.d: New file.
* testsuite/gas/s12z/exg.s: New file.
* testsuite/gas/s12z/ext24-ld-xy.d: New file.
* testsuite/gas/s12z/ext24-ld-xy.s: New file.
* testsuite/gas/s12z/inc-opr.d: New file.
* testsuite/gas/s12z/inc-opr.s: New file.
* testsuite/gas/s12z/inc.d: New file.
* testsuite/gas/s12z/inc.s: New file.
* testsuite/gas/s12z/inh.d: New file.
* testsuite/gas/s12z/inh.s: New file.
* testsuite/gas/s12z/jmp.d: New file.
* testsuite/gas/s12z/jmp.s: New file.
* testsuite/gas/s12z/jsr.d: New file.
* testsuite/gas/s12z/jsr.s: New file.
* testsuite/gas/s12z/ld-imm-page2.d: New file.
* testsuite/gas/s12z/ld-imm-page2.s: New file.
* testsuite/gas/s12z/ld-imm.d: New file.
* testsuite/gas/s12z/ld-imm.s: New file.
* testsuite/gas/s12z/ld-immu18.d: New file.
* testsuite/gas/s12z/ld-immu18.s: New file.
* testsuite/gas/s12z/ld-large-direct.d: New file.
* testsuite/gas/s12z/ld-large-direct.s: New file.
* testsuite/gas/s12z/ld-opr.d: New file.
* testsuite/gas/s12z/ld-opr.s: New file.
* testsuite/gas/s12z/ld-s-opr.d: New file.
* testsuite/gas/s12z/ld-s-opr.s: New file.
* testsuite/gas/s12z/ld-small-direct.d: New file.
* testsuite/gas/s12z/ld-small-direct.s: New file.
* testsuite/gas/s12z/lea-immu18.d: New file.
* testsuite/gas/s12z/lea-immu18.s: New file.
* testsuite/gas/s12z/lea.d: New file.
* testsuite/gas/s12z/lea.s: New file.
* testsuite/gas/s12z/mac.d: New file.
* testsuite/gas/s12z/mac.s: New file.
* testsuite/gas/s12z/min-max.d: New file.
* testsuite/gas/s12z/min-max.s: New file.
* testsuite/gas/s12z/mod.d: New file.
* testsuite/gas/s12z/mod.s: New file.
* testsuite/gas/s12z/mov.d: New file.
* testsuite/gas/s12z/mov.s: New file.
* testsuite/gas/s12z/mul-imm.d: New file.
* testsuite/gas/s12z/mul-imm.s: New file.
* testsuite/gas/s12z/mul-opr-opr.d: New file.
* testsuite/gas/s12z/mul-opr-opr.s: New file.
* testsuite/gas/s12z/mul-opr.d: New file.
* testsuite/gas/s12z/mul-opr.s: New file.
* testsuite/gas/s12z/mul-reg.d: New file.
* testsuite/gas/s12z/mul-reg.s: New file.
* testsuite/gas/s12z/mul.d: New file.
* testsuite/gas/s12z/mul.s: New file.
* testsuite/gas/s12z/neg-opr.d: New file.
* testsuite/gas/s12z/neg-opr.s: New file.
* testsuite/gas/s12z/not-so-simple-shifts.d: New file.
* testsuite/gas/s12z/not-so-simple-shifts.s: New file.
* testsuite/gas/s12z/opr-18u.d: New file.
* testsuite/gas/s12z/opr-18u.s: New file.
* testsuite/gas/s12z/opr-expr.d: New file.
* testsuite/gas/s12z/opr-expr.s: New file.
* testsuite/gas/s12z/opr-ext-18.d: New file.
* testsuite/gas/s12z/opr-ext-18.s: New file.
* testsuite/gas/s12z/opr-idx-24-reg.d: New file.
* testsuite/gas/s12z/opr-idx-24-reg.s: New file.
* testsuite/gas/s12z/opr-idx3-reg.d: New file.
* testsuite/gas/s12z/opr-idx3-reg.s: New file.
* testsuite/gas/s12z/opr-idx3-xysp-24.d: New file.
* testsuite/gas/s12z/opr-idx3-xysp-24.s: New file.
* testsuite/gas/s12z/opr-indirect-expr.d: New file.
* testsuite/gas/s12z/opr-indirect-expr.s: New file.
* testsuite/gas/s12z/opr-symbol.d: New file.
* testsuite/gas/s12z/opr-symbol.s: New file.
* testsuite/gas/s12z/or-imm.d: New file.
* testsuite/gas/s12z/or-imm.s: New file.
* testsuite/gas/s12z/or-opr.d: New file.
* testsuite/gas/s12z/or-opr.s: New file.
* testsuite/gas/s12z/p2-mul.d: New file.
* testsuite/gas/s12z/p2-mul.s: New file.
* testsuite/gas/s12z/page2-inh.d: New file.
* testsuite/gas/s12z/page2-inh.s: New file.
* testsuite/gas/s12z/psh-pul.d: New file.
* testsuite/gas/s12z/psh-pul.s: New file.
* testsuite/gas/s12z/qmul.d: New file.
* testsuite/gas/s12z/qmul.s: New file.
* testsuite/gas/s12z/rotate.d: New file.
* testsuite/gas/s12z/rotate.s: New file.
* testsuite/gas/s12z/s12z.exp: New file.
* testsuite/gas/s12z/sat.d: New file.
* testsuite/gas/s12z/sat.s: New file.
* testsuite/gas/s12z/sbc-imm.d: New file.
* testsuite/gas/s12z/sbc-imm.s: New file.
* testsuite/gas/s12z/sbc-opr.d: New file.
* testsuite/gas/s12z/sbc-opr.s: New file.
* testsuite/gas/s12z/shift.d: New file.
* testsuite/gas/s12z/shift.s: New file.
* testsuite/gas/s12z/simple-shift.d: New file.
* testsuite/gas/s12z/simple-shift.s: New file.
* testsuite/gas/s12z/single-ops.d: New file.
* testsuite/gas/s12z/single-ops.s: New file.
* testsuite/gas/s12z/specd6.d: New file.
* testsuite/gas/s12z/specd6.s: New file.
* testsuite/gas/s12z/st-large-direct.d: New file.
* testsuite/gas/s12z/st-large-direct.s: New file.
* testsuite/gas/s12z/st-opr.d: New file.
* testsuite/gas/s12z/st-opr.s: New file.
* testsuite/gas/s12z/st-s-opr.d: New file.
* testsuite/gas/s12z/st-s-opr.s: New file.
* testsuite/gas/s12z/st-small-direct.d: New file.
* testsuite/gas/s12z/st-small-direct.s: New file.
* testsuite/gas/s12z/st-xy.d: New file.
* testsuite/gas/s12z/st-xy.s: New file.
* testsuite/gas/s12z/sub-imm.d: New file.
* testsuite/gas/s12z/sub-imm.s: New file.
* testsuite/gas/s12z/sub-opr.d: New file.
* testsuite/gas/s12z/sub-opr.s: New file.
* testsuite/gas/s12z/tfr.d: New file.
* testsuite/gas/s12z/tfr.s: New file.
* testsuite/gas/s12z/trap.d: New file.
* testsuite/gas/s12z/trap.s: New file.
binutils* readelf.c: Add support for s12z architecture.
* testsuite/lib/binutils-common.exp (is_elf_format): Excluse s12z
targets.
Diffstat (limited to 'gas/doc')
-rw-r--r-- | gas/doc/Makefile.am | 1 | ||||
-rw-r--r-- | gas/doc/Makefile.in | 1 | ||||
-rw-r--r-- | gas/doc/all.texi | 1 | ||||
-rw-r--r-- | gas/doc/as.texinfo | 7 | ||||
-rw-r--r-- | gas/doc/c-s12z.texi | 212 |
5 files changed, 222 insertions, 0 deletions
diff --git a/gas/doc/Makefile.am b/gas/doc/Makefile.am index 8089358..c9c3405 100644 --- a/gas/doc/Makefile.am +++ b/gas/doc/Makefile.am @@ -65,6 +65,7 @@ CPU_DOCS = \ c-m32r.texi \ c-m68hc11.texi \ c-m68k.texi \ + c-s12z.texi \ c-metag.texi \ c-microblaze.texi \ c-mips.texi \ diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in index 643df61..a126e2f 100644 --- a/gas/doc/Makefile.in +++ b/gas/doc/Makefile.in @@ -340,6 +340,7 @@ CPU_DOCS = \ c-m32r.texi \ c-m68hc11.texi \ c-m68k.texi \ + c-s12z.texi \ c-metag.texi \ c-microblaze.texi \ c-mips.texi \ diff --git a/gas/doc/all.texi b/gas/doc/all.texi index 47d55df..2b8af69 100644 --- a/gas/doc/all.texi +++ b/gas/doc/all.texi @@ -46,6 +46,7 @@ @set M32R @set xc16x @set M68HC11 +@set S12Z @set M680X0 @set MCORE @set METAG diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo index 35616c8..b6b16b7 100644 --- a/gas/doc/as.texinfo +++ b/gas/doc/as.texinfo @@ -7565,6 +7565,9 @@ subject, see the hardware manufacturer's manual. @ifset M68HC11 * M68HC11-Dependent:: M68HC11 and 68HC12 Dependent Features @end ifset +@ifset S12Z +* S12Z-Dependent:: S12Z Dependent Features +@end ifset @ifset METAG * Meta-Dependent :: Meta Dependent Features @end ifset @@ -7776,6 +7779,10 @@ family. @include c-m68hc11.texi @end ifset +@ifset S12Z +@include c-s12z.texi +@end ifset + @ifset METAG @include c-metag.texi @end ifset diff --git a/gas/doc/c-s12z.texi b/gas/doc/c-s12z.texi new file mode 100644 index 0000000..9c8a97f --- /dev/null +++ b/gas/doc/c-s12z.texi @@ -0,0 +1,212 @@ +@c Copyright (C) 2018 Free Software Foundation, Inc. +@c This is part of the GAS manual. +@c For copying conditions, see the file as.texinfo. +@ifset GENERIC +@page +@node S12Z-Dependent +@chapter S12Z Dependent Features +@end ifset +@ifclear GENERIC +@node Machine Dependencies +@chapter S12Z Dependent Features +@end ifclear + +The Freescale S12Z version of @code{@value{AS}} has a few machine +dependent features. + +@cindex S12Z support +@menu +* S12Z-Opts:: S12Z Options +* S12Z-Syntax:: Syntax +* S12Z-Directives:: Assembler Directives +* S12Z-opcodes:: Opcodes +@end menu + +@node S12Z-Opts +@section S12Z Options + +@cindex options, S12Z +@cindex S12Z options + +@node S12Z-Syntax +@section Syntax + +@cindex S12Z syntax +@cindex syntax, S12Z + +In the S12Z syntax, the instruction name comes first and it may +be followed by one or by several operands. +In most cases the maximum number of operands is three. +Some instructions accept and (in certain situations require) a suffix +indicating the size of the operand. +The suffix is separated from the instruction name by a period (@samp{.}) +and may be one of @samp{b}, @samp{w}, @samp{p} or @samp{l} indicating +`byte' (a single byte), `word' (2 bytes), `pointer' (3 bytes) or `long' (4 bytes) +respectively. +Operands are separated by a comma (@samp{,}). +A comma however does not act as a separator if it appears within parentheses +(@samp{()}) or within square brackets (@samp{[]}). +@code{@value{AS}} will complain if too many, too few or inappropriate operands +are specified for a given instruction. +The MRI mode is not supported for this architecture. +Example: + +@smallexample + bset.b 0xA98, #5 + mov.b #6, 0x2409 + ld d0, #4 + mov.l (d0, x), 0x2409 + inc d0 + cmp d0, #12 + blt *-4 + lea x, 0x2409 + st y, (1, x) +@end smallexample + +@cindex line comment character, S12Z +@cindex S12Z line comment character +The presence of a @samp{;} character anywhere +on a line indicates the start of a comment that extends to the end of +that line. + +A @samp{*} or a @samp{#} character at the start of a line also +introduces a line comment, but these characters do not work elsewhere +on the line. If the first character of the line is a @samp{#} then as +well as starting a comment, the line could also be logical line number +directive (@pxref{Comments}) or a preprocessor control command +(@pxref{Preprocessing}). + +@cindex line separator, S12Z +@cindex statement separator, S12Z +@cindex S12Z line separator +The S12Z assembler does not currently support a line separator +character. + +@cindex S12Z addressing modes +@cindex addressing modes, S12Z +The following addressing modes are understood for the S12Z. +@table @dfn +@item Immediate +@samp{#@var{number}} + +@item Immediate Bit Field +@samp{#@var{width}:@var{offset}} + +Bit field instructions in the immediate mode require the width and offset to +be specified. +The @var{width} pararmeter specifies the number of bits in the field. +It should be a number in the range [1,32]. +@var{Offset} determines the position within the field where the operation +should start. +It should be a number in the range [0,31]. + +@item Relative +@samp{*@var{symbol}}, or @samp{*[+-]@var{digits}} + +Program counter relative addresses have a width of 15 bits. +Thus, they must be within the range [-32768, 32767]. + +@item Register +@samp{@var{reg}} + +Some instructions accept a register as an operand. +In general, @var{reg} may be a data register (@samp{D0}, @samp{D1} @dots{} +@samp{D7}), the @var{X} register or the @var{Y} register. + +A few instructions accept as an argument the stack pointer +register (@samp{S}), and/or the program counter (@samp{P}). + +Some very special instructions accept arguments which refer to the +condition code register. For these arguments the syntax is +@samp{CCR}, @samp{CCH} or @samp{CCL} which refer to the complete condition code register, the condition code register high byte and the condition code register low byte respectively. + +@item Absolute Direct +@samp{@var{symbol}}, or @samp{@var{digits}} + +@item Absolute Indirect +@samp{[@var{symbol}}, or @samp{@var{digits}]} + + +@item Constant Offset Indexed +@samp{(@var{number},@var{reg})} + +@var{Reg} may be either @samp{X}, @samp{Y}, @samp{S} or +@samp{P} or one of the data registers @samp{D0}, @samp{D1} @dots{} +@samp{D7}. +If any of the registers @samp{D2} @dots{} @samp{D5} are specified, then the +register value is treated as a signed value. +Otherwise it is treated as unsigned. +@var{Number} may be any integer in the range [-8388608,8388607]. + +@item Offset Indexed Indirect +@samp{[@var{number},@var{reg}]} + +@var{Reg} may be either @samp{X}, @samp{Y}, @samp{S} or +@samp{P}. +@var{Number} may be any integer in the range [-8388608,8388607]. + +@item Auto Pre-Increment/Pre-Decrement/Post-Increment/Post-Decrement +@samp{-@var{reg}}, +@samp{+@var{reg}}, +@samp{@var{reg}-} or +@samp{@var{reg}+} + +This addressing mode is typically used to access a value at an address, +and simultaneously to increment/decrement the register pointing to that +address. +Thus @var{reg} may be any of the 24 bit registers @samp{X}, @samp{Y}, or +@samp{S}. +Pre-increment and post-decrement are not available for +register @samp{S} (only post-increment and pre-decrement are available). + +@item Register Offset Direct +@samp{(@var{data-reg},@var{reg})} + +@var{Reg} can be either @samp{X}, @samp{Y}, or @samp{S}. +@var{Data-reg} +must be one of the data registers @samp{D0}, @samp{D1} @dots{} @samp{D7}. +If any of the registers @samp{D2} @dots{} @samp{D5} are specified, then +the register value is treated as a signed value. +Otherwise it is treated as unsigned. + +@item Register Offset Indirect +@samp{[@var{data-reg},@var{reg}]} + +@var{Reg} can be either @samp{X} or @samp{Y}. +@var{Data-reg} +must be one of the data registers @samp{D0}, @samp{D1} @dots{} @samp{D7}. +If any of the registers @samp{D2} @dots{} @samp{D5} are specified, then +the register value is treated as a signed value. +Otherwise it is treated as unsigned. + + +@end table + +For example: + +@smallexample + trap #197 + bra *+49 + bra .L0 + jmp 0xFE0034 + jmp [0xFD0012] + inc.b (4,x) + dec.w [4,y] + clr.p (-s) + neg.l (d0, s) + com.b [d1, x] + jsr (45, d0) + psh cch +@end smallexample + +@node S12Z-Directives +@section Assembler Directives + +@cindex assembler directives, S12Z + +@node S12Z-opcodes +@section Opcodes + +@cindex S12Z opcodes +@cindex opcodes, S12Z +@cindex instruction set, S12Z |