Код:
4. ПРИМЕР РАБОТЫ ПАКЕТА
Ниже приводится пример работы пакета НЕЙРОН-МИКРО.
В программе фазы определения содержится описание системы команд
микропроцессора К580ИК80. Файл с программой фазы определения приводится
ниже.
.TITLE FO
.WORD 8
.PAGE 50
B:EQU 3Q#0
C:EQU 3Q#1
D:EQU 3Q#2
E:EQU 3Q#3
H:EQU 3Q#4
L:EQU 3Q#5
M:EQU 3Q#6
A:EQU 3Q#7
DB:DEF 8V%H#00
NOP:DEF 8H#00
STAX:DEF 2B#00,3VQ#0,3Q#2
INX:DEF 2B#00,3VQ#0,3Q#3
INXSP:DEF 8H#33
INR:DEF 2B#00,3VQ#0,3Q#4
DCR:DEF 2B#00,3VQ#0,3Q#5
RLC:DEF 8H#07
RAL:DEF 8H#17
DAA:DEF 8H#27
STC:DEF 8H#37
DAD:DEF 2B#00,3V*Q#0,3Q#1
DADSP:DEF 8H#39
LDAX:DEF 2B#00,3Q#3,3VQ#2
LDAXSP:DEF 8H#3A
DCX:DEF 2B#00,3V*Q#0,3Q#3
DCXSP:DEF 8H#3B
RRC:DEF 8H#0F
RAR:DEF 8H#1F
CMA:DEF 8H#2F
CMC:DEF 8H#3F
MOV:DEF 2B#01,3VQ#0,3VQ#0
ADD:DEF 2B#10,3Q#0,3VQ#0
ADC:DEF 2B#10,3Q#1,3VQ#0
SUB:DEF 2B#10,3Q#2,3VQ#0
SBB:DEF 2B#10,3Q#3,3VQ#0
ANA:DEF 2B#10,3Q#4,3VQ#0
XRA:DEF 2B#10,3Q#5,3VQ#0
DRA:DEF 5B#10110,3VQ#0
CMP:DEF 5B#10111,3VQ#0
RNZ:DEF 8H#C0
RNC:DEF 8H#D0
RPO:DEF 8H#E0
RP:DEF 8H#F0
POP:DEF 2B#11,3VQ#0,3B#001
POPPSW:DEF 8H#F1
XTHL:DEF 8H#E3
DI:DEF 8H#F3
PUSH:DEF 2B#11,3VQ#0,3B#101
PUSHPSW:DEF 8H#F5
RST:DEF 2B#11,3VQ#0,3B#111
RZ:DEF 8H#C8
RC:DEF 8H#D8
RPE:DEF 8H#E8
RM:DEF 8H#F8
PCHL:DEF 8H#E9
SPHL:DEF 8H#F9
XCHG:DEF 8H#EB
EI:DEF 8H#FB
.WORD 16
DAN:SUB 8V%H#00
MVI:DEF 2B#00,3VQ#0,3Q#6,DAN
OUT:DEF 8H#D3,DAN
ADI:DEF 8H#C6,DAN
SUI:DEF 8H#D6,DAN
ANI:DEF 8H#E6,DAN
ORI:DEF 8H#F6,DAN
IN:DEF 8H#DA,DAN
ACI:DEF 8H#CE,DAN
SBI:DEF 8H#DE,DAN
XRI:DEF 8H#EE,DAN
CPI:DEF 8H#FE,DAN
.WORD 24
ADR:SUB 16V!H#0%
LXI:DEF 2B#00,3VQ#0,3Q#1,ADR
LXISP:DEF 8H#31,ADR
SHLD:DEF 8H#22,ADR
STA:DEF 8H#32,ADR
JNZ:DEF 8H#C2,ADR
JNC:DEF 8H#D2,ADR
JPO:DEF 8H#E2,ADR
JP:DEF 8H#F2,ADR
JMP:DEF 8H#C3,ADR
CNZ:DEF 8H#C4,ADR
CNC:DEF 8H#D4,ADR
CPO:DEF 8H#E4,ADR
CP:DEF 8H#F4,ADR
JZ:DEF 8H#CA,ADR
JC:DEF 8H#DA,ADR
JPE:DEF 8H#EA,ADR
JM:DEF 8H#FA,ADR
CZ:DEF 8H#CC,ADR
CC:DEF 8H#DC,ADR
CPE:DEF 8H#EC,ADR
CM:DEF 8H#FC,ADR
CALL:DEF 8H#CD,ADR
RET:DEF 8H#C9,ADR
.END
В программе фазы ассемблирования содержатся ассемблируемые команды
пользователя с заменами полей. Этот файл приводится ниже.
.TITLE FA
MVI C,H#A
LXI D,MASS
MVI B,H#0
MET:DCR C
MOV A,C
JZ KON
INX D
LDAX D
ADD B
MOV B,A
INX D
DCR C
MOV A,C
JNZ MET
KON:MOV A,B
STAX D
MASS:DB H#01
DB H#FE
DB H#56
DB H#73
DB H#A0
DB H#01
DB H#23
DB H#17
DB H#44
DB H#6B
.END
В результате работы фазы ассемблирования формируется объектный
файл, содержащий двоичный код программы пользователя. Файл объектного
кода приводится ниже.
00000=00001110
00001=00001010
00002=00010001
00003=00011000
00004=00000000
00005=00000110
00006=00000000
00007=00001101
00008=01111001
00009=11001010
00010=00010110
00011=00000000
00012=00010011
00013=00011010
00014=10000000
00015=01000111
00016=00010011
00017=00001101
00018=01111001
00019=11000010
00020=00000111
00021=00000000
00022=01111000
00023=00010010
00024=00000001
00025=11111110
00026=01010110
00027=01110011
00028=10100000
00029=00000001
00030=00100011
00031=00010111
00032=01000100
00033=01101011