English
Language : 

GMS81C50 Datasheet, PDF (24/99 Pages) Hynix Semiconductor – 8-BIT SINGLE CHIP MICROCONTROLLERS
HYUNDAI
GMS81C50 Series
8. MEMORY ORGANIZATION
The GMS81C50 Series has separate address spaces for
Program memory, Data Memory and Display memory.
Program memory can only be read, not written to. It can be
up to 32K bytes of Program memory. Data memory can be
read and written to up to 448 bytes including the stack area.
8.1 Registers
This device has six registers that are the Program Counter
(PC), an Accumulator (A), two index registers (X, Y), the
Stack Pointer (SP), and the Program Status Word (PSW).
The Program Counter consists of 16-bit register.
PCH
A
X
Y
SP
PCL
PSW
ACCUMULATOR
X REGISTER
Y REGISTER
STACK POINTER
PROGRAM COUNTER
PROGRAM STATUS
WORD
Figure 8-1 Configuration of Registers
Accumulator:
The Accumulator is the 8-bit general purpose register, used
for data operation such as transfer, temporary saving, and
conditional judgement, etc. The Accumulator can be used
as a 16-bit register with Y Register as shown below.
In the case of multiplication instruction, execute as a mul-
tiplier register. After multiplication operation, the lower 8-
bit of the result enters. (Y*A => YA). In the case of divi-
sion instruction, execute as the lower 8-bit of dividend. Af-
ter division operation, quotient enters.
Y
Y
A
A
Two 8-bit Registers can be used as a "YA" 16-bit Register
Figure 8-2 Configuration of YA 16-bit Register
X, Y Registers:
In the addressing mode which uses these index registers,
the register contents are added to the specified address,
which becomes the actual address. These modes are ex-
tremely effective for referencing subroutine tables and
memory tables. The index registers also have increment,
decrement, comparison and data transfer functions, and
they can be used as simple accumulators.
* X Register : In the case of division instruction, execute
as register.
* Y Register : In the case of 16-bit operation instruction,
execute as the upper 8-bit of YA. (16-bit accumulator). In
the case of multiplication instruction, execute as a multipli-
cand register. After multiplication operation, the upper 8-
bit of the result enters. In the case of division instruction,
execute as the upper 8-bit of dividend. After division oper-
ation, remains enters. Y register can be used as loop
counter of conditional branch command. (e.g.DBNE Y,
rel)
Stack Pointer:
The Stack Pointer is an 8-bit register used for occurrence
interrupts, calling out subroutines and PUSH, POP, RETI,
RET instruction. Stack Pointer identifies the location in the
stack to be accessed (save or restore).
Generally, SP is automatically updated when a subroutine
call is executed or an interrupt is accepted. However, if it
is used in excess of the stack area permitted by the data
memory allocating configuration, the user-processed data
may be lost. The SP is post-decremented when a subrou-
tine call or a push instruction is executed, or when an inter-
rupt is accepted. The SP is pre-incremented when a return
or a pop instruction is executed.
The stack can be located at any position within 100H to
1FFH of the internal data memory. The SP is not initialized
by hardware, requiring to write the initial value (the loca-
tion with which the use of the stack starts) by using the ini-
tialization routine. Normally, the initial value of "FFH" is
21