Середовище програмування MADL

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Середовище програмування MADL » MADL2023 » MD00 » МD00. Помилки компіляції


МD00. Помилки компіляції

Сообщений 1 страница 9 из 9

1

Помилки компіляції.

У разі помилки компілятор відразу зупиняє роботу і виводить інформацію про помилку.
Процедури, в яких може виникнути помилка:
SetAddrRAM, DB, StartProgram, FINALCompiler, FillChar, ComA, ComB, ComC,
FillDB, FillDW, DW, FillDD, DD, FillDQ, DQ, DString255, SetAddrRAM2.

Винятком зі списку, тобто процедури, які ігноруються, є процедури, які не впливають на компіляцію самого коду КР-580: INITCompiler, SetfSaveLVT, SetfSE,SetCLU, SetfCLU, SetfSEi, SetFileOutError, SetfError, SetfErrorfCLU, SetErrorCLU, SetFileOutReportMD00, SetReportMD00TXTinFile.

Під час помилок компіляції звіт виводиться у файл (за замовчуванням "Error.txt")
або ж згідно з налаштуваннями процедурами SetfErrorTXTinFile, SetFileOutError,
SetfError, SetfErrorfCLU, SetErrorCLU.

Файл звіту про помилку має такий вигляд:

MD00:
CodeError:=1
ValueError:=49153
Command:=9
RemStrERR:= ремарка 3
======================

Помилка у процедурі: ComA (однобайтова команда КР580)

* Неприпустима адреса компіляції.

Значення "CodeError:=1" означає код помилки, див. Коди помилок компіляції.

Значення "ValueError:=49153", може означати адресу або передається в процедуру параметр, залежно від процедури, див. Коди помилок компіляції.

Значення "Command:=9" означає номер процедури в якій виникла помилка, див. Список усіх процедур та їх кодів.

Значення "RemStrERR:= ремарка 3" означає (останню) ремарку зроблену користувачем ( у програмі було Rem('ремарка 3'); ), до появи помилки компіляції. "Помилка в процедурі: ComA (однобайтова команда КР580)" - опис словами згідно з "Command:=9".

"* Неприпустима адреса компіляції." - Опис словами, згідно "CodeError:=1".

Дивіться також:
MADL. Компілятори для MADL
MADL. Аналогія мнемо МАДЛ, КР580, АСМ
MD00. Вступ.
MD00. Процедури мнемонікою АСМ (КР580) в MADL
MD00. Процедури мнемонікою MADL в MADL
MD00. Процедури, функції їх коди та їх опис
Навігатор форуму

2

3

1='* Неприпустима адреса компіляції.'
Помилка виникає під час виконання процедур SetAddrRAM, DB, FillChar, ComA, ComB, ComC, FillDB, FillDW, DW, FillDD, DD, FillDQ, DQ, DString255.

Пояснення.
У процедурі SetAddrRAM - введена адреса, що перевищує 49151.
У процедурах DB, FillChar, ComA, ComB, ComC, FillDB, FillDW, DW, FillDD, DD   FillDQ, DQ, DString255,  - при їх виконанні адреса компіляції перевищила 49 151.

Приклад виникнення помилки:

Код:
BEGIN
INITCompiler;
                    REM('Ремарка 1');
SetAddrRAM($FFFF); {ВИНИКАЄ ПОМИЛКА}
                    REM('Ремарка 2');
FINALCompiler;
END.

4

2='* В адресу вже було компілювання.'
Помилка виникає під час виконання процедур SetAddrRAM, DB, FillChar, ComA, ComB, ComC, FillDB, FillDW, DW, FillDD, DD, FillDQ, DQ, DString255, SetAddrRAM2

Пояснення.
У процедурі   SetAddrRAM, - вказана адреса, в яку вже був скомпільований код.
У процедурі   SetAddrRAM2, - в адресу $8000 (32768) вже був скомпільований код.
У процедурах  DB, FillChar, ComA, ComB, ComC, FillDB, FillDW, DW, FillDD, DD, FillDQ, DQ, DString255, - при їх виконанні виникла така адреса, у який вже було скомпільовано код.

