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

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

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

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

Буфера ссылаются один на другой. СОИ ВОРО+10 ЕИО БТАЕТ Конец программы. 1 В отношении этой программы необходимо отметить следующие интересные моменты. 2, Как и в программе М, псевдооперация ЕОО из строки 03 определяет эквивалент символа. В данном случае эквивалентом 1. назначено число 500. (В строках 10 — 24 этой программы Ь представляет количество простых чисел, которые нужно найти.) Обратите внимание, что в строке 05 символу РЕ1МЕ присваивается отрицательный эквивалент; вообще говоря, эквивалентом символа может быть любое число, состоящее из пяти байтов и знака. В строке 07 эквивалент ВОР1 вычисляется по формуле ВОРО+25, что в результате дает 2025. В й1ХАЬ арифметические операции над числами можно выполнять в ограниченном объеме.

Еще один пример арифметической операции появляется в строке 13, в которой ассемблер вычисляет значение РВ1ИЕ+Ь (в данном случае это 499). 3. Символ РВ1ИТЕЕ в строках 25 и 35 используется в Г-части. Р-часть, которая всегда заключается в круглые скобки, может состоять из чисел либо символов точно так, как другие части поля АООВЕЯБ. В строке 31 иллюстрируется спецификация частичного поля "(1: 4)', в котором используется двоеточие.

4. В И1ХАЬ предусмотрено несколько способов определения слов, которые не являются командами. В строке 41 псевдооперация СОМ используется для определения обычной константы, "2"'. В результате трансляции строки 41 получится слово В строке 49 присутствует немного более сложная константа, "ВОР1+10", в результате трансляции которой получится слово 2035 Константа может быть заключена между знаками равенства (см, строки 10 и 11); в этом случае она называется литералом ~или буквенной константой). Ассемблер автоматически создает для буквенных констант внутренние имена и вставляет строки "СОк". Например„в результате трансляции строк 10 и 11 программы Р получится 10 11 Ь01 соп1 Ь02 соп2 а в конце программы, межлу строками 51 и 52, в результате трансляции будут вставлены строки 51а соп1 СОМ И6 соп2 СОН 1-1.

3 1. Строки 01, 02 и 39 начинаются со звездочки. Таким образом обозначается строка комментария, которая содержит только пояснения и не оказывает реального воздействия на транслируемую программу. Трансляция строки 51а дает слово Использовать буквенные константы (литералы), несомненно, удобно, так как программистам не нужно изобретать для тривиальных констант символические имена, а также помнить о том, что в конце каждой программы необходимо вставлять константы.

Таким образом, программист может сосредоточиться на главной задаче и не волноваться по поводу подобных деталей. (Однако нужно заметить, что примеры литералов в программе Р не слишком удачны, поскольку, заменив строки 10 и 11 более эффективными командами "ЕМТ1 1-1," и "ЕИТ2 3", мы несколько улучшили бы программу.) 5. Хороший язык ассемблера должен имитировать ход мыслей программиста при написании машинных программ, Одним из примеров этой философии является использование литералов, о которых только что шла речь.

В качестве другого примера можно привести применение символа "*", которое обсуждалось при описании программы М. А третьим примером является идея использования яокаяьньст символов, таких как символ 2Н, который появляется в поле метки строк 12, 25 и 28. Локальные символы — это специальные символы, которые можно переопределять столько раз, сколько нужно. Глобальный символ, например РВ1МЕ, имеет только одно значение на протяжении всей программы, и если бы он появился в поле метки более чем одной строки, то ассемблер зафиксировал бы ошибку.

Но локальные символы имеют различную природу; например, мы пишем 2Н ("2 Ьеге"— "2 здесь") в поле метки и 2Р ("2 (огкагбь — "2 вперед") или 28 ("2 Ьас1съагсГ'— "2 назад") в адресном поле строки М1ХА)л 2В означает ближайшую предыдущую метку 2Н; 2Р означает ближайшую следующую метку 2Н. Таким образом, символ "2Р" в строке 14 означает ссылку на строку 25, символ "2В" в строке 24 — ссылку назад, на строку 12, а символ "2В" в строке 37 — ссылку на строку 28.

Адрес 2Р или 2В никогда не относится к собственной строке. Например, три строки кода М1ХАЬ 2Н ЕЦО 10 2Н МОЧЕ 2Р(2В), 2Н ЕЦО 2В-3 в сущности, эквивалентны одной строке МОЧЕ ь-3(10). Символы 2Р и 2В никогда не следует использовать в поле метки, а символ 2Н— в поле адреса. Существует десять локальных символов, которые можно получить, заменив в этих примерах "2" любой другой цифрой от О до 9.

Идею локальных символов выдвинул М. Э. Конвей (М. Е. Сопя ау) в 1958 году в связи с разработкой ассемблера для машины 1)1ч1ЪАС 1. Локальные символы освобождают программиста от необходимости выбора символических имен для каждого адреса, когда нужно всего лишь сослаться на команду, находящуюся на расстоянии нескольких строк. Соседним командам не всегда можно придумать подходящие имена, поэтому программисты склонны вводить такие лишенные содержания символы, как Х1, Х2, ХЗ и т.

