Файл: Кастин, О. М. Система первичной обработки метеорологической информации.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.10.2024

Просмотров: 64

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

где*66і’ - строка, задающая номер СП, реализующей обращения к СП библиотеки. Оператор процедуры, выполняющий обращение к СП библио­

теки

с номером N

, имеет

вид

 

 

 

SP ( V

, а, ъ , ... , к

); ,

где

а, ъ, ... ,к

являются фактическими

параметрами исполь­

зуемой СП, определяющими ее работу. В качестве

фактических пара­

метров оператора обращения к СП разрешается использовать: I) поло­ жительные числа (числа без знака), 2) простые переменные, 3) иден­

тификаторы массивов,

4)

идентификаторы меток

и 5) строки

вось­

меричных цифр.

При

этом,

если используется фактический параметр

первых четырех типов, то в обращении к СП- N

, формируемом

СП-

661, указывается

адрес фактического параметра,

а фактический

па­

раметр-строка задает информацию в виде двоичной константы. Операции над машинными словами, необходимые для обработки плот­

но размещенных в памяти

3BU данных,

были

реализованы при

помощи

рассмотренных ниже

средств.

 

 

 

 

 

1.3.

Отмеченная в предыдущем разделе специфика представления в

TAB логических значений

true и faia«

и программирования

логи­

ческих выражений

А Л В

и А ѵ в

не позволяет

использовать

зна­

ки операций

л и

ѵ

в их обычном

смысле при

работе с

частями

машинного слова, так как для выполнения побитного логического ум­

ножения слов А и В пришлось

бы писать

выражение

А ѵ В, а для

выполнения побитного логического

сложения

двух слов

необходимо

было бы писать

выражение АлВ .

С другой

стороны,

использование

знаков л и

V

в

одном алгоритме

для изображения обычных алголь-

ных операций

над

логическими переменными

и операций

над машинными

словами затрудняло бы написание и чтение такого алгоритма. По этим причинам для обозначения операции побитного логического умножения двух слов и операции побитного логического сложения двух слов бы­

ли введены, соответственно, символы * и

I

(для обозначения

опорации умножения на машине Гидрометцентра СССР используется

знак

"х" ). Эти символы внесены в таблицу

символов

транслятора

TAB и при работе блока ввода, выполняющего перекодировку основных

символов языка во внутренний двоичный код,

символу

*

ставится#

соответствие то же самое двоичноо число, что

и символу

ѵ

,а сим­

волу

I

то же самое число,

что

и символу

л

. При печати АЛГОЛ-

тѳкста

на алфавитно-цифровое

печатающее

устройство

(АЦПУ)

сим­

волу

I

соответствует символ

*

, а символу

* соответствует

такой

ко

символ.

 

 

 

 

 

 

 

р



Поокольку

операция

логического

умножения

л

имеет

более высо­

кий приоритет, чем операция логического сложения

ѵ , из изложен­

ного выше следует, что операция

побитного логического

сложения

I

имеет более

высокий приоритет,

чем

операция

побитного

логическо­

го умножения

* . Эту

особенность

необходимо

было

учитывать

при

написании выражений,

содержащих

операции над словами. Для измене­

ния порядка

выполнения операций

как обычно использовались круглые

скобки.

 

 

 

 

 

 

 

 

1.4.Для реализации остальных операций над частями машинных

слов, за исключением уже рассмотренных выше, были составлены

в

включены в библиотеку операционной системы специальные стандарт­

ные программы, краткое описание возможностей которых приведено

в

разделах

І.4.І-І.4.4, 1.5 и і.б.

 

 

 

 

 

 

 

Отметим, что поскольку фактическими параметрами оператора

об­

ращения к СП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. sp(V

, а,

ъ,

...

, к);

 

 

 

 

не

могут

быть отрицательные числа, переменные с индексами и

дру­

гие

более

сложные

выражения

(разд. 1.2), в приведенных

в приложе­

нии АЛГОЛ-тѳкстах обращения к СП, выполняющим операции над частя­

ми невинных слов, осуществляются не непосредственно, а через

со­

ответствующие процедуры-функции, описания которых включены

 

в

АЛГОЛ-тѳксты. Например, операция проверки побитной тождественнос­

ти двух слов выполняется процедурой-функцией

 

 

 

 

Boolean

procedure togd ( А ,

 

В );

Boolean

A, В;

 

 

 

 

 

 

 

begin

Boolean

C,

R;

 

 

 

 

 

 

 

 

 

 

 

С: -

A;

R:

«

В;

 

 

 

 

 

 

 

 

 

 

 

SP (‘704’ , C,

R, R

);

togd: = R

 

 

 

 

 

 

 

end ; .

 

 

 

 

 

 

 

 

 

 

 

Обращение к СП через процедуры не только значительно расширяет

возможность СП с точки зрения используемых при обращении

к

ним

фактических параметров, но делает описание алгоритма

обработки

данных более общим, наглядным и доступным для понимания.

 

 

 

I.4.I.

Сдвиг машинного

слова выполняется при помощи СП,

кото­

рой присвоен номер 701.

Оператор

обращения к СП-701 имеет вид

 

 

 

 

 

 

