Главная » Просмотр файлов » Д. Кнут - Искусство программирования том 1

Д. Кнут - Искусство программирования том 1 (1119450), страница 55

Файл №1119450 Д. Кнут - Искусство программирования том 1 (Д. Кнут - Искусство программирования том 1) 55 страницаД. Кнут - Искусство программирования том 1 (1119450) страница 552019-05-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 55)

Нумерация таких команд И1Х, квк ЮА, Ы1, ..., ЮХ и других подобных команд, подсказывает нам, что сохранять имитируемое содержимое этих регистров в последовательных ячейках нужно так: АИЕС, 11ЕЕС, 12ИЕС, 13ЕЕС, 14ИЕС, 15ИЕС, 16ИЕС, ХИЕС, ЛЖС, ХЕИО. Здесь ХЕИΠ†э "регистр",постоянно заполненный нулями. Позиции ПИЕС н ХЕЕО выбраны в соответствии с кодами операций команд ЯТЛ и ЯТХ. Согласно нашей философии написания имитатора, т. е. ориентируясь на любой компьютер, а не только на И1Х, будем рассматривать знаки как независимые части регистра.

Например, во многих компьютерах нельзя представить число "минус нуль", а в И1Х можно, поэтому в данной программе знаки всегда будут обрабатываться особым образом. В ячейках АЕЕС, 11кЕС, ..., ХЕЕО всегда будут храниться абсолютные значения величин, содержащихся в соответствующих регистрах. В другом наборе ячеек. использующемся в данной программе, (Я1СМА, 51СМ1, ..., 51СИХ), будут содержаться значения +1 нли — 1, в зависимости от знака соответствующего регистра (т.

е. "плюс" это или "минус"). В программе-интерпретаторе, как правило, есть раздел, который представляет собой орган центрального управления. Он вступает в действие между интерпретируемыми командами. В нашем случае после выполнения каждой сымнтированной команды программа переходит к ячейке СТС5Е. Управляющая программа выполняет одинаковые для всех команд действия; она разделяет команду на составные части и помещает этн части в такие места, откуда их будет удобно выбирать для дальнейшего использования.

В приведенной ниже программе используются следующие установки: г15 — адрес ячейки, .в которой сохраняется следующая команда; г15 — М (адрес текущей команды с учетом индексирования); г14 — код операции текущей команды; г13 — Г-поле текущей команды; 1ИЯТ вЂ” текущая команда. Программа М. Увеличить значение счетчика адреса Взять абсолютное значение адреса Присоединить знак к адресу Проверить поле индекса Это нульэ Код операции ) 64т Взять из таблицы время выполнения Взять адрес соответствующей программы Перейти к оператору (Защита от переполнений ) 1 Советую читателю обратить особое внимание на строки 034 — 036 "Таблица- переключатель" иэ 64 операторов — это составная часть имитатора, позволяющая ему быстро переходить к нужной программе для выполнения текущей команды.

