Intel MCS48 User Manual page 85

Family of single chip microcomputers
Hide thumbs Also See for MCS48:
Table of Contents

Advertisement

INSTRUCTION SET
2K words
of
program memory.
Jumps
to
the
second
2K
of
memory
(4K
words
are
directly
addressible) are
made
by
first
executing a
select
memory
bank
instruction
then execu-
ting
the
jump
instruction.
The 2K
boundary
can
only
be crossed
via
a
jump
or
subroutine
call
instruction
i.e.
the
bank
switch
does
not
occur
until
a
jump
is
executed.
Once
a
memory
bank
has
been
selected
all
subse-
quent
jumps
will
be
to
the selected
bank
until
another
select
memory
bank
instruction
is
executed.
A
subroutine
in
the opposite
bank
can be accessed by
a
select
memory
bank
instruction
followed
by a
call
instruction.
Upon
completion
of
the subroutine
execu-
tion
will
automatically
return to
the
original
bank; however, unless the
original
bank
is
reselected,
the next
jump
instruction
en-
countered
will
again
transfer
execution
to
the
opposite bank.
Conditional
jumps
can
test
the following
inputs
and machine
status:
TO
Input pin
JJ_
Input pin
INT
Input pin
Accumulator Zero
Any
bit
of
Accumulator
Carry
Flag
FO
Flag
F1 Flag
Conditional
jumps
allow a
branch
to
any
address
within
the current
page
(256
words)
of
execution.
The
conditions tested are the
instantaneous values
at
the time the condi-
tional
jump
is
executed. For
instance,
the
jump on
accumulator
zero
instruction tests
the
accumulator
itself
not
an
intermediate
zero
flag.
The
decrement
register
and
jump
if
not zero
instruction
combines
a
decrement and
a
branch
instruction to
create
an
instruction
very
useful
in
implementing
a loop counter.
This
instruction
can
designate
any one
of
the 8
working
registers
as a
counter
and can
effect
a
branch
to
any
address
within the
current
page
of
execution.
A
single
byte
indirect
jump
instruction
allows
the
program
to
be
vectored
to
any one
of
several
different
locations
based on
the
contents
of
the accumulator.
The
contents
of
the
accumulator
points
to
a
location
in
program
memory
which
contains the
jump
address.
The
8-bit
jump
address
refers to
the
current
page
of
execution. This
instruction
could
be
used,
for
instance, to
vector
to
any
one
of several
routines
based on an ASCII
character
which has been
loaded
in
the
accumulator.
In
this
way
ASCII key
inputs
can be used
to
initiate
various
routines.
Subroutines
Subroutines
are entered
by executing
a
call
instruction.
Calls
can be
made
like
uncondi-
tional
jumps
to
any
address
in
a
2K word
bank and jumps
across the
2K boundary
are
executed
in
the
same
manner.
Two
separate
return instructions
determine whether
or not
status
(upper
4-bits
of
PSW)
is
restored
upon
return
from
the subroutine.
The
return
and
restore status instruction also
signals
the
end
of
an
interrupt
service routine
if
one
has
been
in
progress.
Timer
Instructions
The
8-bit
on
board
timer/counter
can be
loaded
or read
via
the
accumulator
while the
counter
is
stopped
or while counting.
The
counter can be
started
as a timer with
an
internal
clock
source
or as
an
event counter
or timer with
an
external
clock applied
to
the
T1
input
pin.
The
instruction
executed
determines which
clock
source
is
used.
A
single instruction
stops the counter
whether
it
is
operating with
an
internal
or
an
external
clock source.
In
addition,
two
instructions
allow the timer
interrupt to
be enabled
or
disabled.
Control
Instructions
Two
instructions
allow the external
interrupt
source
to
be enabled
or disabled.
Interrupts
are
initially
disabled
and
are automatically
disabled while
an
interrupt
service routine
is
in
progress
and
re-enabled
afterward.
There
are four
memory
bank
select instruc-
tions,
two
to
designate the
active
working
register
bank and two
to control
program
4-3

Advertisement

Table of Contents
loading

Table of Contents