SP(‘70l’, А,

n,

R

,

 

 

 

 

где А

-

переменная типа

Boolean. значение которой надо сдвинуть;

 

п

-

переменная типа

integer

 

(или число), определяющая направ­

ление и

величину сдвига: при 0 <

п

< 4 8

происходит

сдвиг

слова

влево

на

 

п битов,

а при

100

«s n

< I48 - одвиг

слова

вправо

на

л

-

і о о

 

битов;

 

 

 

 

 

 

 

 

 

 

 

10


R - переменная типа Boolean , которой присваивается значение результата»

1.4.2. Побитное сравнение двух слов выполняется при помощи СП, имеющей номер 704. Оператор обращения к СП-704 имеет вид

SP(‘704’, а, в,

S )j ,

 

 

 

где А и В - переменные типа Вооівап

, значения

которых

сравнива­

ются. Переменная R должна быть

также

типа Boolean . Этой перемен­

ной присваивается значение true , если

значения

А и В

тождест­

венны побитно, и значение false

-

в противном случае.

 

 

1.4.3. Для выделения части слова

или выделения части

слова

с

нормализацией, т.ѳ. с преобразованием части слова, понимаемой как двоичное целое число, в тип integer , используется СП с номером 703. Оператор обращения к этой СП имеет вид

ЗР( 703 , А, 1, п, В, к )I I

где А - переменная типа Boolean , из значения которой происходит

выделение части

слова;

 

 

 

 

 

1 -

переменная

типа integer

(или число), значение

которой

определяет номер левого бита выделяемой части слова;

 

 

п -

переменная

типа integer

(или число), значение

которой

определяет количество битов выделяемой части слова;

 

 

R -

переменная,

которой присваивается значение

результата,

причем в случае выделения части слова без преобразования н

типу

integer

эта переменная должна быть типа Boolean

, а при выделе­

нии с преобразованием - типа integer

;

 

 

 

к -

число, определяющее режим работы СП: при

t =

0 выделяет­

ся часть

слова,

а при к ^ о - часть

слова выделяется

о преобразо­

ванием К ТИПу

Integer .

 

 

 

integer в

1.4.4. Для преобразования значения переменной типа

двоичное

целое число и размещения его

с і -го бита в

слове

ис­

пользуется СП-702, оператор обращения к которой имеет

вид

 

 

 

 

SP(*702’, А, 1, В

,

 

 

 

где А - переменная типа integer (или число), требующая преобразо­ вания;

1 - переменная типа integer (или число), определяющая номер бита в слове, с которого надо разместить получившееся двоичное число (т.ѳ. куда попадает младший бит двоичного числа);

я - переменная типа Boolean , которой присваивается резуль­ тат, причем все биты слова-результата, не занятые значением дво­ ичного числа, имеют значение 0.

II


1.5. Первоначальное присвоение значений логический переменный» которые используются для работы с частями слова» выполняется дву­ мя способами.Первый заключается в использовании имеющихся во вход­ ном языке транслятора TAB оператора ввода З-nput (А,В,...,К) и опе­ ратора обмена оору (...). Второй способ заключается в использова­ нии СП,имеющей номер 705»формирующей двоичные константы. Оператор обращения к СП-705 имеет вид

SP(‘70 5 ’, R , п ,

 

 

 

 

 

 

 

 

а і,И

>

 

1

 

 

 

J

П,6^П,7®П^

 

 

І ^ л , «

,

а л , е (1п , « а

п ,)5 а п,№ ’ ) ^

' 9

где в

- идентификатор простой переменной или

массива

типа Boolean;

п

- переменная типа integer (или

число),значение

которой

оп­

ределяет количество формируемых двоичных констант;

 

 

ÜL,j. - восьмеричная

цифра »причем

в

параметрах-строках могут

быть

указаны лишь

значащие

цифры.

 

 

 

 

 

 

 

Пример.

В

результате выполнения

оператора

 

 

 

 

 

SP

(‘705’ , В ,2,

 

 

 

 

 

 

 

 

 

 

 

4702’ , ‘51’ , ‘0’ , ‘6275’,

 

 

 

 

 

 

 

 

‘0’, ‘2’, ‘7035’ , ‘1400’ );

 

 

 

 

в

[I]

будет

иметь

значение

(4702

005100

006275),

а

 

В

[2] - (0000 000270 351400).

 

 

 

 

 

 

І.б. Для отладки алгоритмов системы ПООЫИ.а такие в процессе

ее эксплуатации необходимо иметь воэмохность выдавать

первичную

информацию

в удобной форме на

АЦПУ. В

этих

целях была составлена

и включена в библиотеку операционной системы стандартная программа,получившая номер 706. Исходной информацией для СП-706 является массив знаков кода МТК-2 (приложение і),расположенных в п после­ довательных словах по восемь знаков в каждом слове,за исключением,

быть может,последнего

(разд.2.2). Оператор

обращения к СП-706

име­

ет вид

SP (‘706’, А , п , В

); ,

 

 

 

 

 

где А - идентификатор массива типа Вооівап

, элементы которого

 

(слова) оостоят из знаков кода МТК-2;

 

 

 

п

- количество слов от начала массива,

которые

подлежат выда­

че на

АЦПУ;

 

 

 

 

В

- массив типа Boolean длиной в 620 слов, который служит

бу­

фером для перевода выдаваемой информации в

код АЦПУ.

 

В результате работы СП-706 информация будет выдана на АЦПУ

 

страницами по 28 строк

и но два столбца в странице.

Расположение

текста в столбце таблицы такое не,как на обычном телетайпном руло­ не.

12