Это важный метод экономии времени (см упр. 1 3 2 — 9). В состоящей нэ 64 слов таблице-переключателе РРТАВЬЕ также хранится время выполнении для различных операторов, содержимое этой таблицы определяется в следующих строках. МОР СТСРЕ(1) АРР АРР(2) ЯОВ ЯОВ(2). НШ. МШ.(10) 087 088 080 010 Таблица кодов операций, ее типичные элементы имеют внд "ОП программа(время)" 001 е ИМИ 002 008 ВЕО1И 004 006 006 007 СТСЕЕ 008 Т1МЕ 000 010 011 012 018 014 016 01б 017 018 012 020 021 022 028 021 026 02б 027 1Н 028 020 080 081 082 088 084 086 Обб ТАТОР И 0510 ЯТЕ ЯТХ ЯТХ ЕМТб ЕРА 1МСА ЯТА (.РА ЯТА 1МСб ЬРХ ЯРАХ ЯТА Ы2 122 РЕС2 12Р (.РА (.РХ 31АХ АРР СИРА 1МЕ ЯТА ).РЗ 1,05 ЕР4 РЕС4 14Р (.РА ЯТА Ы2 1ИР'э' 1МР 1Х 3500 Т1МЕ(О:2) РЧТОО СРИР1 О СРРСК О СРОСК О,б 1МЯТ 1 1МЯТ(1:2) 5 М 1ИЯТ(3:3) 1Р 6 1МРЕХЕВВОВ 31ОИ6,2 16ВЕО,2 5 М ХЕВР(1:3) АРРВЕВВРВ И 1МЯТ(4:4) М 1ИЯТ(5:5) 63 ОРЕВВОВ ОРТАВРЕ,4(4:4) Т1МЕ(О:2) ОРТАВ15,4(0:2) 0,2 0,2 Имитируемая память, начиная с 0000 и далее.

ОЧТОΠ— имитируемый флаг переполнения. СОИР1, ш1 или О, — флаг сравнения Взять первую команду из нулевой ячейки Начало выполнения управляющей программы. Указывает на ячейку, содержащую время выполнения предыдущей команды (строка 033) гА +-имитируемая команда Определен недопустимый индексэ Взять знак индексного регистра Взять абсолютное значение индексного регистра.

Присоединить знак Сложение с учетом знаков для индексирования. Результат слишком велнкэ Если да, имитировать ошибку В противном случае адрес найден г13 +- Р-поле г13 е- Хб г14 +- С-поле РТЧ РТЧ(12) НЕТ ЯРЕС(1) БЕА ЯН1РТ~2) МОЧЕ МОЧЕ(1) У.РА ГОАР(2) У.Р1 ГОАР,1(2) 1.Рб У.РАР,1(2) У.РХ ГОАР(2) ЕВАМ ЕОАРМ(2) У.Р1М У.ОАРМ, 1(2) 061 068 068 ОЦ ЫХМ У.ОАРМ(2) ЯТА БТОНЕ(2) 060 061 ЯТ1 ЯТОНЕ(2) БТЕ ЯТОРЕ(2) ЗВОН УВОЯ(1) 10С 10С(1) 1М 1М(1) РОТ ООТ(1) 3НЕР .УМЕР(1) 1ИР ЛУМР (1) ЮАР НЕСЛУИР (1) 1ХР НЕСЛУМР(1) 1МСА АРРНОР(1) ТМС1 АРРНОР,1(1) 081 085 086 1МСХ АРРНОР(1) СИРА СОМРАНЕ(2) 100 ОРТАВЕЕ СИРХ СОМРАНЕ(2) А (Элементы, соответствующие операторам 101, У.РУМ и ТИСАМ, имеют дополнительную запись ", 1", чтобы сделать поле (3: 3) ненулевым.

Это используется ниже, в строках 289 и 290, для указания того, что после имитации данных операций необходимо проверить размер величины, содержащейся в соответствующем индексном регистре.) В следующей части программы-имитатора просто перечисляются ячейки, которые используются для хранения содержимого имитируемых регистров. 101 АНЕС СОМ 108 ?1НЕС СОМ 107 1ВНЕС СРМ 108 ХНЕС СОМ 100 1НЕС СОМ 110 ЕЕНО СОМ 111 Я1СМА СОМ 118 ЯТСМ1 СОМ 041 048 018 0Д 046 046 060 070 071 078 078 071 076 076 077 0 Абсолютное значение регистра А.

О Абсолютное значение индексных регистров. О 0 Абсолютное значение регистра Х. О Абсолютное значение регистра Л О Нулевая константа для "БТХ". 1 Знак регистра А. 1 Знаки индексных регистров. СОИ СОИ 1 Знак регистра Х. СОИ 1 Знак регистра Л. СОИ 1 Знак, сохраняемый "ЯТХ". СОИ О Имитируемая команда. СОИ 0 Флаг сравнения СОИ О Флаг переполнения. СОИ О Имитируемое время выполнения. А теперь рассмотрим три подпрограммы, используемые имитатором. Первой цдег подпрограмма ИЕИОНУ.

Последовательность вызова: ЛИР ИЕМОНТ. Состояние при входе: г15 = допустимый адрес памяти (в противном случае подпрограмма перейдет к ИЕИЕННОН). гХ = знак слова в ячейке памяти г15; гА = абсолютное значение слова в ячейке памяти г15. Состояние при выходе 120 е ЙОДЙРОГРАИИЫ 12б МЕИОНТ ЯТЛ 9Р 127 ЛЯИ МЕИЕННОН 122 СИР5 =ВЕС1И= Ь20 ЛСЕ ИЕИЕННОН 120 ЬРХ 0,5 121 ЕИТА 1 122 ЯНАХ 5 122 ЬОА О,Б(1:5) 124 9Н 3ИР Подпрограмма выборки из памяти. Имитируемая память находится в ячейках с ОООО до ВЕС1И вЂ” 1.

гХ +- знак слова. гА +- абсолютное значение слова. Выход. 1 Подпрограмма РСНЕСК обрабатывает спецификацию частичного поля и проверяет, имеет ли оно вид 8Ь+ В, где 1 < И < 5. Последовательность вызова Состояние при входе: Состояние при выходе: Подпрограмма проверки поля. гАХ +- спецификация поля. гА +- Ь, гХ < — В.. Н>5? гП +- 1,. Выйти, если 1, < В..

117 81СИб 112 81СИХ 110 81СИ1 120 Я1СИЕ 121 1ИЯТ 122 СОИР1 122 ОЧТОС 124 СЬОСК 120 РСНЕСК 12б 107 122 120 ЦО 141 Ц2 Цу 144 Цб 9Н Цб ЯТЛ 9Р ЕИТА О ЕИТХ 0,3 О11? =8= СМРХ =5= ЛС РЕННОН ЯТХ Н ЯТА 1. ЬО1 СИРА Н ЗЬЕ ЗИР РЕННОН ЛИР РСНЕСК. г13 = допустимая спецификация поля (в противном случае подпрограмма перейдет к РЕННОН). гА = г11 = Ь, гХ = В.. Последняя подпрограмма, СЕТЧ, находит величину Ч (т. е. соответствующее поле ячейки Ы), используемую различными операторами И1Х, как определено в разделе 1.3.1. Последовательность вызова: 5МР СЕТЧ. Состояние при входе: г13 = допустимый адрес памяти; г13 = допустимое поле.

(Если оно недопустимо, то регистрируется ошибка, как и выше.) Состояние при выходе: гА = абсолютное значение Ч; гХ = знак Ч; г11 = Ь; г12 = -К. Второй вход: 5МР СЕТАЧ, используется только в операторах сравнения для выборки поля из регистра. Специальный вход (см строку ЗСО). А теперь рассмотрим программы для каждого оператора в отдельности. Данные программы приведены здесь для полноты изложения, поэтому читателю стоит изучить лишь некоторые из них, если, конечно, у него нет важных причин для более тщательного изучения.

Рекомендуется изучить программы для операторов ЯУВ и 5ОМР: это наиболее типичные примеры. Обратите внимание на то, как можно аккуратно объединить программы для аналогичных операций, а также на то„как программа ЗОМР использует другую таблицу-переключатель для управления этим типом перехода. 150 э ОТДЕЛЬНЫЕ ОПЕРАТОРЫ 160 АОО 1МР СЕТЧ 161 ЕМТ1 О 160 5МР 1МС 165 ЯОВ 1МР СЕТЧ 164 ЕМТ1 О 165 5МР ОЕС 166 167 МО1.

168 160 170 171 170 175 Загрузить значение Ч в гА и гХ Пусть гП указывает на регистр А Перейти к программе "увеличения" Загрузить значение Ч в гА и гХ Пусть гП указывает на регистр А Перейти к программе "уменьшения". Загрузить значение Ч в гА и гХ. Знаки одинаковыл Занести в гХ знак результата Поместить его в оба имитируемых регистра. Ц7 СЕТАЧ Ц6 Ц0 СЕТЧ 150 151 150 1Н 150 154 155 156 2Н 157 150 9Н ЯТ5 9Р ЗМР 1Р ЯТ5 9Р 1МР РСНЕСК 5МР МЕМОЕЧ 112 2Р ЕМТХ 1 ЯЬА -1, 1 ЯМА -1,1 ЬО2М й ЯМА 5,2 5МР Подпрограмма для нахождения Ч. Обработать поле и установить гП +- 1. гА +- абсолютное значение памяти, гХ +- знак. Знак включен в поле? Если нет, установите положительный знак. Обнулите все байты слева от этого поля Сдвиг вправо в соответствующую позицию.

Выход. 3 ИОЬ АКЕС 0МР ЯТОКЕАХ ЬОА 31СМА ЯТА 31СМХ ЗИР СЕТЧ СМРХ 31СМА ЕИТХ 1 1Е ее2 ЕММХ 1 ЯТХ 31СИА ЯТА ТЕМР ЬОА АКЕС ЬОХ ХКЕС О1Ч ТЕИР ЯТА АКЕС ЯТХ ХКЕС ЛНОЧ СЧСЬЕ ЕНТХ 1 ЯТХ ОЧТОС ЛМР СЧСЬЕ ЗИР СЕТЧ ЕМТ1 47,4 ЯТХ ТЕНР ЬОХМ ТЕИР ЗМР ЬОАР1 ЛМР СЕТЧ ЕМТ1 55,4 ЯТА АКЕС,1 ЯТХ Я1СМА,1 ЛНР 31ЕЕСНК ЗМР РСНЕСК ЛМР НЕМОК? 31Р 1Р ЕИТ1 1 ЬОХ 31СМА+39,4 ЬО2И К ЯКАХ 5,2 ЬРА АКЕС+39,4 ЯЬАХ 5,2 ЕММ2 0,1 ЯКАХ 6,2 ЬОА 0,5 ЯКА 5,2 ЯРАХ -1,1 ЯТХ 0,5 дНР СЧСЬЕ г12 з — — Ь.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее