78K/0S REGISTER SET
The following is a list of the 78K/0S registers used by AS78K0S:
x(r0), a(r1), 8-bit registers
c(r2), b(r3),
e(r4), d(r5),
l(r6), h(r7)
ax(rp0), 16-bit registers
bc(rp1),
de(rp2),
hl(rp3)
sp Stack pointer
psw Program status word
cy Carry flag
Register names are NOT case sensitive.
78K/0S INSTRUCTION SET
The following tables list all 78K/0S mnemonics recognized by
the AS78K0S assembler. The designation [] refers to a required
addressing mode argument. The first list specifies the format
for each addressing mode supported by AS78K0S:
addr16 direct addressing
via 16-bit address
!addr16 immediate addressing
only required for the
long br instruction
@saddr short direct addressing
0xFE20 <= saddr <= 0xFF1F
@saddr.bit short direct addressing
@saddr,bit with bit addressing (0-7)
0xFE20 <= saddr <= 0xFF1F
*sfr special function registers
0xFF00 <= sfr <= 0xFFCF or
0xFFE0 <= sfr <= 0xFFFF
*sfr.bit special function registers
*sfr,bit wiht bit addressing (0-7)
0xFF00 <= sfr <= 0xFFCF or
0xFFE0 <= sfr <= 0xFFFF
label branch label
(pc relative addressing)
#byte immediate data (8 bit)
#word immediate data (16 bit)
rn registers (8 bit)
x, a, c, b, e, d, l, h
r0-r7
rpn registers (16 bit)
ax, bc, de, hl
rp0-rp3
sp stack pointer
psw program status register
cy carry flag
[DE], [HL] register indirect addressing
[HL+byte] based register indirect addressing
The terms addr16, saddr, sfr, bit, label, byte, and word may all
be expressions.
Absolute addresses (CONSTANTS) will be checked as being in
the 'saddr' range first and then as being in the 'sfr' range if
no explicit @ or * is specified.
The bit addressing modes *sfr.bit and @saddr.bit use the '.'
as a separator from the address and the bit value. The bit
value can be a numeric constant, a named constant, an expres-
sion, or a combination of these. Because the '.' is also a
legal character in a name or label the assembler may not be able
to resolve the address and bit value. The optional method of
using a ',' to separate the address and bit value may be used in
this case.
If the 'sfr' or 'saddr' address is external then the user is
responsible to ensure the addresses are in the proper ranges.
NO ERRORS will be reported by the linker.
Note that not all addressing modes are valid with every in-
struction, refer to the 78K/0S technical data for valid modes.
Inherent Instructions
nop halt stop
ret reti
di ei
Branch Instructions
bc label bnc label
bz label bnz label
br [] dbnz [],addr16
bt [],addr16 bf [],addr16
Single Operand Instructions
inc [] dec []
incw rpn dec rpn
set1 [] clr1 []
set1 cy clr1 cy
not1 cy
call addr16 callt []
push [] pop []
Double Operand Instructions
movw sp,ax movw ax,sp
movw [],[] xchw ax,rpn
add a,[] add saddr,#byte
addc a,[] addc saddr,#byte
sub a,[] sub saddr,#byte
subc a,[] subc saddr,#byte
and a,[] and saddr,#byte
or a,[] or saddr,#byte
xor a,[] xor saddr,#byte
cmp a,[] cmp saddr,#byte
adddw ax,#word subw ax,#word
cmpw ax,#word
ror a,1 rol a,1
rorc a,1 rolc a,1
... Exit the ASxxxx Documentation