S12Z (doc): Minor improvements to text and formatting.

gas/
	* doc/c-s12z.texi: Miscellaneous adjustments.
This commit is contained in:
John Darrington 2019-05-18 08:25:18 +02:00
parent 1c8ce0ebbe
commit 3e2cf42fe5
1 changed files with 47 additions and 53 deletions

View File

@ -16,55 +16,63 @@ dependent features.
@cindex S12Z support
@menu
* S12Z-Opts:: S12Z Options
* S12Z-Syntax:: Syntax
* S12Z-Directives:: Assembler Directives
* S12Z-Opcodes:: Opcodes
* S12Z Options:: S12Z Options
* S12Z Syntax:: Syntax
@end menu
@node S12Z-Opts
@node S12Z Options
@section S12Z Options
@cindex options, S12Z
@cindex S12Z options
The S12Z version of @code{@value{AS}} has the following options:
The S12Z version of @code{@value{AS}} recognizes the following options:
@table @samp
@item -mreg-prefix=@var{prefix}
@cindex @samp{-mreg-prefix=@var{prefix}} option, reg-prefix
You can use the @samp{-mreg-prefix=@var{pfx}} option to indicate
that the assembler expects each register name to be prefixed with the
that the assembler should expect all register names to be prefixed with the
string @var{pfx}.
For an explanation of what this means and why it might be needed,
see @ref{Register Notation}.
see @ref{S12Z Register Notation}.
@end table
@node S12Z-Syntax
@node S12Z Syntax
@section Syntax
@menu
* Register Notation:: How to refer to registers
* S12Z Syntax Overview:: General description
* S12Z Addressing Modes:: Operands and their semantics
* S12Z Register Notation:: How to refer to registers
@end menu
@cindex S12Z syntax
@cindex syntax, S12Z
@node S12Z Syntax Overview
@subsection Overview
In the S12Z syntax, the instruction name comes first and it may
be followed by one or by several operands.
be followed by one, or by several operands.
In most cases the maximum number of operands is three.
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.
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
@ -80,7 +88,6 @@ Example:
@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.
@ -98,8 +105,12 @@ directive (@pxref{Comments}) or a preprocessor control command
The S12Z assembler does not currently support a line separator
character.
@node S12Z Addressing Modes
@subsection Addressing Modes
@cindex S12Z addressing modes
@cindex addressing modes, S12Z
The following addressing modes are understood for the S12Z.
@table @dfn
@item Immediate
@ -110,7 +121,7 @@ The following addressing modes are understood for the S12Z.
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.
The @var{width} parameter 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.
@ -204,25 +215,25 @@ Otherwise it is treated as unsigned.
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
trap #197 ;; Immediate mode
bra *+49 ;; Relative mode
bra .L0 ;; ditto
jmp 0xFE0034 ;; Absolute direct mode
jmp [0xFD0012] ;; Absolute indirect mode
inc.b (4,x) ;; Constant offset indexed mode
jsr (45, d0) ;; ditto
dec.w [4,y] ;; Constant offset indexed indirect mode
clr.p (-s) ;; Pre-decrement mode
neg.l (d0, s) ;; Register offset direct mode
com.b [d1, x] ;; Register offset indirect mode
psh cch ;; Register mode
@end smallexample
@node Register Notation
@node S12Z Register Notation
@subsection Register Notation
@cindex register notation, S12Z
Without a register prefix (@pxref{S12Z-Opts}), S12Z assembler code is expected in the traditional
Without a register prefix (@pxref{S12Z Options}), S12Z assembler code is expected in the traditional
format like this:
@smallexample
lea s, (-2,s)
@ -250,13 +261,9 @@ Consider the following assembler instruction:
st d0, d1
@end smallexample
@noindent
This instruction is most likely to
mean ``Store the value in the register D0 into the register D1'' and that is the
default way in which @code{@value{AS}} interprets it.
However it could also be intended to mean
``Store the value in the register D0 into the memory referenced by the symbol
named @samp{d1}''.
If that is what is intended then @code{@value{AS}} must be invoked with
The destination operand of this instruction could either refer to the register
@samp{D1}, or it could refer to the symbol named ``d1''.
If the latter is intended then @code{@value{AS}} must be invoked with
@samp{-mreg-prefix=@var{pfx}} and the code written as
@smallexample
st @var{pfx}d0, d1
@ -265,16 +272,3 @@ st @var{pfx}d0, d1
where @var{pfx} is the chosen register prefix.
For this reason, compiler back-ends should choose a register prefix which
cannot be confused with a symbol name.
@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