Intel mcs-48 Microscope & Magnifier User Manual


 
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
T1
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
anyone
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
anyone
of
4-3
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