2365 lines
125 KiB
Plaintext
2365 lines
125 KiB
Plaintext
╔═════════════╗
|
||
║C O M P L E X║
|
||
╚═════════════╝
|
||
|
||
Programm for emulations of the computing system's functioning
|
||
════════════════════════════════════════════════════════════
|
||
built on base microprogramming sectioned kit of
|
||
═════════════════════════════════════════════════
|
||
series KM1804
|
||
═══════════════
|
||
|
||
╔════════════════════════════════════╗
|
||
║ Structure of microinstruction. ║
|
||
╚════════════════════════════════════╝
|
||
|
||
Memory of the microinstructions of the designed system contains
|
||
separate microinstructions, each divided on fields:
|
||
|
||
1. Field of constants:
|
||
address MCU (microprogramming control unit);
|
||
constant ALU (arithmetical and logical unit);
|
||
2. Field of the ALU :
|
||
chip KM1804 BC1;
|
||
chip KM1804 BP2;
|
||
registers of the address operands RAA,RAB;
|
||
3. Field of the MCU (microprogramming control unit):
|
||
chip KM1804 BY4;
|
||
conditions multiplexer;
|
||
4. Field of the PIU (priority interruption unit);
|
||
chip KM1084 BH1;
|
||
5. Field of the control signals:
|
||
MM - main memory;
|
||
IOD - input / output device;
|
||
RA - register of address.
|
||
|
||
┌───────────────────╖
|
||
│ 1.CONSTANT FIELD. ║
|
||
╘═══════════════════╝
|
||
Includes:
|
||
D - constant;
|
||
OED - allow issue of the constant.
|
||
|
||
|
||
┌─────────╖
|
||
│ Field D ║ CONSTANT.
|
||
╘═════════╝ ────────┘
|
||
Purpose.
|
||
1) Lowest 12 digits are used to shape the addresses
|
||
transition worked out from MCU. The given digits
|
||
constantly enter on bus of the branching address if in
|
||
result of performing the command in MCU (chip BY4) is
|
||
formed a signal PE=0;
|
||
2) All 16 digits can be used to assign the constants,
|
||
which under signal OED=0 control can be issued on
|
||
system data bus. This particularity allows:
|
||
|
||
- first, reduce digits of ROM MI(the microinstructions)
|
||
to account of the joining by flap;
|
||
- secondly, enables to load the necessary constants,
|
||
masks etc. in any device, connected to system data bus.
|
||
|
||
The note. Values are entered in hex code.
|
||
After entering the new command zero constant became assign.
|
||
|
||
┌────────╖
|
||
│ OED ║ ALLOW THE ISSUE OF THE CONSTANT ON ADDRESS BUS.
|
||
╘════════╝ ─────────────────────────────────────────────────────┘
|
||
Purpose.
|
||
The Permit of the issue all sixteen digits of the
|
||
field D on system data bus. Setting of given signal in
|
||
zero condition forms on system data bus condition of
|
||
constants of the field D. .
|
||
Level : 0 - Active (the issue resolved);
|
||
1 - Passive (the issue prohibited).
|
||
The note.
|
||
Values are entered in binary code(value 0 or 1).
|
||
After entering the new command issue constants from
|
||
MIM on data bus is prohibited.
|
||
|
||
|
||
|
||
|
||
|
||
┌─────────────────────────────────────────────╖
|
||
│ 2.Field ALU (data processing unit). ║
|
||
╘═════════════════════════════════════════════╝
|
||
|
||
The data processing unit (hereinafter ALU) of proposed systems
|
||
is built with use of the following functioning junctions:
|
||
|
||
1) 4 microprocessor sections KM1804BC1, which form the
|
||
16-bit based ALU.
|
||
2) Condition control and shift Scheme KM1804BP2, which is ÀσѼá π»αáó½Ñ¡¿∩ ß«ßΓ«∩¡¿Ñ¼ ¿ ßñó¿úἿ èÔ1804éÉ2, ¬«Γ«αá∩
|
||
intended to joint work with processor element BC1 and
|
||
provides closing of data around microprocessor section.
|
||
Given microcircuit provides the functions of the
|
||
register of the conditions and forming of the signal of
|
||
the carrying, mix of the sources of the input carry
|
||
signal ALU, organizes 32 types of shift (arithmetical,
|
||
logical, round-robin), which can be usual or double-
|
||
length, contains two 4-bit register of the condition,
|
||
executes 16 operations on forming the signal of the
|
||
condition.
|
||
3) Microcircuit of the framing:
|
||
4-bit registers of operands (RAA,RAB);
|
||
The Multiplexers of select of the source operand, which
|
||
allows to address the registers participating in operations
|
||
ALU or from MIM, or on the address, keeping in RAA and RAB.
|
||
|
||
To manage afore-mentioned device, each command in MIM contains
|
||
the following fields.
|
||
|
||
Includes:
|
||
Microcircuit KM1804BC1:
|
||
BC1_MI² - operation in BC1;
|
||
A,B - number of ALU registers;
|
||
OEY - acception for issues of result from ALU;
|
||
|
||
Microcircuit KM1804BP2:
|
||
BP2_MI² - operation in BP2;
|
||
E.ZNCV - permit of per-bit marks writing in RM;
|
||
OECT - permit an issue of the code term;
|
||
CEM - permit writing the marks in RM;
|
||
CEN - permit writing the marks in RN;
|
||
SE - permit of the shift performing;
|
||
|
||
Microcircuits of the framing:
|
||
MSA - source of operand in ALU (MIM or RA);
|
||
MSB - source of operand in ALU (MIM or RB);
|
||
EWA - writing in operand registers RA;
|
||
EWB - writing in operand registers RB.
|
||
|
||
|
||
|
||
┌────────╖
|
||
│ BC1_MI²║ THE MICROINSTRUCTION FIELD OF THE MICROCIRCUIT BC1.
|
||
╘════════╝ ──────────────────────────────────────────────────┘
|
||
Purpose.
|
||
Assign the operation executed in ALU. Given field contains
|
||
several sections (the flap), each defines the nature
|
||
of executed operations.
|
||
1) Field of the result receiver in ALU;
|
||
2) Field of operation in ALU;
|
||
3) Field of operation in ALU.
|
||
The note.
|
||
Values are entered in binary code, that indicated by the
|
||
symbol '²'on the top of field identifier (IM²).
|
||
|
||
|
||
┌───────────╖
|
||
│BC1_MI².876║ THE RECEIVER OF THE OPERATION RESULT IN ALU.
|
||
╘═══════════╝ ───────────────────────────────────────────┘
|
||
Purpose.
|
||
Field of the result receiver in ALU (bits 8,7,6).
|
||
Defines where fits result of the operations.
|
||
┌───┬───────────────────────────────────────────────────┐
|
||
│MI │ │
|
||
│876│ where will get the result of operation processing │
|
||
├───┼───────────────────────────────────────────────────┤
|
||
│000│ F -> Q │
|
||
│001│ result of operations in ALU does not place in │
|
||
│ │ any internal registers and is used only for │
|
||
│ │ indirect effect, for instance restore all │
|
||
│ │ operation flags, or output the result of │
|
||
│ │ operation on the data bus. │ │
|
||
│010│ F -> B and result does not output on bus, │
|
||
│ │ but value of the register - an operand A │
|
||
│011│ F -> B │
|
||
│100│ F/2 -> B, Q/2 -> Q │
|
||
│101│ F/2 -> B │
|
||
│110│ 2F -> B, 2Q -> Q │
|
||
│111│ 2F -> B │
|
||
└───┴───────────────────────────────────────────────────┘
|
||
The note.
|
||
Values are entered in binary code, that indicated by the
|
||
symbol '²'on the top of field identifier (IM²).
|
||
When entered a new command the code 001 became assigned.
|
||
|
||
|
||
┌───────────╖
|
||
│BC1_MI².543║ OPERATIONS IN ALU.
|
||
╘═══════════╝ ─────────────────┘
|
||
Purpose.
|
||
The field of operations in ALU (bits 5,4,3). Defines
|
||
nature of the transformation on chosen operand.
|
||
┌───┬──────┬───────────────┐
|
||
│MI │mnemo-│ operation │
|
||
│543│ nics │ in ALU │
|
||
├───┼──────┼───────────────┤
|
||
│000│ ADD │ R+S+CI │
|
||
│001│ SUB │ S-R-1+CI │
|
||
│010│ SUB │ R-S-1+CI │
|
||
│011│ OR │ R or S │
|
||
│100│ AND │ R and S │
|
||
│101│ NAND │ not(R) and S│
|
||
│110│ XOR │ R xor S │
|
||
│111│ NXOR │ not(R xor S)│
|
||
└───┴──────┴───────────────┘
|
||
The note.
|
||
Values are entered in binary code, that indicated by the
|
||
symbol '²'on the top of field identifier (IM²).
|
||
When entered a new command the code 000 became assigned.
|
||
|
||
|
||
┌───────────╖
|
||
│BC1_MI².210║ FIELD OF THE OPERATION OPERANDS IN ALU.
|
||
╘═══════════╝ ──────────────────────────────────────┘
|
||
Purpose.
|
||
The field of operations in ALU (bits 2,1,0). Defines
|
||
operands, which participate in operations performing.
|
||
┌───┬───────────┬──────┐
|
||
│MI │ │ │
|
||
│210│ mnemonics │R S│
|
||
├───┼───────────┼──────┤
|
||
│000│ Rx , RQ ; │A Q│
|
||
│001│ Rx , Rx ; │A B│
|
||
│010│ Z , RQ ; │Z Q│
|
||
│011│ Z , Rx ; │Z B│
|
||
│100│ Z , Rx ; │Z A│
|
||
│101│ Val, Rx ; │D A│
|
||
│110│ Val, RQ ; │D Q│
|
||
│111│ Val, Z ; │D Z│
|
||
└───┴───────────┴──────┘
|
||
The note.
|
||
Values are entered in binary code, that indicated by the
|
||
symbol '²'on the top of field identifier (IM²).
|
||
When entered a new command the code 000 became assigned.
|
||
|
||
|
||
┌────────╖
|
||
│ A, B ║ NUMBERS OF REGISTERS IN ALU, WHICH ARE USED IN OPERATION.
|
||
╘════════╝ ────────────────────────────────────────────────────────┘
|
||
Purpose.
|
||
Fields define numbers of registers in ALU, which are
|
||
used in performing an operation. Values from this field
|
||
are accordingly output on entrances A and B of the chip
|
||
BC1. The switching condition of these flap to microcircuit
|
||
BC1 are signals on the operands source select multiplexors
|
||
MSA=0 and MSB=0.
|
||
The note.
|
||
Values are entered in hexadecimal code.
|
||
When entered a new command then assigned zero GPRs
|
||
(general-purpose registers).
|
||
|
||
┌────────╖
|
||
│ OEY ║ PERMIT FOR THE RESULT OUTPUT.
|
||
╘════════╝ ────────────────────────────┘
|
||
Purpose.
|
||
Permit for output of the result from ALU (BC1) on
|
||
system data bus.
|
||
Level : 0 - Active (output permit)
|
||
1 - Passive (output prohibited).
|
||
The note.
|
||
Values are entered in binary code.
|
||
While entering a new command the outputing of the
|
||
operations result in ALU is prohibited.
|
||
|
||
|
||
┌─────────╖
|
||
│ BP2_MI² ║ FIELD OF THE MICROINSTRUCTION IN THE BP2 CHIP.
|
||
╘═════════╝ ─────────────────────────────────────────────┘
|
||
Purpose.
|
||
It will assign microinstruction which is executed in
|
||
device of condition and shift management KM1804BP2,
|
||
which provides a data closing around microprocessor
|
||
section (KM1804BC1). This field contains several
|
||
sections:
|
||
1) The management field of the signal carrying CI;
|
||
2) The control field of the shift performing;
|
||
3) Field which controls the output of the code
|
||
condition and loading of the register marks.
|
||
The note.
|
||
Values are entered in binary code, that indicated by the
|
||
symbol '²'on the top of field identifier (IM²).
|
||
|
||
|
||
┌──────────╖
|
||
│BP2_MI².CB║ THE MANAGEMENT OF CI SIGNAL.
|
||
╘══════════╝ ───────────────────────────┘
|
||
Purpose.
|
||
Field that controls signal of carrying CI (bits 12,11).
|
||
Values of this field allows to commute the different
|
||
signals on entry Si of ALU sections.
|
||
┌──┬──────┬───────────────────────────────────────────────────────┐
|
||
│MI│mnemo-│ │
|
||
│CB│ nics │ shift, that entered in ALU entry │
|
||
├──┼──────┼───────────────────────────────────────────────────────┤
|
||
│00│ Z │ 0 │
|
||
│01│not Z │ 1 │
|
||
│10│ │ is not used │
|
||
│11│ RM_C │signal of carrying is assigned as output of À registers│
|
||
│ │ RN_C │on the marks RM and RN in the following order: │
|
||
│ │not │under MI.5 = 1 with RM.C, otherwise with RN.C; │
|
||
│ │ RM_C│under MI.321 = 100 signals transforms by inversion │
|
||
│ │ RN_C│under any other combinations - without it │
|
||
└──┴──────┴───────────────────────────────────────────────────────┘
|
||
The note.
|
||
Values are entered in binary code, that indicated by the
|
||
symbol '²'on the top of field identifier (IM²).
|
||
When entered a new command the code 00 became assigned.
|
||
|
||
|
||
┌───────────╖
|
||
│BP2_MI².A-6║ FIELD OF SHIFT CONTROL.
|
||
╘═══════════╝ ──────────────────────┘
|
||
Purpose.
|
||
Field that controlling the shift performing (bits 10-6).
|
||
┌─────┬────┬───────────────┬───────────────────────────────────────────┐
|
||
│ │ │ │ forming the shift signals for the ALU │
|
||
│ MI │ │ │ registers (with signal SE = 0 ) │
|
||
│A9876│dec.│ mnemonics ├──────────────┬──────────┬─────────────────┤
|
||
│ │ │ │ on register │ on reg. │ load of C flag │
|
||
│ │ │ │ receiv. resu.│ RQ │ in reg. mark RM │
|
||
├─────┴────┴───────────────┴──────────────┴──────────┴─────────────────┤
|
||
│ R I G H T S H I F T S │
|
||
├─────┬────┬───────────────┬──────────────┬──────────┬─────────────────┤
|
||
│00000│ 00 │ SR.0 │SRB:=0 │SRQ:=0 │ no │
|
||
│00001│ 01 │ SR.1 │SRB:=1 │SRQ:=1 │ no │
|
||
│00010│ 02 │ SRL (SR.2) │SRB:=0 │SRQ:=RM.N │ RM.C:=SRB │
|
||
│00011│ 03 │ SR.3 │SRB:=1 │SRQ:=SRB │ no │
|
||
│00100│ 04 │ SR.4 │SRB:=RM.C │SRQ:=SRB │ no │
|
||
│00101│ 05 │ SR.5 │SRB:=RM.N │SRQ:=SRB │ no │
|
||
│00110│ 06 │ SR.6 │SRB:=0 │SRQ:=SRB │ no │
|
||
│00111│ 07 │ SRWL (SR.7) │SRB:=0 │SRQ:=SRB │ RM.C:=SRQ │
|
||
│01000│ 08 │ SR.8 │SRB:=SRB │SRQ:=SRQ │ RM.C:=SRB │
|
||
│01001│ 09 │ SR.9 │SRB:=RM.C │SRQ:=SRQ │ RM.C:=SRB │
|
||
│01010│ 10 │ SR.10 │SRB:=SRB │SRQ:=SRQ │ no │
|
||
│01011│ 11 │ SR.11 │SRB:=CO │SRQ:=SRB │ no │
|
||
│01100│ 12 │ SR.12 │SRB:=RM.C │SRQ:=SRB │ RM.C:=SRQ │
|
||
│01101│ 13 │ SR.13 │SRB:=SRQ │SRQ:=SRB │ RM.C:=SRQ │
|
||
│01110│ 14 │SRA SRWA(SR.14)│SRB:=NO xor VO│SRQ:=SRB │ no │
|
||
│01111│ 15 │ SR.15 │SRB:=SRQ │SRQ:=SRB │ no │
|
||
├─────┴────┴───────────────┴──────────────┴──────────┴─────────────────┤
|
||
│ L E F T S H I F T S │
|
||
├─────┬────┬───────────────┬──────────────┬──────────┬─────────────────┤
|
||
│10000│ 16 │ SLL (SL.16) │SLB:=0 │SLQ:=0 │ RM.C:=SLB │
|
||
│10001│ 17 │ SL.17 │SLB:=1 │SLQ:=1 │ RM.C:=SLB │
|
||
│10010│ 18 │ SLA (SL.18) │SLB:=0 │SLQ:=0 │ no │
|
||
│10011│ 19 │ SL.19 │SLB:=1 │SLQ:=1 │ no │
|
||
│10100│ 20 │ SLWL (SL.20) │SLB:=SLQ │SLQ:=0 │ RM.C:=SLB │
|
||
│10101│ 21 │ SL.21 │SLB:=SLQ │SLQ:=1 │ RM.C:=SLB │
|
||
│10110│ 22 │ SLWA (SL.22) │SLB:=SLQ │SLQ:=0 │ no │
|
||
│10111│ 23 │ SL.23 │SLB:=SLQ │SLQ:=1 │ no │
|
||
│11000│ 24 │ SL.24 │SLB:=SLB │SLQ:=SLQ │ RM.C:=SLB │
|
||
│ │ │ │ │ │ │
|
||
│11001│ 25 │ SL.25 │SLB:=RM.C │SLQ:=SLB │ RM.C:=SLB │
|
||
│11010│ 26 │ SL.26 │SLB:=SLB │SLQ:=SLB │ no │
|
||
│11011│ 27 │ SL.27 │SLB:=RM.C │SLQ:=0 │ no │
|
||
│11100│ 28 │ SL.28 │SLB:=SLQ │SLQ:=RM.C │ RM.C:=SLB │
|
||
│11101│ 29 │ SL.29 │SLB:=SLQ │SLQ:=SLB │ RM.C:=SLB │
|
||
│11110│ 30 │ SL.30 │SLB:=SLQ │SLQ:=RM.C │ no │
|
||
│11111│ 31 │ SL.31 │SLB:=SLQ │SLQ:=SLB │ no │
|
||
└─────┴────┴───────────────┴──────────────┴──────────┴─────────────────┘
|
||
The note.
|
||
Values are entered in binary code, that indicated by the
|
||
symbol '²'on the top of field identifier (IM²).
|
||
When entered a new command the code 00000 became assigned.
|
||
|
||
|
||
┌───────────╖
|
||
│BP2_MI².5-0║ CONDITION CT OR LOADING REGISTER OF MARKS.
|
||
╘═══════════╝ ─────────────────────────────────────────┘
|
||
Purpose.
|
||
The field that controls the leaving of condition code and
|
||
boot of register marks (bits 5-0).The contents of the given
|
||
field can be interpretated in a different type:
|
||
1) forming the signal of the logical condition
|
||
(at signal OECT=0);
|
||
2) operations of the loading register marks.
|
||
(at signal OECT=1);
|
||
┌──────┬───┬──────┬────────────────────────────────────────┐
|
||
│ MI │ │mnemo-│ forming signal of a logical condition │
|
||
│543210│dec│ nics │ (at signal OECT = 0 ) │
|
||
│──────┼───┼──────┼────────────────────────────────────────┤
|
||
│000000│ 00│ │CT:=RN.Z or (RN.N xor RN.V); │
|
||
│000001│ 01│ │CT:=not(RN.N xor RN.V) and not(RN.Z); │
|
||
│000010│ 02│ │CT:=RN.N xor RN.V; │
|
||
│000011│ 03│ │CT:=not(RN.N xor RN.V); │
|
||
│000100│ 04│ RN_Z │CT:=RN.Z; │
|
||
│000101│ 05│ │CT:=not(RN.Z); │
|
||
│000110│ 06│ RN_V │CT:=RN.V; │
|
||
│000111│ 07│ │CT:=not(RN.V); │
|
||
│001000│ 08│ │CT:=RN.C or RN.Z; │
|
||
│001001│ 09│ │CT:=not(RN.C) and not(RN.Z); │
|
||
│001010│ 10│ RN_C │CT:=RN.C; │
|
||
│001011│ 11│ │CT:=not(RN.C); │
|
||
│001100│ 12│ │CT:=not(RN.C) or RN.Z; │
|
||
│001101│ 13│ │CT:=RN.C and not(RN.Z); │
|
||
│001110│ 14│ │CT:=NO xor RM.N; │
|
||
│001111│ 15│ │CT:=not(NO xor RM.N); │
|
||
│010000│ 16│ │CT:=RgN.Z or (RN.N xor RN.V); │
|
||
│010001│ 17│ │CT:=not(RN.N xor RN.V) and not(RN.Z); │
|
||
│010010│ 18│ │CT:=RN.N xor RN.V; │
|
||
│010011│ 19│ │CT:=not(RN.N xor RN.V); │
|
||
│010100│ 20│ │CT:=RN.Z; │
|
||
│010101│ 21│ │CT:=not(RN.Z); │
|
||
│010110│ 22│ │CT:=RN.V; │
|
||
│010111│ 23│ │CT:=not(RN.V); │
|
||
│011000│ 24│ │CT:=RN.C or RN.Z; │
|
||
│011001│ 25│ │CT:=not(RN.C) and not(RN.Z); │
|
||
│011010│ 26│ │CT:=RN.C; │
|
||
│011011│ 27│ │CT:=not(RN.C); │
|
||
│011100│ 28│ │CT:=not(RN.C) or RN.Z; │
|
||
│011101│ 29│ │CT:=RN.C and not(RN.Z); │
|
||
│011110│ 30│ RN_N │CT:=RN.N; │
|
||
│011111│ 31│ │CT:=not(NO xor RM.N); │
|
||
│100000│ 32│ │CT:=RM.Z or (RM.N xor RM.V); │
|
||
│100001│ 33│ │CT:=not(RM.N xor RM.V) and not(RM.Z); │
|
||
│100010│ 34│ │CT:=RM.N xor RM.V; │
|
||
│100011│ 35│ │CT:=not(RM.N xor RM.V); │
|
||
│100100│ 36│ RM_Z │CT:=RM.Z; │
|
||
│100101│ 37│ │CT:=not(RM.Z); │
|
||
│100110│ 38│ RM_V │CT:=RM.V; │
|
||
│100111│ 39│ │CT:=not(RM.V); │
|
||
│101000│ 40│ │CT:=RM.C or RM.Z; │
|
||
│101001│ 41│ │CT:=not(RM.C) and not(RM.Z); │
|
||
│101010│ 42│ RM_C │CT:=RM.C; │
|
||
│101011│ 43│ │CT:=not(RM.C); │
|
||
│101100│ 44│ │CT:=not(RM.C) or RM.Z; │
|
||
│101101│ 45│ │CT:=RM.C and not(RM.Z); │
|
||
│101110│ 46│ RM_N │CT:=RM.N; │
|
||
│101111│ 47│ │CT:=not(RM.N); │
|
||
│110000│ 48│ │CT:=ZO or (NO xor VO); │
|
||
│110001│ 49│ │CT:=not(NO xor VO) and not(ZO); │
|
||
│110010│ 40│ NXORV│CT:=NO xor VO; │
|
||
│110011│ 51│ │CT:=not(NO xor VO); │
|
||
│110100│ 52│ ZO │CT:=ZO; │
|
||
│110101│ 53│ │CT:=not(ZO); │
|
||
│110110│ 54│ VO │CT:=VO; │
|
||
│110111│ 55│ │CT:=not(VO); │
|
||
│111000│ 56│ │CT:=CO or ZO; │
|
||
│111001│ 57│ ZORC │CT:=not(CO) and not(ZO); │
|
||
│111010│ 58│ CO │CT:=CO; │
|
||
│111011│ 59│ │CT:=not(CO); │
|
||
│111100│ 60│ │CT:=not(CO) or ZO; │
|
||
│111101│ 61│ │CT:=CO and not(ZO); │
|
||
│111110│ 62│ NO │CT:=NO; │
|
||
│111111│ 63│ │CT:=not(NO); │
|
||
└──────┴───┴──────┴────────────────────────────────────────┘
|
||
The note: if mnemonics is not given, than it is necessary to use command FIELD.
|
||
The note.
|
||
Values are entered in binary code, that indicated by the
|
||
symbol '²'on the top of field identifier (IM²).
|
||
When entered a new command the code 000000 became assigned.
|
||
┌──────┬───┬─────────────────┬────────────────────────────────────────┐
|
||
│ MI │ │ │operations for loading of register marks│
|
||
│ │ │ ├───────────────────┬────────────────────┤
|
||
│543210│dec│ mnemonics │ operation in RN │operation in RM when│
|
||
│ │ │ │ (when CEN=0) │ CEM, E.C,Z,N,V=0 │
|
||
├──────┼───┼─────────────────┼───────────────────┼────────────────────┤
|
||
│000000│ 00│ LOAD RN,RM; │ RN:=RM; │ no loading │
|
||
│000001│ 01│ LOAD RM,NZ; │ RN:=1111 │ RM:=1111 │
|
||
│ │ │ LOAD RN,NZ; │ │ │
|
||
│000010│ 02│ LOAD RM,RN; │ RN <--> RM │ RM:=RN │
|
||
│000011│ 03│ LOAD RM,Z; │ RN:=0000 │ RM:=0000 │
|
||
│ │ │ LOAD RN,Z; │ │ │
|
||
│000100│ 04│ LOAD RN,FLAGS; │ RN:=FLAGS │ Z:=ZO N:=NO C<-->V │
|
||
│000101│ 05│ │ RN:=FLAGS │ RM:=not RM │
|
||
│000110│ 06│ LOAD RM,FLAGS; RN:=FLAGS except │ RM:=FLAGS │
|
||
│000111│ 07│ LOAD @RN,FLAGS; RN.V:=RN.V xor VO │ RM:=FLAGS │
|
||
│001000│ 08│ LOAD @RM,FLAGS; │ RN.Z:=0 RM:=FLAGS except │
|
||
│001001│ 09│ │ RN.Z:=1 RM.C:=not CO │
|
||
│001010│ 10│ │ RN.C:=0 │ RM:=FLAGS │
|
||
│001011│ 11│ │ RN.C:=1 │ RM:=FLAGS │
|
||
│001100│ 12│ │ RN.N:=0 │ RM:=FLAGS │
|
||
│001101│ 13│ │ RN.N:=1 │ RM:=FLAGS │
|
||
│001110│ 14│ │ RN.V:=0 │ RM:=FLAGS │
|
||
│001111│ 15│ │ RN.V:=1 │ RM:=FLAGS │
|
||
│010000│ 16│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│010001│ 17│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│010010│ 18│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│010011│ 19│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│010100│ 20│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│010101│ 21│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│010110│ 22│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│010111│ 23│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│011000│ 24│ RN:=FLAGS except RM:=FLAGS except │
|
||
│011001│ 25│ RN.C:=not CO RM.C:=not CO │
|
||
│011010│ 26│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│011011│ 27│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│011100│ 28│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│011101│ 29│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│011110│ 30│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│011111│ 31│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│100000│ 32│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│100001│ 33│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│100010│ 34│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│100011│ 35│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│100100│ 36│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│100101│ 37│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│100110│ 38│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│100111│ 39│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│101000│ 40│ RN:=FLAGS except RM:=FLAGS except │
|
||
│101001│ 41│ RN.C:=not CO RM.C:=not CO │
|
||
│101010│ 42│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│101011│ 43│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│101100│ 44│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│101101│ 45│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│101110│ 46│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│101111│ 47│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│110000│ 48│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│110001│ 49│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│110010│ 40│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│110011│ 51│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│110100│ 52│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│110101│ 53│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│110110│ 54│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│110111│ 55│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│111000│ 56│ RN:=FLAGS except RM:=FLAGS except │
|
||
│111001│ 57│ RN.C:=not CO RM.C:=not CO │
|
||
│111010│ 58│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│111011│ 59│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│111100│ 60│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│111101│ 61│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│111110│ 62│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
│111111│ 63│ │ RN:=FLAGS │ RM:=FLAGS │
|
||
└──────┴───┴─────────────────┴───────────────────┴────────────────────┘
|
||
The note: if mnemonics is not given, than it is necessary to use command FIELD;
|
||
the torn lines in table mean that is given one command
|
||
for two codes.
|
||
The note.
|
||
Values are entered in binary code, that indicated by the
|
||
symbol '²'on the top of field identifier (IM²).
|
||
When entered a new command the code 000000 became assigned.
|
||
|
||
|
||
┌─────────╖
|
||
│E.C,Z,N,V║ BITWISE PERMIT THE RECORDING IN REGISTER RM.
|
||
╘═════════╝ ───────────────────────────────────────┘
|
||
Purpose.
|
||
The permit of writing of the marks in one bit of the
|
||
marks register (RM) of BP2 chip. Record is provided
|
||
when signal SEM=0
|
||
Level : 0 - Active (writing is permited)
|
||
1 - Passive (writing is prohibited).
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering the new command then bitwise writing for all marks is resolved.
|
||
|
||
|
||
|
||
┌─────────╖
|
||
│ OECT ║ PERMIT THE ISSUE OF THE TERM CODE ON CT OUTPUT.
|
||
╘═════════╝ ──────────────────────────────────────────────┘
|
||
Purpose.
|
||
Permit the issue of the term code on CT output of the
|
||
KM1804BP2 chip. Herewith the formed signal on CT output
|
||
is defined by code in field BP2_MI².5-0 (bits 5-0 of
|
||
the microinstruction codes for the BP2 chip). The signal
|
||
of the logical condition is formed when OECT=0.
|
||
Level :
|
||
0 - Active (forming permit)
|
||
1 - Passive (forming prohibited).
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering the new command the forming of logical
|
||
conditions is prohibited.
|
||
|
||
┌─────────╖
|
||
│ CEN,CEM ║ PERMIT OF MARKS WRITING IN REGISTERS RN/RM.
|
||
╘═════════╝ ──────────────────────────────────────────┘
|
||
Purpose.
|
||
Permit of marks writing in registers RN/RM
|
||
of KM1804BP2 chip.
|
||
Level : 0 - Active (writing permit)
|
||
1 - Passive (writing prohibited).
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering the new command record in registers prohibited..
|
||
|
||
┌─────────╖
|
||
│ SE ║ PERMIT OF THE SHIFT PERFORMING.
|
||
╘═════════╝ ──────────────────────────────┘
|
||
Purpose.
|
||
The permit of the shift performing in KM1804BP2 chip.
|
||
Level : 0 - Active (shift permit)
|
||
1 - Passive (shift prohibited).
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering the new command the shifts are prohibited.
|
||
|
||
┌─────────╖
|
||
│ MSA,MSB ║ CHOICE A SOURCES OF THE OPERAND ADDRESS.
|
||
╘═════════╝ ───────────────────────────────────────┘
|
||
Purpose.
|
||
Choice of the source operand in ALU (MIM or RA). Field contains
|
||
the signals of the multiplexer that controls a choice of the
|
||
address source of operand for operation in ALU.
|
||
Value : 0 - The number of the KM1804BC1 chip register is
|
||
extracted from MIM;
|
||
1 - The number of the KM1804BC1 chip register is
|
||
extracted from external register.
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering a new command the multiplexer chooses a number
|
||
of the register from microinstructions memory.
|
||
|
||
|
||
┌─────────╖
|
||
│ EWA,EWB║ WRITING INFORMATION IN OPERAND SELECT REGISTERS IN ALU.
|
||
╘═════════╝ ─────────────────────────────────────────────────────────┘
|
||
Purpose.
|
||
The low-level signal provides record of information from
|
||
system bus that is given in 4-bit registers (RA,RB)
|
||
of the operand choice in ALU. The number buses bits
|
||
that is used for loading registers are defined when
|
||
adjusting the system.
|
||
Level : 0 - Active (write)
|
||
1 - Passive (storage).
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering the new command the record in registers are prohibited.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
┌─────────────────────────────────────────────────────╖
|
||
│ 3. FIELD OF MCU (microprogramming control unit). ║
|
||
╘═════════════════════════════════════════════════════╝
|
||
|
||
The microprogramming control unit (MCU) is built with use of
|
||
chip KM1804BY4, which is intended to control the sequence samples
|
||
of the microinstructions from the microinstructions (MIM).
|
||
The microcircuit provides shaping 12-bit address of the
|
||
microinstruction i.e. volume MIM can form 4096 words. Each
|
||
microinstruction, keeping in MIM contains the field, that are
|
||
controlling KM1804BY4 chip and framing equipment.
|
||
|
||
Includes:
|
||
Chip BY4:
|
||
BY4_MI² - Microinstruction;
|
||
CCE - Permit of the condition analysis;
|
||
COM - Inversion of condition entry;
|
||
CI - Forming the address of the next microinstruction;
|
||
RLD - Unconditional loading of the address / counter register;
|
||
|
||
MS - Multiplexer that selects the signal condition.
|
||
|
||
|
||
┌───────────╖
|
||
│BY4_MI².4-0║ MICROINSTRUCTION OF THE KM1804BY4 CHIP.
|
||
╘═══════════╝ ──────────────────────────────────────┘
|
||
Purpose.
|
||
The microinstructions field of BY4 chip (unit of micropro-
|
||
gramming control ). Correspondence to between opcode and
|
||
executed function was provided in table.
|
||
┌────┬─────────────────┬───────────────────────────────────────────────┐
|
||
│ MI │ │ │
|
||
│3210│ Mnemonics │ microinstruction executed in BY4 │
|
||
├────┼─────────────────┼───────────────────────────────────────────────┤
|
||
│0000│ JZ; │transition to zero address │
|
||
│0001│ CJS Cond,Addr; │conditional transition in subprogram by adress │
|
||
│ │ │from the microcommand register │
|
||
│0010│ JMAP Addr; │transition to address by decoder of commands │
|
||
│0011│ CJP Cond,Addr; │conditional transition to address from register│
|
||
│ │ │of the microinstructions │
|
||
│0100│ PUSH Cond,Val; │record in stack and conditional record in │
|
||
│ │ │register of adress │
|
||
│0101│ JSRP Cond,Addr; │transition to one of two subroutines: by adress│
|
||
│ │ │or from RA, or from register of the microinstr.│
|
||
│0110│ CJV Cond; │condit. trans. to address from external source │
|
||
│0111│ JRP Cond,Addr; │transit. to addr., conditionally chosen or from│
|
||
│ │ │ RÇ, or from register of microinstruction │
|
||
│1000│ RFCT; │repetition of the cycle if counter RA <> 0 │
|
||
│1001│ RPCT Addr; │repetition of the address from register of the │
|
||
│ │ │microinstructions if counter RA <> 0 │
|
||
│1010│ CRTN Cond; │conditional return from subprogram │
|
||
│1011│ CJPP Cond,Addr; │conditional transition to address from register│
|
||
│ │ │of microinstruction and reading from stack │
|
||
│1100│ LDCT Val; │record in RA │
|
||
│1101│ LOOP Cond; │conditional cessation of the cycle │
|
||
│1110│ CONT; │continuation of the work │
|
||
│1111│ TWB Cond,Addr; │branching on three directions │
|
||
└────┴─────────────────┴───────────────────────────────────────────────┘
|
||
Where Cond - checked condition;
|
||
Addr, Val - numerical values of the transition address and loading RA.
|
||
The note.
|
||
Values are entered in binary code, that indicated by the
|
||
symbol '²'on the top of field identifier (IM²).
|
||
When entered a new command the code 1110 became assigned.
|
||
|
||
|
||
┌────────╖
|
||
│ CCE ║ PERMIT AN ANALYSIS OF THE CONDITION SIGNAL.
|
||
╘════════╝ ──────────────────────────────────────────┘
|
||
Purpose.
|
||
Permit an analysis of the condition signal.
|
||
Level : 0 - Active (analisys permit)
|
||
1 - Passive (analisys prohibited).
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering the new command the analisys of command are prohibited.
|
||
|
||
|
||
┌─────────╖
|
||
│ COM ║ INVERSION OF INPUT CONDITION.
|
||
╘═════════╝ ────────────────────────────┘
|
||
Purpose.
|
||
Inversion of input condition. Provides inversion
|
||
of analysed in UMC signal.
|
||
Level : 1 - Active (inversion permit)
|
||
0 - Passive (inversion prohibited).
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering a new command the input condition are not inverted.
|
||
|
||
┌─────────╖
|
||
│ CI ║ SIGNAL FOR CALCULATION OF THE NEXT MC ADDRESS.
|
||
╘═════════╝ ─────────────────────────────────────────────┘
|
||
Purpose.
|
||
Forming the address of the next microinstruction. In each
|
||
tact to output address is added values of the signal
|
||
at the input of CI, and that provides the automatic calculation
|
||
of the address of the next microinstruction.
|
||
Level : 1 - Active (address of the following microinstruction
|
||
is formed);
|
||
0 - Passive (address of the next microinstruction
|
||
is not formed).
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering the new command incriment of the register is given.
|
||
|
||
|
||
┌─────────╖
|
||
│ RLD ║ UNCONDITIONAL LOADING OF A/CR.
|
||
╘═════════╝ ──────────────────────────────┘
|
||
Purpose.
|
||
Unconditional loading of the address/counter register
|
||
with values from bus of branching address.
|
||
Level : 0 - Active (loading permit)
|
||
1 - Passive (loading prohibited).
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering the new command save of the adress register is prohibited.
|
||
|
||
|
||
┌─────────╖
|
||
│ MS ║ MULTIPLEXER OF THE CONDITIONS.
|
||
╘═════════╝ ─────────────────────────────┘
|
||
Purpose.
|
||
The signal conditionselect multiplexer. This signal
|
||
(from 0 to 7) provide presenting on entering of the logical
|
||
condition one of 8 signals, which adjustment is executed
|
||
at switching of the connection.
|
||
┌────────┬────────┐
|
||
│controll│ output │
|
||
│ │ MS │
|
||
├────────┼────────┤
|
||
│ 000 │ Z │
|
||
│001..110│ L1..L6 │
|
||
│ 111 │ NZ │
|
||
└────────┴────────┘
|
||
The note.
|
||
To entry, from 1 to 6, is possible to connect any signal,
|
||
provided in adjustment.
|
||
When entering a new command the code from entry MS is
|
||
given as 000.
|
||
|
||
|
||
|
||
|
||
|
||
┌─────────────────────────────────────────────────────╖
|
||
│ 4. FIELD PIU (priority interruptions unit). ║
|
||
╘═════════════════════════════════════════════════════╝
|
||
|
||
The KM1804BH1 chip is 8-bit microprogramming scheme of the
|
||
vector priority interruption that can be increased, which produces
|
||
priority processing of inquiry for interruptions from eight buses for
|
||
different devices. Fields that providing management work of PIU
|
||
is brought below:
|
||
|
||
Includes:
|
||
KM1804BH1 chip:
|
||
BH1_MI² - Microinstruction;
|
||
EINS - Permit of the acceptance to instruction;
|
||
EV - Permit of the constant issue from ROM vectors
|
||
to DB (data bus).
|
||
|
||
|
||
┌─────────╖
|
||
│ BH1_MI² ║ MICROINSTRUCTIONS OF THE KM1804BH1 CHIP.
|
||
╘═════════╝ ──────────────────────────────────────┘
|
||
Purpose.
|
||
The field of the KM1804BH1 chip (priority interruption unit).
|
||
The correspondence between opcode and executed function is
|
||
provided in table.
|
||
┌────┬─────────────┬─────────────────────────────────────┐
|
||
│ MI │ │ microinstr. executed in BH1 │
|
||
│3210│ Mnemonics │ (with signal EINS = 0 ) │
|
||
├────┼─────────────┼─────────────────────────────────────┤
|
||
│0000│ RESET; │general clear │
|
||
│0001│ RESET IR; │clear IR │
|
||
│0010│ CLR IR,Val; │clear IR signal from buses of mask │
|
||
│0011│ CLR IR,MR; │clear IR with MR control │
|
||
│0100│ CLR IR,VR; │clear IR with VR control │
|
||
│0101│ READ VR; │read VR │
|
||
│0110│ READ SR; │read SR │
|
||
│0111│ READ MR; │read MR │
|
||
│1000│ │installation of MR │
|
||
│1001│ LOAD SR,Val;│load SR │
|
||
│1010│ CLR MR,Val; │bitwise clear MR │
|
||
│1011│ SET MR,Val; │bitwise installation of MR │
|
||
│1100│ RESET MR; │clear MR │
|
||
│1101│ DI; │prohib. of the request for interrup. │
|
||
│1110│ LOAD MR,Val;│load MR │
|
||
│1111│ EI; │permit of the request for interrup. │
|
||
└────┴─────────────┴─────────────────────────────────────┘
|
||
The note.
|
||
Values are entered in binary code, that indicated by the
|
||
symbol '²'on the top of field identifier (IM²). When entering
|
||
the new command in this field is written code of the general
|
||
clear command, but signal EINS=1 that's why the instruction
|
||
is not executed.
|
||
|
||
|
||
┌─────────╖
|
||
│ EINS ║ PERMIT THE INSTRUCTIONS ACCEPTANCE.
|
||
╘═════════╝ ─────────────────────────────────┘
|
||
Purpose.
|
||
The permit the instruction acceptance. Provides acceptance ÉáºαÑΦÑ¡¿Ñ »α¿Ñ¼á ¿¡ßΓαπ¬μ¿¿. ÃíÑß»Ñ?¿óáÑΓ »α¿Ñ¼ ¬
|
||
to perform the instructions given in field BH1_IM².
|
||
Level : 0 - Active (microinstruction on BH1 is executed)
|
||
1 - Passive (microinstruction on BH1 is not executed).
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering the new command presenting the code of
|
||
the command on KM1804BH1 chip is prohibited.
|
||
|
||
┌─────────╖
|
||
│ EV ║ PERMIT OF CONSTANT ISSUE FROM ROM VECTOR.
|
||
╘═════════╝ ────────────────────────────────────────┘
|
||
Purpose.
|
||
The active level of the signal provides the issue 16-bit
|
||
constant from 8-address vectors ROM on system bus
|
||
data. The address for ROM is 3-bit vector, thet is issue
|
||
by PIC (priority interruptions controller).
|
||
Values of the constants, prestored in ROM, are loading
|
||
when the system is adjusting.
|
||
|
||
Level : 0 - Active (constant output)
|
||
1 - Passive (constant is not output because outputs of ROM
|
||
are found in one third condition).
|
||
The note.
|
||
Values are entered in binary code.
|
||
When entering the new command issue of constants is prohibited.
|
||
|
||
|
||
|
||
|
||
|
||
┌────────────────────────────────────╖
|
||
│ 5. Field of control signals. ║
|
||
╘════════════════════════════════════╝
|
||
Includes:
|
||
I - signal of reading from external device;
|
||
O - signal of record on external device;
|
||
LCK - LOCK - signal for fixing of the daisy-chains conditions
|
||
(it is used before vector read);
|
||
IA - INTA - signal for acknowledgement of the interruption for
|
||
device in daisy-chain and for reading from DB
|
||
vector of the interruption;
|
||
R - signal of the reading from memory;
|
||
W - signal for record in memory;
|
||
EWH - signal for record in higher bits of the address register;
|
||
EWL - signal for record in lower bits of the address register.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
╔═══════════════╗
|
||
║C O M A N D O R║
|
||
╚═══════════════╝
|
||
|
||
Mnemonic two-pass assembler for the educational system "COMPLEX"
|
||
══════════════════════════════════════════════════════════════
|
||
|
||
DESCRIPTION
|
||
═══════════
|
||
|
||
Contents
|
||
════════
|
||
|
||
- Foreword.
|
||
1. Source file.
|
||
2. Numeric constants.
|
||
3. Marks.
|
||
4. Commentary.
|
||
5. Structure of the microinstructions.
|
||
6. Arithmetic-logical commands.
|
||
7. Commands for control issue.
|
||
8. Commands for the interruptions processing .
|
||
9. Command for the loading register LOAD.
|
||
10. Command for assign of the microinstruction FIELD.
|
||
11. Official commands.
|
||
12. Directives of the assembler.
|
||
Exhibit 1:
|
||
- Table of reserved mnemonics.
|
||
Exhibit 2:
|
||
- Reports on mistake.
|
||
Exhibit 3:
|
||
- Task of the microinstruction by default.
|
||
Exhibit 4:
|
||
- Example of program writing.
|
||
|
||
|
||
Foreword.
|
||
══════════
|
||
|
||
Mnemonic two-pass assembler "COMANDOR" is intended to
|
||
relief of the laborious labour of the programmer on writing the micro-
|
||
instructions of the microprocessor system "COMPLEX", debug and
|
||
performing the programs on software emulator, and quick contributing
|
||
the changes to source text.
|
||
The result of the functioning the assembler on translations of the
|
||
source text file is a file with extension '.pmk', and its queue source
|
||
for programm emulator of the microprocessor complex.
|
||
|
||
|
||
1. Source file.
|
||
═══════════════
|
||
|
||
As source file for translation is a usual text file, for which
|
||
equitable following rates of the writing:
|
||
|
||
1) all unadulterated mnemonics must be written together,assembler
|
||
does not make differences between title and small letter of the
|
||
alphabet, so mnemonics
|
||
|
||
'ADD' 'AdD' 'ADd' 'Add' 'aDD'
|
||
|
||
are identical and assembler do not differ them;
|
||
|
||
2) between separate mnemonics, digital constant, mark, correspo-
|
||
ndence and comments can be pleaced many insignificant symbol
|
||
and controlling sign, such as gap, tabulation, return the
|
||
carriage, linefeed etc.,there are no restrictions on accomodation
|
||
of the commands in text is not imposed; this allows programmer
|
||
an enough liberally to pertain to text of programm with standpoint
|
||
of its exterior;
|
||
|
||
3) follows to point to the fact, that assembler supports the
|
||
higher part of the table symbol ASCII, in which is
|
||
enclosed national alphabet, but all standard mnemonics,
|
||
provided in a ⁿ1 table-addon of reserved mnemonics,
|
||
was translated for latin alphabet, and so necessary neatly
|
||
to pertain a wadding of mnemonics, that have in its
|
||
composition symbols, which are equally writed, but having
|
||
differ coding. However, given rule does not mean that
|
||
programmer must avoid the national alphabet, except
|
||
for writing explaining commentaries that is complitly seen
|
||
in such programming languages, which were are oriented
|
||
only on english user. By help of the labels structures
|
||
and correspondence the user can in any place of its
|
||
source file assign comprehensible for him indication and
|
||
use it with standard mnemonics of the language.
|
||
So such, for instance, command, as
|
||
|
||
Sum up operand1, operand2;
|
||
|
||
will not contain mistake and it is will be translated correctly
|
||
under that condition that all provided in example of mnemonics
|
||
will beforehand described.
|
||
|
||
4) the main file must be ended of the microprocessor command, that is
|
||
concluded in quotation marks.
|
||
|
||
Strictly keeping rules of commands writing, the neatness in set
|
||
of the text of the program will guarantee the quick translation and
|
||
debug - the practice is witnesses that majority error appears firstly
|
||
of all because stile of writing is careless and the inexact knowledge
|
||
of the development object.
|
||
|
||
2. Numeric constants.
|
||
═════════════════════
|
||
|
||
The numeric constants are used at assigning the numeric operand,
|
||
the addresses transition and load constants. The sign of the constant
|
||
is a value at the beginning of initially mnemonics. "COMANDOR"
|
||
distinguishes four main forms of the value assign:
|
||
|
||
1) decimal form:
|
||
10
|
||
0
|
||
65535
|
||
|
||
2) hexadecimal form:
|
||
0Ah
|
||
15H
|
||
0FFFFh
|
||
|
||
3) octonary form:
|
||
7o
|
||
177777o
|
||
|
||
4) binary form:
|
||
011%
|
||
1111111111111111%
|
||
|
||
All constants cannot exceed size of the machine word.
|
||
|
||
Except direct assign of the constant in command You may refer to the
|
||
current Pointer of the Command CP. The Assembler transforms it in the
|
||
current numerical value of the Command Pointer .
|
||
|
||
3. Marks.
|
||
═════════
|
||
|
||
The marks is serves for change often used constants on symbolic
|
||
equivalent for increasing read ability of the source text.
|
||
|
||
Main rules for writing the marks:
|
||
|
||
1) symbols, which can not be included in marks:
|
||
# $ ( ) * + , - . / [ \ ] { | }
|
||
|
||
2) mark can not begin from numerals values;
|
||
|
||
3) the sign of mark ending is any sign of punctuation,
|
||
gap, sign of tabulations, the end of line, as well as
|
||
any one of symbol, enumerated in rule 1;
|
||
|
||
4) the mark is not comply with reserved mnemonics (see
|
||
exhibit 1 - a table of reserved mnemonics);
|
||
|
||
5) the length of the mark can be assign arbitrarily, but
|
||
assembler will recognize only first ten symbols; so
|
||
when use the marks more than ten symbols then in
|
||
translations can appear some mistakes;
|
||
|
||
Examples of the marks writing: - Loop
|
||
- First_go
|
||
- Mark_1
|
||
- To_long_mark_is_incorrect
|
||
|
||
|
||
4. Commentary.
|
||
══════════════
|
||
|
||
The commentary are used for explanation of one or another
|
||
command functioning, or the whole program as a general, as
|
||
well as for "commenting" some checking command.
|
||
Begin sign of commentary is a special symbol
|
||
|
||
'\'.
|
||
|
||
The assembler ignores all meeting symbols before the next
|
||
symbol '\' or to the next line. For instance:
|
||
|
||
\ short example of the program \
|
||
{ add RB,X,Z; } \ load X in R10
|
||
{ add R11,Y,Z; } \ load Y in R11
|
||
{ add RQ,R10,Z; \ rewrite X in RQ
|
||
cjp l1,compute; } \ if number is positive that moves to
|
||
\ calculation
|
||
{ sub RQ,Z,RQ; } \ otherwise bring X to positive
|
||
{ sub R11,Z,R11; } \ convert Y for correct sign
|
||
|
||
|
||
5. Structure of the microinstruction task.
|
||
══════════════════════════════════════════
|
||
|
||
The memory of microinstructions in microprocessor complex contains
|
||
the separate microinstructions, each of which is divided on many field.
|
||
The command of the assembler is modifies some parts of microinstruction
|
||
field. Whole microinstruction is assigned by operator for microinstruction
|
||
assign, which is described by assistans of two figured bracket
|
||
{}
|
||
Thereby collection of the assembler commands is limited inwardly
|
||
'{}' and presents one microinstruction of the microprocessor complex.
|
||
Inwardly bracket can be kept any amount of the commands of
|
||
assembler, or no one. So even at assigning of empty microinstruction
|
||
you determine actions, that produced in emulator of the microprocessor.
|
||
Usually - it's "empty" actions that corresponding to command NOP if
|
||
it existed.
|
||
Main rules of the commands writing on assembler language "COMANDOR" is
|
||
described below:
|
||
|
||
1) all commands of the assembler must be fited inwardly in operator of
|
||
the microinstruction assign '{}';
|
||
|
||
2) command always begins with name of the command, which is reserved
|
||
mnemonics;
|
||
|
||
3) operands divide between itself by operator of the division operands
|
||
',';
|
||
|
||
4) command must be ended by operator of the command end ';';
|
||
|
||
6. Arithmetic-logical commands.
|
||
═══════════════════════════════
|
||
|
||
The arithmetic-logical commands serves for performing some microinstruction
|
||
as adding, subtractions, bitwise logical operation, operation of the shifts,
|
||
loading, inversion of separate register in Arithmetic-Logical Unit (ALU),
|
||
that is built on four microcircuits BC1 and one m/c BP2.
|
||
In a whole there is 7 commands, formats of which will are considered in
|
||
given section:
|
||
|
||
1)ADD - arithmetical adding;
|
||
2)SUB - arithmetical subtraction;
|
||
3)OR - logical adding;
|
||
4)AND - logical multiplying;
|
||
5)XOR - logical subtraction (excluding "OR");
|
||
6)NAND - logical multiplying in which first operand is taking
|
||
with inversion;
|
||
7)NXOR - logical subtraction in which result is inverted;
|
||
|
||
Next will be considered:
|
||
|
||
6.1. Assign of register shifts.
|
||
6.2. Assign of the result receiver.
|
||
6.3. Assign of operand, on which is executed some operation.
|
||
6.4. Assign of the input carrying.
|
||
|
||
6.1. Receiver of the result.
|
||
────────────────────────────
|
||
|
||
As receiver of the result can emerge the following operands:
|
||
|
||
1) RQ - work registers of ALB;
|
||
|
||
2) R0..R15 - one of the register of the general-purpose (RGP);
|
||
|
||
3) RB - RGP, number of which is determined in RB;
|
||
|
||
4) NIL - the empty receiver (the result is not saved, but can protrude on
|
||
BD, as well as can be used flags, which are installed when the
|
||
operations is perform).
|
||
|
||
The assigning of the RB implies use of RGP, the number of which is kept
|
||
in stood register RB.
|
||
|
||
|
||
6.2. Operands, on which operation is assigned.
|
||
────────────────────────────────────────────────
|
||
|
||
Any one of described above commands allows to execute the
|
||
actions on two operands and place the result in to operations
|
||
register, in general event not coinsiding with operand, on which
|
||
operation was executed. For example,
|
||
|
||
ADD RQ,R1,R2;
|
||
|
||
But often receiver of the result is simultaneously and one of the
|
||
worker operand. Then possible lower writing of this operand twice,
|
||
and assembler by itself will be undertake the task hipping an
|
||
operand commands. For example:
|
||
|
||
SUB RQ,1;
|
||
|
||
Here is possible operands, which possible indicate when command assign:
|
||
|
||
1) Z - "internal" zero, specially realization in
|
||
BC1 chip is to protect data bus from frequent
|
||
trivial information;
|
||
|
||
2) RQ - work register of ALB;
|
||
|
||
3) R0..R15 - one of the general-purpose register;
|
||
|
||
4) RA,RB - GPR, number of which is determined in RA or RB;
|
||
|
||
5) numeric constant;
|
||
|
||
6) BUS_D - writing of such operand speaks of that, that
|
||
operand will be scanned from data bus.
|
||
|
||
|
||
6.3. Assign of shift register.
|
||
──────────────────────────────
|
||
|
||
6.3.1. Structured scheme of the shift performing on ALB.
|
||
6.3.2. Standard types of shifts.
|
||
6.3.3. General types of shifts.
|
||
|
||
The arithmetic-logical block, on which is built ALU of microprocessor
|
||
complex has as one of their own function possibility of simultaneously
|
||
with execution one of the arithmetic-logical operation to produce the shift
|
||
of the register-receiver. Control of shift type is realized by microinstruction,
|
||
entering on entry MI(10-6) m/c BR2. Shift is assigned by microinstruction
|
||
MI(8) m/c BH1. Herewith is possible to realize simultaneous shift of worke
|
||
register RQ. For this purpose is necessary to place before operand of the
|
||
shift the operator of the modification
|
||
|
||
"@"
|
||
|
||
which is indicates to assembler that is produced simultaneous shift of the
|
||
register-receiver and work register RQ. For example:
|
||
|
||
ADD @SRA,R4,123H;
|
||
|
||
The assembler allows to define any one of possible types of the
|
||
shift, or using one of the standard shift. Below brought all possible
|
||
types of shift and operands, by means of which their are possible
|
||
to assign.
|
||
|
||
6.3.1. Structured scheme of the performing shifts on ALB.
|
||
──────────────────────────────────────────────────
|
||
───────────┐ ┌────────────────────────
|
||
BP2 │ │ 4 x BC1
|
||
═══ SLQ │<---------->│ RQ.0╟─────────────┐ ═══
|
||
│ │ │
|
||
│ │ │
|
||
│ │ ┌┬───────┬┐ │
|
||
SRQ │<---------->│RQ.15╟─┤│ RQ │├─┘
|
||
│ │ └┴───────┴┘
|
||
│ │
|
||
│ │ ┌┬───────┬┐
|
||
SRB │<---------->│RB.15╟─┤│ GPR[B]│├─┐
|
||
│ │ └┴───────┴┘ │
|
||
│ │ │
|
||
│ │ │
|
||
SLB │<---------->│ RB.0╟─────────────┘
|
||
│ │
|
||
|
||
|
||
6.3.2. Standard types of shifts.
|
||
────────────────────────────────
|
||
|
||
│ logical │ arithmetical
|
||
│ │
|
||
│ SRL │ SRA
|
||
│ │ NO xor VO
|
||
│ ┌┬───────┬┐ ┌──┐ │ │ ┌─┬───────┬┐
|
||
right │ 0─>││ GPR[B]││->│MC│ │ └─>│ │ GPR[B]││
|
||
│ └┴───────┴┘ └──┘ │ └─┴───────┴┘
|
||
│ │
|
||
│ SLL │ SLA
|
||
│ │
|
||
│ ┌──┐ ┌┬───────┬┐ │ ┌─┬───────┬┐
|
||
left │ │MC│<-││ GPR[B]││<─ 0 │ │ │ GPR[B]││<── 0
|
||
│ └──┘ └┴───────┴┘ │ └─┴───────┴┘
|
||
|
||
When assign the double standard shift it is necessary to write
|
||
accordingly SRWL SLWL SRWA SLWA.
|
||
|
||
For example: ADD SRA,R4,0;
|
||
XOR SLWL,RQ,1010101010101010%;
|
||
|
||
|
||
6.3.3. General types of shifts.
|
||
─────────────────────────────────────
|
||
They Are Assigned by type of shift (SR - a right shift, SL - a left
|
||
shift) and type of the shift. The Type of the shift is assigned by its
|
||
number (refer to table for BP2_MI.A-6), specified through point
|
||
directly for type of the shift , for example:
|
||
ADD SR.3, R0, R5, R3;
|
||
XOR SL.18, R0, 10;
|
||
Point to the fact, the type of right shifts (SR) is assigned by number
|
||
from 0 to 15 and the type of left shifts (SL) by number from 16 to 31.
|
||
|
||
6.4. Entering carry.
|
||
───────────────────
|
||
Entering carry is assigned in command of the first subgroup (ADD and
|
||
SUB).This operand is unnecessary and is by default considered equal zero.
|
||
In the event of evident inputting of the carrying its necessary to set it
|
||
in quality of the last operand of the command. The Inputting of the
|
||
operand of the carrying influences on the field MI(5-0) of controller shift
|
||
m/c BP2 of microinstructions. Here follows to take into account that this
|
||
field is responsible also for loading of register of marks RM and RN m/c
|
||
BP2; so be cearful in simultaneous use the commands of the arithmetical
|
||
adding(subtractions) and commands of the loading of register of marks,
|
||
because it can occur the accompaniment of the undesirable input carrying
|
||
that will distort the result. The Translator of the assembler do not checks
|
||
the compatibility of the commands and a mistake under said event will not give.
|
||
|
||
|
||
|
||
The following possible signals of the entering carry are exist:
|
||
|
||
1) Z - a signal of the logical zero;
|
||
|
||
2) RM_C - a bit C of register of the mark RM;
|
||
|
||
3) RN_C - a bit C of register of the mark RN.
|
||
|
||
It possible to assign the inversion of these signals by means of last
|
||
operator to inversions "NOT". The Examples:
|
||
ADD R1,RQ,R5,RM_C;
|
||
SUB RQ,R4,not Z;
|
||
ADD @SRA,R5,10,not RN_C;
|
||
|
||
The using of the operand of the carrying requires the full task of the
|
||
command.
|
||
|
||
7. Commands of the handing over of the management.
|
||
═════════════════════════════════════════════════
|
||
|
||
The Commands of given groups process the field of microcommand m/c BY4,
|
||
which is a scheme of management 12-digits address of the microcommands
|
||
and executes 16 microcommands.
|
||
|
||
7.1. Selection of address of the transition.
|
||
7.2. Command Descriptions of the handing over of management.
|
||
7.3. Operands of the inputting of the condition.
|
||
|
||
7.1. Selection of the address of switch.
|
||
──────────────────────────────────────
|
||
|
||
Many commands BY4 execute the modification of the counter of the micro-
|
||
instructions, executing hereunder the transition on new microinstruction,
|
||
not residing directly behind executed in memories of the microinstructions.
|
||
The Other commands can execute the modification of the register of the
|
||
address. All address and data for loading enter on BY4 with Buses of the
|
||
Address of the Transition (BAT). On BAT data can enter with three buffers:
|
||
- the buffer V;
|
||
- the buffer M;
|
||
- the buffer P.
|
||
As can be seen from schemes situated below, each of these buffers is
|
||
commuted with different source of data:
|
||
- the buffer V sends on BAT the data from ROM vectors of transition m/c BH1;
|
||
- the buffer M commute BAT and Data Bus (look on directive LINK M);
|
||
- the buffer P sends on BAT data from ROM of microinstructions (field D);
|
||
|
||
7.1.1. Structured scheme of the choice of the address of the switch.
|
||
──────────────────────────────────────────────────────────────────
|
||
┌─────────┐
|
||
│ ROM EM │
|
||
└────┬────┘
|
||
┌┘
|
||
════════╪═════════════╤════════════════════════════════╤══ BUS_D (16)
|
||
└┐ │ │
|
||
┌────┴────┐ ┌────┴────┐ ┌────┴────┐
|
||
┌─o Buffer V│┌─o Buffer M│ ┌─o Buffer K│
|
||
│ └────┬────┘│ └────┬────┘ OED└────┬────┘
|
||
VE │ ME │ │
|
||
═══════╧══════════╤═╧══════════════════╤═══ BAT(12) │
|
||
│ │ /16
|
||
┌─────────────────┴──────────┐ ┌────┴────┐ │
|
||
│ ED4 │ ┌─o Buffer P│ │
|
||
│ │ │ └────┬────┘ 12 │
|
||
PE └───────/─────┤
|
||
│
|
||
field D ROM│
|
||
|
||
7.2. Command Description of the handing over of the management.
|
||
──────────────────────────────────────────────────────────
|
||
|
||
If while inputting commands it is required to indicate the condition of its
|
||
execution,then it is put after mnemonics of the command as first operand;if is
|
||
it additionally required to indicate the direct address of the transition, or
|
||
(for command LDCT) to assign new value of the register of the address RA, then
|
||
numerical value (the mark) handles in command as a second operand:
|
||
|
||
|
||
1) JZ - a transition to zero address;
|
||
|
||
JZ; \ unconditional transition on zero address
|
||
|
||
2) CJS - a conditional transition to subprogram on specified address;
|
||
the address of the transition goes on BAT through buffer R;
|
||
|
||
CJS CT, START; \ if condition CT is executed,
|
||
\ then move to subprogram by adress
|
||
\ START, otherwise continue calculations
|
||
|
||
3) JMAP - an unconditional transition on specified address,residing on data
|
||
bus; the address of the transition goes on BAT through buffer M;
|
||
|
||
JMAP 100; \ move to address 100
|
||
|
||
4) CJP - a conditional transition on specified address;
|
||
the address of the transition goes on BAT through buffer R;
|
||
|
||
CJP not RDM, CP; \ wait while memory will not give
|
||
\ signal to readiness
|
||
|
||
5) PUSH - a boot in stack of the counter of the microinstructions, and
|
||
plus hereto on performing the specified condition of execution
|
||
LDCT; value of the downloaded counter of the microinstructions
|
||
enters on BAT through buffer M;
|
||
|
||
PUSH not CT, 10; \ save in stack address of the following
|
||
\command and load in RA 10,
|
||
\ if condition CT is not executed;
|
||
|
||
Form without operands writing the command PUSH is can be; then,
|
||
the condition became false and, consequently, the boot in RA does
|
||
not occur.
|
||
|
||
6) JSRP - a transition to one of two subprograms by adress, taken from
|
||
register of the address (if condition is not executed), or on
|
||
specified address;
|
||
the address of the transition enters on BAT through buffer P;
|
||
|
||
JSRP IRQ0,53O;\ if condition is executed, then
|
||
\ move to executing of the command by adress
|
||
\ 43 (53o = 43), else
|
||
|
||
7) CJV - conditional transition by adress from external sourse;
|
||
the adress of transition gets on BAT from buffer V;
|
||
|
||
CJV CT;\ if condition is executed, then
|
||
\ the adress of next command is read
|
||
\ from buffer V
|
||
|
||
8) JRP - similar as command JSRP, but without boot in stack the address
|
||
of the returning; the address of the transition enters on BAT
|
||
through buffer P;
|
||
|
||
9) RFCT - a recurrence of the cycle until the register of address is zero
|
||
(the comparison RA with zero, and if no, then make a transition
|
||
by adress, keeping on the top of the stack with simultaneous
|
||
decremention of RA);
|
||
|
||
PUSH NZ,10; \memorize on the top of the stack the address
|
||
\of begining of hte cycle with simultaneous boot
|
||
\in RA number of passage (RA executes the role
|
||
\of counter of the cycle)
|
||
....
|
||
|
||
RFCT; \ decrements RA, and until zero
|
||
\ move to the begining of the cycle
|
||
|
||
10) RPCT - a recurrence of the cycle until the register of the address is a
|
||
zero (the comparison RA with zero, and if no, then transition by
|
||
adress, keeping in memories of the microinstructions with
|
||
simultaneous decrementing of RA);
|
||
the address of the transition enters on BAT through buffer P;
|
||
|
||
RPCT loop; \ compare RA with zero and if RA <> 0,
|
||
\ then move to the "loop"
|
||
|
||
11) CRTN - a conditional returning of the subprogram;
|
||
|
||
CRTN not NXORV; \ checking the sign of the overflow in
|
||
\ system with extended net of the sign
|
||
\ and if there is no overflows -
|
||
\ - return from subprogram
|
||
|
||
12) CJPP - a conditional transition on specified address and simultaneous
|
||
decrementing of pointer of the stack;
|
||
the address of the transition enters on BAT through buffer P;
|
||
|
||
PUSH NZ,10;
|
||
|
||
.....
|
||
|
||
CJPP RM_C,NEXT; \ check C mark of register of the marks
|
||
\ RM and if 1 then come out from cycle
|
||
|
||
RFCT;
|
||
|
||
13) LDCT - recording in register of the address RA;
|
||
new value RA enters on BAT through buffer P;
|
||
LDCT val; \ \ load in RA the value of val
|
||
|
||
14) LOOP - a conditional breaking of the cycle (if condition in command
|
||
is not executed, then address of the following microinstruction
|
||
is chosen from top of the stack, else the following command
|
||
executes`s);
|
||
|
||
PUSH; \ \ save the address of the begining of the cycle
|
||
|
||
......
|
||
|
||
LOOP not CT; \if in the enterence CT - 0, then return to
|
||
\ the begining of the cycle
|
||
|
||
15) CONT - transition to performing of the following command (is
|
||
executed by default);
|
||
|
||
16) TWB - conditional branching by three directions (RA is compared with
|
||
zero: if not, then RA decrement`s and then the LOOP executs,
|
||
else the same LOOP, but with sample of the address not from
|
||
stack, but from memory of the microinstructions through buffer P).
|
||
|
||
|
||
PUSH NZ,10;
|
||
|
||
.......
|
||
|
||
|
||
TWB NZ,NEXT; \while RA<>0 return on the begining of the
|
||
\ cycle; if RA=0 move on NEXT
|
||
|
||
7.3. Operands of inputting the conditions.
|
||
─────────────────────────────────────────
|
||
|
||
The operands of the inputting of the condition are used in such commands
|
||
as CJS, CJP, PUSH, JSRP, CJV, JRP, CRTN, CJPP, LOOP and TWB. The Signal of
|
||
the condition is given on entry of LU block of microprogramming management
|
||
through eight-entered multiplexor MS, two entries of which are beforehand
|
||
predestined as Z and NZ (0 and 1), but the rest of six entries can be commuted
|
||
by different signals (refer to inputting of switchings of the conditions with
|
||
help of directives LINK). While inputting of the operand of the condition it
|
||
is possible to use following predestined mnemonics:
|
||
|
||
1)Z, NZ - condition is defined as undoubtedly false (true);;
|
||
|
||
2)ZO, CO, NO, VO - signs of the zero, carrying, sign and overflows defined
|
||
by result of the execution of operation in ALU;
|
||
|
||
3)RM_Z,RM_C,RM_N,RM_V - the flags Z, C, N and V keeping in register of the
|
||
marks RM;
|
||
|
||
4)RN_Z,RN_C,RN_N,RN_V - similarly for RN;
|
||
|
||
5)NXORV - sign of the overflow for system with two digits of signs;
|
||
|
||
6)ZORC - condition is became true when there is a flag of zero or
|
||
overflows in ALB after operation
|
||
(ZORC = Z or C).
|
||
|
||
7)L1,L2,L3,L4,L5,L6 - a direct inputting of the number of the entering
|
||
of the multiplexor of the conditions, from which the condition signal will
|
||
be scanned, and the installation of the signal will not be realized.
|
||
|
||
Writing the operator "not" is applicable preliminary to all sign that
|
||
influences upon field COM of microprogramming block of management BY4.
|
||
All signals it is necessary to lock beforehand with one of the enterences
|
||
(L1..L6) of the multiplexor by directive LINK .
|
||
|
||
|
||
8. Commands of the processing of the interruptions.
|
||
════════════════════════════════════════════════
|
||
|
||
The Commands of the processing of the interruptions fill the field of
|
||
microinstruction m/c BH1. The chip KM1804BH1 - is 8-digits microprogramming
|
||
scheme (with ability to be increased) of the vector priority interruption,
|
||
which produces processing by priority of inquiry for interruptions, which
|
||
enter by eight buses from different devices.
|
||
Commands of management m/c and types of their writing are brought Below:
|
||
|
||
1)RESET - a command for cleaning;
|
||
can be without or with one operand;
|
||
|
||
a)command RESET without operands conducts general clearing.
|
||
While this command is executed the zeroizing of the register of
|
||
the condition occures and trigger of the permit of the request
|
||
of the interruption moves into condition, which allows leaving of
|
||
the request of the interruption, a.w. system of the interruption
|
||
will react on the request of any priority
|
||
|
||
b)RESET MR - a clearing the register of the mask(zeroizing all
|
||
digits of the register of the mask); as a result
|
||
all interruptions will be unmasked.
|
||
|
||
c)RESET IR - clearing of the register of the interruption.
|
||
|
||
2)CLR - a command of bitwise cleaning of internal registers of the chip;
|
||
it is used to registers of the interruptions and masks:
|
||
|
||
a)IR - can be realized by signals from data buse, register of the
|
||
mask and register of the vector. For exemple:
|
||
|
||
CLR IR ,00011000% ; \clean 4 and 5 digits
|
||
CLR IR , MR; \clean that digits of the register of the
|
||
\interruptions, for which the numeral in
|
||
\ register of the mask corresponds
|
||
CLR IR , VR ; \occurs zeroizing those of IR ,
|
||
\which corresponds with the vector of the
|
||
\interruptions,located in register of the vector
|
||
|
||
b)MR - realized by signals from data buses.
|
||
|
||
3)SET - is a command of the bitwise installing of the register of the mask.
|
||
For instance:
|
||
SET MR , 11100000%;\masking hte interruptions,
|
||
\which enter from 8,7 and 6 external devices;
|
||
\the rest of digits of the register of the mask
|
||
\are not touched
|
||
|
||
4)READ - a command of the reading of the register m/c;
|
||
it is used to registers of the mask, of the condition and of the
|
||
vector:
|
||
|
||
a)READ MR;
|
||
|
||
b)READ SR;
|
||
|
||
c)READ VR;
|
||
|
||
While these commands are executing the signals, reflecting by
|
||
condition of register of the mask, conditions and vector, are
|
||
given on data bus.
|
||
|
||
5)DI - a prohibition of the request of the interruptions(occurs zeroizing
|
||
of the trigger of the permiting of the request of the interruption).
|
||
(command is without operands)
|
||
6)EI - the permittion of the request of the interruption; the command acts
|
||
opposite command DI. (command is without operands)
|
||
|
||
For all commands, where as second operand appears numerical value, shortcut
|
||
form is also equitable - without direct inputting of the data; then the data
|
||
will enter on data bus not from the memory of the microinstructions, but
|
||
forming in process of the performing of the microinstruction on the kit of
|
||
the microprocessor. For instance:
|
||
|
||
{OE_ALU; \allow the issue of the result of the execution
|
||
\of operation on data bus in ALU
|
||
XOR R1,R4; \execute the operation in ALU
|
||
CLR MR; } \clean those digits of the register of the mask
|
||
\that correspond to digits R1 and
|
||
\R4 of ALU and do not coincide
|
||
|
||
All commands, which read or give on data bus some values, work from younger
|
||
digits of the bus; for instance, the command
|
||
|
||
READ VR;
|
||
|
||
will issue the value of 3-digital register of the vector on three younger
|
||
digits of the data bus.
|
||
|
||
9. Command of the loading of the LOAD register.
|
||
══════════════════════════════════════════
|
||
|
||
The given command differs from all other commands of accembler, because it
|
||
assigns the loading of the official registers, that refer to many nodes of the
|
||
complex of the microprocessor. Depending on the operand that follows after the
|
||
command, it can be with one or two operands:
|
||
|
||
1)The loading of the register of the inputting of the operand of the block
|
||
of the ALU:
|
||
|
||
LOAD RA;
|
||
LOAD RB;
|
||
|
||
the given command does not require as second operand to indicate the
|
||
source of the loading or direct operand, because as hardware registers
|
||
are connected to data bus and after presenting the signal record the
|
||
value will be loaded in them, which is at present found on bus.
|
||
|
||
2)loading of registers of the marks of the controller of shifts:
|
||
|
||
LOAD RM;
|
||
LOAD RN;
|
||
here as the second operand it is possible to indicate necessary values:
|
||
|
||
1)Z - loading in all four marks the register of the zeroes;
|
||
|
||
2)NZ- loading in all four marks the register of the numeral;
|
||
|
||
3)FLAGS - loading in registers signs of execution of last
|
||
operation in block ALU; with using the operator of the modification
|
||
@ flags will be loaded in modified type (refer to table of the
|
||
loading registers of marks);
|
||
|
||
besides it is possible to load one register by another. The Examples:
|
||
|
||
LOAD RM,Z;
|
||
LOAD RN,RM;
|
||
XOR R1,R5;
|
||
LOAD RM,FLAGS;
|
||
|
||
The rest of the types of the loading of registers of marks are available
|
||
when the command FIELD is in a use.
|
||
|
||
3)The loading of the registers of the mask and conditions of the block of
|
||
the processing of the interruptions.
|
||
The Command can be with one or two operands. The Difference is that in
|
||
one operanded command registers are loaded by current information from
|
||
data bus while under direct inputting of the operand of the loading, it
|
||
is brought in the data field of microinstruction and is read on data bus
|
||
from there. For instance:
|
||
|
||
LOAD SR,7; \register of the condition is with 3 digits,
|
||
\remember that attempt to load there number
|
||
\greater then 7 will cause a mistake\
|
||
INC R1;
|
||
LOAD MR; \load in register of the mask
|
||
\the incremented value of the register
|
||
\R1(more exactly the younger 8 digits)
|
||
|
||
|
||
10. Command of the inputting of the field of microinstruction FIELD.
|
||
═════════════════════════════════════════════════════════════════
|
||
|
||
This command is universal that is to say with its help it is possible to
|
||
assign absolutely all microinstructions. After command You have to indicate
|
||
the field, which You want to modify and, then, through comma write all that
|
||
fields, which are situated in the given field. The standard mnemonics of the
|
||
fields and the list of falling into them fields are typed below:
|
||
1) BUS_D - a field of the issue of the constant on data bus of the
|
||
microprocessor; contains the field D and the field OED.
|
||
The Example of the writing:
|
||
|
||
FIELD bus_d, 0fecdh, 0;
|
||
|
||
2) BC1 - the field of the inputting of the functioning of m/c BC1; contains
|
||
the field BC1_MI.876, field BC1_MI.543, field BC1_MI.210, field A and B, field
|
||
OEY. The Example of the writing:
|
||
|
||
FIELD bc1, 010%, 000%, 001%, 4h, 0bh, 1;
|
||
|
||
that corresponds to the command of the assembler ADD R10,R4;
|
||
|
||
3) BP2 - a field of the inputting of the functioning of m/c BP2; contains the
|
||
field BP2_MI.CB, field BP2_MI.A-6, field BP2_MI.5-0, field E.C,Z,N,V, field
|
||
OECT, CEN, CEM, SE. The Example of the writing:
|
||
|
||
FIELD bp2, 0, 0, 6, 0,0,0,0, 1, 1,0, 1;
|
||
|
||
that corresponds to the command of the assembler LOAD RM, FLAGS;
|
||
|
||
4) REGS - a field of the inputting of the functioning of th registers of
|
||
choice of the operand of ALU; contains the field MSA, MSB, EWA and EWB.
|
||
The Example of the writing:
|
||
|
||
FIELD regs, 1,0, 1,1;
|
||
that corresponds to boot the operand A of ALU from register RA;
|
||
|
||
5) ALU - generalised field of the inputting of the command of ALU,
|
||
containing in itself consequent enumeration of fields BC1, BP2, REGS that is
|
||
to say 21 operands.
|
||
|
||
6) BY4 - a field of the inputting of the command m/c BY4; contains the field
|
||
MI, fields CCE, COM, CI, RLD, as well as field MS. The Example of the writing:
|
||
|
||
FIELD bu4, 0011%, 1, 1, 1, 1, 3;
|
||
|
||
that corresponds to the command of the assembler CJP not cond;
|
||
where cond - is a signal, taken out from the third enter of the
|
||
multiplexor of the conditions MS.
|
||
|
||
7) BH1 - a field of the inputting of the command m/c BH1; contains the field
|
||
MI, field EINS, field EV. The Example of the writing:
|
||
|
||
FIELD bh1, 1101%, 0, 1;
|
||
|
||
that corresponds the command of the assembler DI;
|
||
|
||
8) CU - generalised field of the inputting of the block of microprogramming
|
||
control and block of the priority of interruptions, containing the consequent
|
||
description of the fields BY4 and BH1.
|
||
|
||
9) MEM - - a field of controlling signals; contains the fields I, O, R, W,
|
||
EWH and EWL. The Example of the writing:
|
||
|
||
FIELD mem, 1,1, 0,1, 1,1;
|
||
|
||
that corresponds to the command of the assembler R;
|
||
|
||
10) ABSOLUTE - full field of the inputting of the microinstruction, which
|
||
contains 38 operands and comprising of consequent description of fields BUS_D,
|
||
ALU, CU and MEM.
|
||
|
||
If You don`t want to modify some field of microcommand, then You may
|
||
miss it, having puted in corresponed place am empty comma, for instance:
|
||
|
||
FIELD bus_d, , 0;
|
||
|
||
that corresponds the command of the assembler OED, but for the constant
|
||
the value is unchangeable.
|
||
|
||
11. Official commands.
|
||
════════════════════════════
|
||
|
||
The Official commands are intended for issue on elements of the
|
||
microprocessor complex different official signals, as the signals of the permit
|
||
(forbid) of the issue of the data on the exits of the chip or record in
|
||
internal registers etc. All these commands are especially specialized and have
|
||
no operands. The Influence turns on those fields of microcommand, which are not
|
||
touched by other groups of the commands.
|
||
|
||
1) The command of management of arithmetic-logical device on m/c BC1:
|
||
|
||
1. OEY - allow the issue of the result of operations in ALU on data bus;
|
||
by default the issue of the data is suppressed.
|
||
|
||
2) The command of device management of shift management on m/c BP2:
|
||
|
||
1,2. CEM,CEN - a commands of the permition of recording to registers RM and RN;
|
||
3..6. CEM_C,CEM_Z,CEM_N,CEM_V - writing the mark C(Z,N,V) in register of
|
||
the marks RM.
|
||
|
||
3) The Commands of management of device management on m/c BY4:
|
||
|
||
1. RLD - a permition of the recording in register of the address/counter
|
||
2. CCE - a permition of the presenting the condition
|
||
3. CI - a prohibition of the forming the address of the following command;
|
||
|
||
4) The commands of the management of the device of the processing of the
|
||
interruptions on m/c BH1:
|
||
|
||
1. EV - a permition of the issue of the address of the device of the
|
||
interruptions on data bus
|
||
|
||
5) The commands of the management of the external devices and memory:
|
||
|
||
1. R - a command of the reading from memory
|
||
2. W - a command of the recording in memory
|
||
3. IN - a command of the reception from the external device
|
||
4. OUT - a command of the recording in external device
|
||
5..6. EWH,EWL - a commands of the recording in senior and younger digits
|
||
of the register of the address accordingly. Two commands are incorporated for
|
||
event, when number of digits BD < BA and write the new address in register of
|
||
the address for one tact is impossible. Then the younger part of the address
|
||
on data bus is formed, and, after making the signal EWL it writes in the
|
||
register of the address, and then with senior part of formed address do the
|
||
same.
|
||
7..8. EWA,EWB - a commands of recording in the registers of management of
|
||
the operands ALB RA and RB.
|
||
|
||
12. Directives of the assembler.
|
||
══════════════════════════════
|
||
|
||
The Directives does not translate in executive codes. They serve as pointers
|
||
of assembler on that or other action which it must do with operands, attached to
|
||
the directive. We shall consider the directives, supported by assembler
|
||
"COMANDOR" and rules of the work with them:
|
||
Following directives will are considered In this part:
|
||
|
||
12.1. Directive of including in translated text INCLUDE.
|
||
12.2. Directive of accomodations of the executive code ORG.
|
||
12.3. Directive of input of mark and(or) of the correspondence to EQU.
|
||
12.4. Directive of input of macros.
|
||
12.5. Directive of input of values of determined cells of memory DW.
|
||
12.6. Directive of installation of internal registers of complex ACCEPT.
|
||
12.7. Directive of input of switchings of the conditions for BMM LINK.
|
||
|
||
12.1. The Directive of the including of translated text INCLUDE.
|
||
────────────────────────────────────────────────────────────
|
||
|
||
INCLUDE (+) - a directive of the insertion in translating program of the text
|
||
from indicated file. The File assigned in directive must be in the same
|
||
directory, as translating file. The Example:
|
||
|
||
include macro.lib
|
||
+ routine
|
||
|
||
12.2. Directive of the accomodation of the executive code ORG.
|
||
────────────────────────────────────────────────────────────
|
||
|
||
ORG ($) - a directive of the accomodation of the executive code indicates to
|
||
the assembler on that nearest following after directive microinstruction will
|
||
be situated in memories of the microinstructions by adress, specified after
|
||
directive ORG. The Address must not exceed the last addressed field of the
|
||
microinstructions. For instance:
|
||
|
||
org 010h
|
||
org start
|
||
$ 100
|
||
|
||
12.3.Directive of input of the mark and(or) of the correspondence to EQU.
|
||
──────────────────────────────────────────────────────────────────────
|
||
|
||
EQU (=) - a directive of the inputting of the marks and correspondence need
|
||
for You if You want to change any numeric constant or standard mnemonics of the
|
||
assembler on clearer equivalent for You. The inputting of the mark is realized
|
||
by writing the keyword EQU(=), name of the mark and by operator of division ":"
|
||
of equivalent of the mark.
|
||
For instance:
|
||
|
||
equ start : 10
|
||
= add :add equ op1 : r1
|
||
equ op2 : 10
|
||
$ start
|
||
{add op1,op2;}
|
||
|
||
12.4. Directive of the inputting of the macros MACRO.
|
||
─────────────────────────────────────────────────
|
||
|
||
MACRO (#) - a directive of the inputting of macros allows You to construct
|
||
your own commands and use them in the same way easy, as standard commands of
|
||
the assembler. The Directive of macros is assigned by keyword MACRO, name of
|
||
macro with enumeration of all its formal parameters and, by operator of division
|
||
":" - the macro, executed in the manner of standard command of the assembler
|
||
that is to say, inside of operators "{ }".
|
||
For instance:
|
||
|
||
MACRO inc reg :{ add reg, reg, z, not z; }
|
||
# JC cond, addr:{ Field Const addr, 0; CJP cond; }
|
||
# dec_RgQ :{ sub Rq, Rq, z, not z; }
|
||
|
||
The Name of macro becomes usual standard mnemonics for translator with all
|
||
spreading rights on it. The Names of formal operands of macro can`t be reserved
|
||
mnemonics. In program a macro is assigned by its name and, real operands
|
||
enumerated through comma in the same order, as it was inputed.
|
||
For instance:
|
||
|
||
{ inc r4; jc not co, start;}
|
||
.......
|
||
|
||
start {dec_RgQ;}
|
||
|
||
12.5. Directive of the input of values of determined cells of memory DW.
|
||
────────────────────────────────────────────────────────────────────
|
||
|
||
DW - directive of the inputting of anyy cells of memory from lower 256
|
||
addresses (0..255), as well as random 32 cells of memories from the general
|
||
address space by amount of 2Mbytes by necessary values. For instance:
|
||
|
||
dw 03Fh:15
|
||
dw 124:1,2,3,4,5 \put into cells with address
|
||
\beginning from 124 numbers 1,2,3,4,5
|
||
|
||
12.6. Directive of installation of internal registers of complex ACCEPT.
|
||
───────────────────────────────────────────────────────────────────
|
||
|
||
ACCEPT - a directive of the installation ACCEPT will help You immediately to
|
||
install the initial condition of that internal register of the kit , which You
|
||
will need while you work. Following topics are covered:
|
||
12.6.1. Installation of internal register BC1 and BP2.
|
||
12.6.2. Installation of internal register BY4.
|
||
12.6.3. Installation of conditions external device.
|
||
12.6.4. Installation of internal register BH1.
|
||
12.6.5. Installation of speed of memory.
|
||
|
||
12.6.1. Installation of the internal register BC1 and BC2.
|
||
───────────────────────────────────────────────────────
|
||
It is Possible to produce initial installation of following registers:
|
||
- a working registers R0..R15 or all together as RGU
|
||
- a registers RQ;
|
||
- a registers RM, RN;
|
||
- a registers RA, RB.
|
||
For instance:
|
||
ACCEPT RGU: 1,2,3,4,5,6,7,8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
|
||
ACCEPT RQ : 12
|
||
ACCEPT RM: 0101%
|
||
|
||
|
||
12.6.2.The Installation of internal registers ED4.
|
||
───────────────────────────────────────────────────
|
||
It is possible to produce initial installation of following register:
|
||
- a pointer of the stack SP;
|
||
- cells of the stack STACK[1]..STACK[5] or the whole stack - STACK;
|
||
- a register of the address-counter RAC;
|
||
- a register of the counter of the microinstructions MICR (PCMK).
|
||
For instance:
|
||
ACCPET SP : 3
|
||
ACCEPT STACK[3] : 0FFCh
|
||
ACCEPT PCMK : 10
|
||
|
||
12.6.3. Installing of the conditions of the external devices.
|
||
────────────────────────────────────────────────────────
|
||
It is possible to install the features of external devices (DEV):
|
||
- the type of the device: IN - input; OUT - output;
|
||
- an address of the register of the condition within 64Kb (max 0ffffh);
|
||
- an address of the register data within 64Kb (max 0ffffh);
|
||
- the time of the forming the signal "Termination of the cycle" (max 0ffffh);
|
||
- time of the forming the signal "Ready" (max 0ffffh).
|
||
For instance:
|
||
ACCEPT DEV[3]: IN, \device of the entering
|
||
0342h, \adress of register of condition in memory
|
||
0344h, \adress of the register of data
|
||
12, \how much is the termination of the cycle of
|
||
\the functioning
|
||
2, \time interval, after which the data can be
|
||
\updated.
|
||
Besides it is possible to assign an internal buffer of data DEV_BUF before 16
|
||
words for the inputting device, for instance:
|
||
ACCEPT DEV_BUF[3]: 1EF3h, 234Ah, 0E79h, 1285h
|
||
|
||
12.6.4. Installation of internal registers BH1.
|
||
─────────────────────────────────────────────
|
||
It is possible to produce initial installation of following registers:
|
||
- a register of the masks RM;(max value is 0ffh)
|
||
- a register of the permittion of the interruptions IR.
|
||
(max value is 0ffh) For instance:
|
||
|
||
ACCEPT RM : 10111001%
|
||
|
||
12.6.5. Installing the speed of working of memory.
|
||
────────────────────────────────────────────────
|
||
It is possible to produce an initial installing of the speed of the working
|
||
of the memory by means of mnemonics RDM_DELAY, for instance:
|
||
ACCEPT RDM_DELAY : 3
|
||
will install speed to memories in 3 machine tacts
|
||
|
||
12.7. Directive of inputting of switchings of conditions for BMM LINK.
|
||
───────────────────────────────────────────────────────────────────
|
||
|
||
LINK (&) - a directive of the inputting of the adjusting the connections of
|
||
the kit allows the programmer to produce all necessary adjusting of the
|
||
system right in program:
|
||
12.7.1. Adjustments of the recording in register of the address.
|
||
12.7.2. Inputting the address of transition by vector of interruptions.
|
||
12.7.3. Adjustments of converter of address of the microinstruction.
|
||
12.7.4. Adjustments of the buffer V.
|
||
12.7.5. Adjustments of enters of the multiplexor of the conditions.
|
||
12.7.6. Adjustments of registers of the inputting of operands in ALU.
|
||
|
||
12.7.1. Adjustment of the recording in register of adress.
|
||
───────────────────────────────────────────────────────
|
||
In given system the register of the address has 20 bits that with 16 bits
|
||
data bus requires two cycles of recording of information in this register; so
|
||
the register is devided into two parts, each of which controls by own signal
|
||
of recording:
|
||
- EWH for writing in senior part,
|
||
- EWL - in younger.
|
||
While adjusting the system it is necessary to assign the youngest bit of
|
||
recording by signal EWH that is to say, to assign the amount of bitt, written
|
||
by this signal. So that it can be written only for 16 bits, that, accordingly,
|
||
the starting bit can be from 4-th to 16-th inclusive.
|
||
For instance:
|
||
|
||
LINK EWH : 11 \adjust the recording in register of the address
|
||
\so as it will be recorded 10 bits of
|
||
\senior and younger
|
||
\parts of address accordingly by
|
||
\sinlals EWH or(and) EWL
|
||
|
||
12.7.2. Inputting of address of transition by vector of interruptions.
|
||
───────────────────────────────────────────────────────────────────
|
||
There is the possibility in system at appearance of inquiry for interruption
|
||
from one of 8 external devices to give on data bus the address of transition on
|
||
corresponding subprogramms of the processing of the interruption. 8 addresses
|
||
are kept in converter of the exit of the block of the priority interruptions,
|
||
presenting from itself the ROM 16*16. The enterence for given ROM is a vector
|
||
of external device VEC[0]..VEC[7]. The inputting of the address of the
|
||
transition is possible to realize for each vector apart,and also for all
|
||
vectors together:
|
||
|
||
LINK VEC[3] : 0CDEFh
|
||
LINK VEC : 1111h,2222h,3333h,4444h,
|
||
5555h,6666h,7777h,8888h
|
||
|
||
The Maximum address of the inputting - 0FFFFh.
|
||
|
||
12.7.3. Adjusting the converter of the address of microinstruction.
|
||
──────────────────────────────────────────────────────────────
|
||
There is a possibility to give on internal bus of the address of the
|
||
microinstruction the address with buses of the data moreover in free order of
|
||
the following of bits through 12-digits buffer M . The inputting is realized
|
||
by consequent enumeration of 12 connected on exits of the buffer from 11 to 0
|
||
wires from data bus from 0 to 15, for instance:
|
||
|
||
LINK M : 4,5,6,7,8,9,10,11,12,13,14,15
|
||
|
||
12.7.4.Adjusting the buffer V.
|
||
───────────────────────────
|
||
There is possibility to give on internal bus of the address of the
|
||
microinstruction directly signals of inquiry for interruption IRQ0..IRQ7, the
|
||
code of the condition CT, the general interruption INT, readiness of memories
|
||
and external devices RDM and RDD, as well as signals Z and NZ through 12 digits
|
||
buffer V .
|
||
When adjusting You necessary to enumerate all 12 connected signal, for
|
||
instance: LINK V : Z,NZ,IRQ0,IRQ1,IRQ2,IRQ3,
|
||
IRQ4,IRQ5,IRQ6,IRQ7,CT,INT
|
||
|
||
12.7.5. The adjustment of enterings of the multiplexor of conditions.
|
||
─────────────────────────────────────────────────────────────────
|
||
On the entering of the multiplexor of the conditions L[1]..L[6] it is
|
||
possible to give the signals of inquiry for interruption IRQ0..IRQ7, of the
|
||
code of the condition CT, the general interruption INT, readiness of the memory
|
||
and external devices RDM and RDD, as well as signals Z and NZ. The inputting is
|
||
realized apart how for each entering the conditions,and so the general,
|
||
for instance: LINK L : CT,INT,IRQ0,IRQ1,IRQ2,IRQ7
|
||
LINK L[3]: CT
|
||
|
||
12.7.6. Adjustment of registers of inputing of operands of ALU.
|
||
────────────────────────────────────────────────────────────
|
||
4 digits registers of ALU RA and RB allow to give on entering of the choice
|
||
of operands in ALU the data directly from data bus moreover the switching of
|
||
the wires of data bus on the entry of registers can be free and is assigned.
|
||
Adjustment of switchings of wires is realized similarly as adjusting of the
|
||
buffer M, for instance:
|
||
|
||
LINK RA : 11,12,13,14
|
||
LINK RB : 10,9,8,7
|
||
|
||
|
||
Application 1: The table of reserved mnemonics.
|
||
═════════════════════════════════════════════════
|
||
|
||
1)the directives
|
||
──────────────
|
||
|
||
ORG EQU LINK DW ACCEPT INCLUDE MACRO
|
||
|
||
2)the commands
|
||
────────────
|
||
|
||
BC1 and BP2
|
||
ADD SUB OR AND XOR NAND NXOR
|
||
|
||
ED4
|
||
JZ CJS JMAP CJP PUSH JSRP CJV JRP
|
||
RFCT RPCT CRTN CJPP LDCT LOOP CONT TWB
|
||
|
||
BH1
|
||
READ CLR SET RESET DI EI
|
||
|
||
external devices
|
||
R W IN OUT EWH EWL EWA EWB
|
||
|
||
prohibition-permittion
|
||
OEY CEM CEN CEM_C CEM_Z CEM_N CEM_V RLD CCE CI EV
|
||
|
||
the else
|
||
LOAD FIELD
|
||
|
||
3)operands
|
||
────────
|
||
|
||
operation in the ALU
|
||
RQ Z R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 RA RB
|
||
BUS_D NIL
|
||
|
||
inputting the type of the shift
|
||
SR SL SRA SLA SRL SLL SRWA SLWA SRWL SLWL
|
||
|
||
inputting of the carry sign
|
||
Z RM_C RN_C
|
||
|
||
inputting of the exit of the code of the conditions
|
||
Z NZ ZO CO NO VO
|
||
RN_Z RN_C RN_N RN_V
|
||
RM_Z RM_C RM_N RM_V NXORV ZORC
|
||
|
||
command FIELD
|
||
ABSOLUTE BUS_D BC1 BP2 REGS ALU BY4 BH1 CU MEM
|
||
|
||
operations in the device of the processing of the interruptions
|
||
MR SR IR VR
|
||
|
||
operations of the boot of registers of marks
|
||
RM RN FLAGS Z NZ
|
||
|
||
inputting of switchings of the conditions
|
||
CT INT RDM RDD IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 Z NZ
|
||
|
||
4)the else
|
||
────────
|
||
|
||
CP NOT @ . , ; :
|
||
|
||
|
||
Application 2: The Reports about errors.
|
||
══════════════════════════════════════════
|
||
|
||
1) "," Is Expected;
|
||
2) ";" Is Expected;
|
||
3) "." Is Expected;
|
||
4) ":" Is Expected;
|
||
5) "," or ";" are Expected;
|
||
6) The Mnemonics is not recognized;
|
||
7) The Directive is not recognized;
|
||
8) The Command is not recognized;
|
||
9) The Mark is not determined;
|
||
10) Double determination of marks;
|
||
11) Inadmissible using of reserved mnemonics;
|
||
12) Tne Number too big;
|
||
13) Incidental end of file;
|
||
14) Incorrect receiver of the result in ALU;
|
||
15) Incorrect inputting of operand in ALU;
|
||
16) Incorrect of operand of shift;
|
||
17) Incorrect operand of carrying;
|
||
18) For the operand of the condition the switching is not given;
|
||
19) Incorrect operand of condition;
|
||
20) Incorrect operand of the block of the interruptions;
|
||
21) Incorrect operand of the booting of the register of marks;
|
||
22) Incorrect operand of field;
|
||
23) Invalid using of the operand of the modification;
|
||
24) Repeated using of the data field;
|
||
25) Overflow of the upper addresses of operative memory;
|
||
26) "{" Is Expected;
|
||
27) Incorrect operand of the directive LINK;
|
||
28) Number of fakt. and formal operands of macro does not coincide;
|
||
29) Incorrect operand of directive ACCEPT;
|
||
30) The Cross determination of macros;
|
||
31) Wrong parameter of the command line;
|
||
32) is reserved for errors of file operations;
|
||
33) Operand of the condition is Expected;
|
||
34) Repeated accomodation of microinstructions;
|
||
35) Address of accomodation of the microinstructions is more then limiting.
|
||
|
||
|
||
Application 3: Inputting of fields of the microinstruction by default.
|
||
══════════════════════════════════════════════════════════════════
|
||
|
||
1 )field of constants:
|
||
- D = 0; (data bus-transmittion of the data in ALU: 0)
|
||
- OED=1; (permittion of the presenting of the data from field D
|
||
on data bus:is not allowed)
|
||
|
||
2)field of DPU (daya processing unit):
|
||
BC1: - MI = 64; ( the microinstruction: NOP; R+S+CI; A,Q)
|
||
- A = 0; ( address of RGU for writing in Rg A: R0)
|
||
- B = 0; ( address of RGU for writing/reading Rg B: R0)
|
||
- OE = 1; ( the permittion of the issue of the result on data
|
||
niche:is not allowed)
|
||
BP2: - MI = 0; ( microinstruction)
|
||
- E.Z = 0; ( permittion of writing the marks in RM: resolved)
|
||
- E.N = 0;
|
||
- E.C = 0;
|
||
- E.V = 0;
|
||
- OECT= 1; (permittion of issue of code of condition:not resolved)
|
||
- CEM = 1; (permittion of writing the marks in Rg M and N:
|
||
not resolved)
|
||
- CEN = 1;
|
||
- SE = 1; (the permittion of performing the shift:not resolved)
|
||
External registers of inputting of the operand of ALU:
|
||
- MSA = 0; (selection of the sourse of operands in ALU (MIR or RA,
|
||
RB): MIR)
|
||
- MSB = 0;
|
||
- EWA = 1; (recordimg in registers of selection of operands
|
||
of ALU: no)
|
||
- EWB = 1;
|
||
3)field BMM and BPI:
|
||
ED4: - MI = 14; (Microinstruction: CONT)
|
||
- CCE = 1; (permittion of analysis of the condittion: prohibited)
|
||
- COM = 1; (iverting of the entering of the condition: invert)
|
||
- CI = 1; (forming the following address of the microinstruction)
|
||
- RLD = 1; (the permittion of the recording in register of the
|
||
address/counter:prohibited)
|
||
Multiplexor of the selection of the signal of the condition:
|
||
- MS = 0;
|
||
BH1: - MI = 0; (Microinstruction: RESET)
|
||
- EINS = 1; (The Permittion of acceptance of instruction:
|
||
not resolved)
|
||
- EV = 1; (The Permittion of issue of address of interruption of
|
||
vector on DB from ROM: not resolved).
|
||
4)field OM, ED, RA:
|
||
ED: - I = 1; (the signal of the reading from external device:
|
||
not resolved)
|
||
- O = 1; (the signal of recording on external device:
|
||
not resolved)
|
||
MM: - R = 1; (the signal of the reading from memory: not resolved)
|
||
- W = 1; (the signal of the recording in memory: not resolved)
|
||
RgA - EWH = 1; (the signals of recording on register of the address of
|
||
senior and younger digits: not resolved)
|
||
- EWL = 1;
|
||
|
||
|
||
Applications 4: Example of the program.
|
||
══════════════════════════════════════
|
||
|
||
\ EXAMPLE.ESM
|
||
\ Program executes the following actions:
|
||
\ ---------------------------------------
|
||
\ 1) Selection the command of the microprocessor from memory
|
||
\ 2) Unpacking the command and making decision about execution
|
||
\ 3) Executing the command when command corresponds to pattern
|
||
\ 4) Forming the address of the following microinstruction
|
||
|
||
\ View of the command of the microprocessor
|
||
\ -----------------------------------------------
|
||
\ ┌────┬────┬────────┬────────────────┐
|
||
\ │xxxx│xxxx│xxxxxxxx│xxxxxxxxxxxxxxxx│ - Length is 4 bytes
|
||
\ └────┴────┴────────┴────────────────┘
|
||
\
|
||
\ │ │ │ │
|
||
\ │ │ │ └─── 1..15 - a direct operand
|
||
\ │ │ └──────────────── 16..23- is not in use
|
||
\ │ └─────────────────────── 24..27- RGU,that keeps address of receiver
|
||
\ └──────────────────────────── 28..31- code of operation
|
||
|
||
\ Exemples of the patterns of the command
|
||
\ --------------------------------------
|
||
\ ┌────┬────┬────────┬────────────────┐
|
||
\ │0101│1xxx│........│xxxxxxxxxxxxxxxx│ - Length is 4 bytes
|
||
\ └────┴────┴────────┴────────────────┘
|
||
\
|
||
\ │ │ │ │
|
||
\ │ │ │ └─── any value
|
||
\ │ │ └──────────────── is not in use
|
||
\ │ └─────────────────────── any one of registers R8..R15 of the block ALU
|
||
\ └──────────────────────────── operation of the adding
|
||
|
||
\ Initial adjustments
|
||
\ --------------------
|
||
EQU counter : R0 \ let R0 serves as command counter
|
||
ACCEPT counter : 0FEh \ let the current command is located in memory by
|
||
\ address 0FEh
|
||
DW 0FEh : 5800h,0100h \ command of the processor
|
||
ACCEPT R8 : 0123h \ by example of RGU, that keeps address of the
|
||
\ receiver let this address will be 123h
|
||
DW 0123h : 1111h \ let the cell-receiver contains number 1111h
|
||
EQU com_reg1 : R1 \ let R1 serves as register of commands 1
|
||
EQU com_reg2 : R2 \ let R2 serves as register of commands 2
|
||
EQU result : R3 \ let R3 serves as buffer of result of operation
|
||
LINK L[1] : RDM \ switching the signal of readiness of memory on
|
||
\ the first entering of the Multiplexor of the Conditions
|
||
LINK L[2] : CT \ switching the signal of the sign of the execution
|
||
\ of operations in ALU
|
||
EQU selection : 10 \ the address of the subprogram of the selection of
|
||
\ the command of microprocessor from memory
|
||
EQU unpacking : 20 \ similarly for s/p of unpackings
|
||
EQU execution : 30 \ similarly for s/p of execution
|
||
EQU fafc : 40 \ similarly for s/p of forming of the address of
|
||
\ the following command
|
||
EQU error : 50 \ s/p of processing the opcode that differs from
|
||
\ exemple
|
||
LINK RB : 8,9,10,11 \ adjust RB on lines 8..11 of DB, where
|
||
\ the number of RGU, keeping the address of the receiver goes
|
||
|
||
\ Macros, used for usually repeated commands
|
||
\ ---------------------------------------------
|
||
MACRO MOV MOV receiver, the source:
|
||
{ADD receiver, Z, source;}
|
||
MACRO READ_MEM receiver :
|
||
{R; MOV receiver, BUS_D; CJP RDM, CP;}
|
||
MACRO WRITE_MEM source :
|
||
{W; MOV NIL, source; OEY; CJP RDM, CP;}
|
||
|
||
\ subprogram of the selection of the command of microprocessor from memory
|
||
\ -------------------------------------------------------------------
|
||
ORG selection
|
||
|
||
{MOV NIL, counter; OEY; EWL;} \reading the first byte of the command
|
||
{AND NIL, counter, Z; OEY; EWH;}
|
||
{READ_MEM com_reg1;}
|
||
|
||
{ADD counter, 1;}
|
||
{MOV NIL, counter; OEY; EWL;} \read the second and the third byte of the command
|
||
{AND NIL, counter, Z; OEY; EWH;}
|
||
{READ_MEM com_reg2;}
|
||
{SUB counter, Z;}
|
||
|
||
{CJP NZ, unpackings;} \move to s/p of unpacking of the command
|
||
|
||
\ subprogram of the unpacking of the command of the microprocessor
|
||
\ --------------------------------------------------------------
|
||
ORG unpacking
|
||
|
||
{AND result, com_reg1, 1111000000000000%;}
|
||
{XOR result, 0101000000000000%; LOAD RM, FLAGS;}
|
||
{CJP not RM_Z, error;}
|
||
|
||
{MOV NIL, com_reg1; OEY; WB;} \ write the number of RGU, keeping address of
|
||
\the receiver of the result in register RB
|
||
{MOV NIL, RB; OEY; EWL;} \read the receiver of a result in RGU into a buffer
|
||
{AND NIL, counter, Z; OEY; EWH;}
|
||
{READ_MEM result;}
|
||
|
||
{CJP NZ, executions;} \move on s/p of the executing of the command
|
||
|
||
\ subprogram of the executing the command of the microprocessor
|
||
\ ----------------------------------------------------------
|
||
ORG execution
|
||
|
||
{ADD result, com_reg2;}\execute operation of the adding
|
||
|
||
{MOV NIL, RB; OEY; EWL;} \write the formed result into the
|
||
{AND NIL, counter, Z; OEY; EWH;} \cell of memory, by adress of RB
|
||
{WRITE_MEM result;}
|
||
|
||
{CJP NZ, ncaf;} \move to s/p of next command
|
||
\address former
|
||
|
||
\ subprogram of next command address former of microprocessor
|
||
\ ---------------------------------------------------------------------
|
||
ORG ncaf
|
||
|
||
{ADD counter, 4;} \ the next command of the microprocessor is situated by
|
||
\ address, on 4 bytes senior then previous
|
||
{CJP NZ, select;}\ return to the stage of the selection of the command
|
||
|
||
\ The subprogram of processing the opcode different from exemple
|
||
\ ------------------------------------------------------------
|
||
ORG error
|
||
|
||
{CJP NZ, ncaf;}\ as processing of the error does not fall into the functions of given
|
||
\ program, so then simply moves to s/p of
|
||
\ next command address former
|
||
\ end of the program EXAMPLE.ESM
|
||
|
||
|
||
|