д., что срздает потенциальную опасность их повторения. Поэтому использовать локальные символы в языке ассемблера очень полезно и совершенно естественно. 6. Адресная часть строк 30 и 38 пуста. Это означает, что в результате трансляции получится нулевой адрес. В строке 17 адресную часть тоже можно было бы оставить пустой, но без этого лишнего О программа стала бы менее наглядной. 7. В строках 43- 47 используется операция АЕР, которая создает пятибайтовую константу в буквенно-цифровом символьном коде М1Х.

Например, в результате трансляции строки 45 получится слово т. е. чаНОМО" (часть слова "пятьсот") — часть строки заголовка в выходных данных программы Р. Все ячейки, содержимое которых не определено в программе М1ХАЬ, обычно обнуляются (за исключением ячеек, которые используются загружающей программой; обычно это ячейки 3700-3999). Поэтому после строки 47 нет необходимости определять пробелы в других словах заголовка. 8. Вместе с операцией ОН10 можно выполнять арифметические действия (см. строки 40, 42 и 48). 9. В последней строке законченной программы на языке М1ХАЕ всегда присутствует код операции ЕМО. Адрес в этой строке указывает на ячейку, с которой начинает выполняться программа после загрузки в память.

10. И в завершение анализа программы Р следует отметить, что ее команды построены так, чтобы значения в индексных регистрах можно было сравнивать с нулем, когда это только возможно. Например, в регистре гП сохраняется величина 3-600, а не 1. Особого внимания в этом смысле заслуживают строки 26-34, хотя разобраться в них, наверное, непросто.

Интересно отметить статистические характеристики, которые наблюдаются во время реальной работы программы Р. Команда деления из строки 19 была выполнена 9 538 раз, а время выполнения строк 10-24 составило 182144и. Программы на языке М1ХАЕ можно перфорировать на картах или набрать на терминале компьютера, как показано на рис. 15. При использовании перфокарт выбирается следующий формат. Но если в колонке 1 содержится звездочка, то все содержимое перфокарты рассматривается как комментарий. Поле АДРЕС заканчивается первой же пустой колонкой (пробелом), следующей за колонкой 16.

Справа от этой первой колонки можно Колонки 1 — 10 Колонки 12-15 Колонки 17-80 Колонки 11, 16 Поле МЕТКА Поле ОП Поле АДРЕС и необязательныс примечания Пустые ° д ДИ ... 11 1 11!П П! 1 ° ! 1 П1 П! 1 ° 1 1 П ° ВВВ111 ° НВНФВФ ° НВ ° $$1 ° и!В!В ° 1 ° 1 ° 11НФВВ ° ° $1 ° Вии ° В!111 ° Н1ВВВНВВНВ ° ВВФ ° ФВВ Ф 4 4 Ф! Ф! Ф Ф 1 Ф 4 Ф Ф Ф 1 Ф Ф Ф! Ф 1 41 4 Ф 1 1 3 Ф Ф 4 Ф Ф Ф Ф Ф Ф Ф! Ф Ф Ф! 4 Ф Ф Ф \ 4! Ф Ф Ф Ф Ф Ф 4 1 Ф Ф Ф Ф 4 з 4 Ф Ф Ф Ф Ф Ф Ф! 4 Ф! 4 4 \ ! г!!! и Ф! Ф г Ф г! и г! и Ф!!! 1 г! и г и Ф 3! ! 1 г и 1 г 3 и ! г ! з г г г г з Ф з з ! з з 3 ! 3 з г г и г Ф г ! Ф и Ф Ф г г Ф и ш и Ь ш з и и г П! з1 п11ю ш ш $ и и ! 3 и ш ! 4 и ш и и и Ф и и г и ш и ш и ! и 144 ° 414 ° 4444444414444444 ° 44414444414444 ° 44 ° 4444 ° 444 ° 44 ° 444444 ° 4444 ° 4444444444 ° 44 $$1$1$ ° $1пн$3 ° !1$1$$н$$1НФн3$$11 ° $$$$$$ ° НФФШНФИФ ° 1н1$1$н<1 ° $11$11$3Н 1 ° ° <и!Ни!1!НннвннвпПФВнннпнииФННННФпинпппнвввВ ° 14 ° 11 11111Ф1ззз1гз1эгззгзнзиззгззз1изззгзпзиззиизэизгзззззззгзэззззэззэизгн 1 Ф 1 4 в В В и Ф 1 $ и Ф $ $ $ П! и и ° ! 1 1 ° 1 и в Ф 1! В 1 В и 4 и и 3 Ф В и и 1 1 в 4 1 1 и $1 4 ° п 4 3 1 $1 Ф и в 1 и и! ° 1111$$11$11ип3$1иВНФВФиИВФФивюиФФФФНФФФФиииФФНФви3131$$4из ° $1 4 ПРИИЕР ПРСГРАИИЫ...

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

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

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