Приклад виникнення помилки:

Код:
BEGIN
INITCompiler;
                    REM('Ремарка 1');
SetAddrRAM($0000);
Nop;
                    REM('Ремарка 2');
SetAddrRAM($0000); {ВИНИКАЄ ПОМИЛКА}
Nop;
                    REM('Ремарка 3');
FINALCompiler;
END.

5

3='* Не вказано точку старту ( StartProgram; ).'
Помилка виникає за фінальної компіляції у процедурі FINALCompiler.

Пояснення.

У програмі не вказано точку старту, тобто. "StartProgram;".

Приклад виникнення помилки:

Код:
BEGIN
INITCompiler;
                    REM('Ремарка 1');
SetAddrRAM($0000);
Nop;
                    REM('Ремарка 2');
FINALCompiler;   {ВИНИКАЄ ПОМИЛКА}
END.

6

4='* Відсутність коду в програмі.'
Помилка виникає за фінальної компіляції у процедурі FINALCompiler.
Пояснення.
У програмі не застосовувалася жодна з команд, які генерують код, тому, якийсь код у програмі просто відсутній. Компілювати щось нічого! :-) Яскравий приклад у якому можлива така помилка компіляції:

Приклад виникнення помилки:

Код:
BEGIN
INITCompiler;
                    REM('Ремарка 1');
SetAddrRAM($0000);
                    REM('Ремарка 2');
StartProgram;
                    REM('Ремарка 3');

FINALCompiler; {ВИНИКАЄ ПОМИЛКА}
END.

7

5='* Повторне вказання точки старту ( StartProgram; ).'
Помилка виникає при повторному виконанні процедури StartProgram.
Пояснення.
У програмі необхідно вказувати точку старту "StartProgram;" тільки один раз.

Приклад виникнення помилки:

Код:
BEGIN
INITCompiler;
                    REM('Ремарка 1');
SetAddrRAM($0000);
                    REM('Ремарка 2');
StartProgram;
                    REM('Ремарка 3');
StartProgram;   {ВИНИКАЄ ПОМИЛКА}
                    REM('Ремарка 4');
FINALCompiler;
END.

8

6='* Відсутня ініціалізація програми.'
Помилка виникає за фінальної компіляції у процедурі FINALCompiler при відсутності ініціалізації програми, тобто відсутності першої процедури INITCompiler;

Приклад виникнення помилки:

Код:
BEGIN
{ПОМИЛКА При відсутності INITCompiler;}//INITCompiler;
                    REM('Ремарка 1');
Nop; {ВИНИКАЄ ПОМИЛКА}
                    REM('Ремарка 2');
FINALCompiler;
END.

9

Коди процедур та можливі помилки компіляції:

1.SetAddrRAM   2.DB
можливі помилки:
          1='* Неприпустима адреса компіляції.'
          2='* В адресу вже було компілювання.'

3.StartProgram
можливі помилки:
          5='* Повторне вказання точки старту ( StartProgram; ).'

5.FINALCompiler
можливі помилки:
          3='* Не вказано точку старту ( StartProgram; ).'
          4='* Відсутність коду в програмі.'
          6='* Відсутня ініціалізація програми.'

8.FillChar   9.ComA   10.ComB   11.ComC   12.FillDB   28.FillDW
29.DW   32.FillDD   33.DD   34.FillDQ   35.DQ   37.DString255
можливі помилки:
          1='* Неприпустима адреса компіляції.'
          2='* В адресу вже було компілювання.'

38.SetAddrRAM2 
можливі помилки:
          2='* В адресу вже було компілювання.'


Вы здесь » Середовище програмування MADL » MADL2023 » MD00 » МD00. Помилки компіляції