Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Топ:
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2017-11-21 | 297 |
5.00
из
|
Заказать работу |
|
|
Начало алгоритма
МТДС = 0
МНТС = 0
ФЛАГ ВЫХОДА = 0
цикл пока!(ФЛАГ ВЫХОДА) {
чтение следующей строки ВХТ
НАЙДЕНО = поиск кода в МНТ
если (НАЙДЕНО) {
МДИ = 1
УКАЗАТЕЛЬ = индекс из МНТ
Заполнение списка параметров АЛА
цикл {
УКАЗАТЕЛЬ ++
чтение след. строки из МДТ
подстановка параметров
вставка во ВХТ
} пока!(операция MEND)
иначе если!(операция MACRO) {
вывод строки в ВЫХТ1
если (операция END) ФЛАГ ВЫХОДА = 1
}
иначе {
чтение идентификатора
запись имени и индекса в МНТ
МНТС ++
приготовить массив списка АЛА
запись имени в МДТ
МДТС ++
цикл {
чтение следующей строки ВХТ
подстановка индекса операторов
добавление в МДТ
МДТС ++
} пока!(операция MEND)
}
}
конец алгоритма
Описание алгоритма
Данный алгоритм является упрощением алгоритма приведенного раньше. Различие состоит в том, что современные средства интеллектуализации программирования дают нам возможность осуществлять вставки и удаления из крупных массивов с минимальными затратами процессорного времени, что было невозможно при использовании перфокарт.
Кроме того, скорость работы современных процессоров настолько велика, что позволяет производить прямые вставки и удаления в массивах данных средней величины (скажем, до 64 килобайт) в режиме реального времени.
Таким образом, расширение исходного макроса может быть напрямую вставлено в массив исходного текста и обработано в расширенном виде. Такая технология позволяет значительно упростить алгоритм обработки макроязыка.
:
Реализация внутри Ассемблера
Макропроцессор, описанный нами предназначался для обработки текста в режиме препроцессора, то есть он выполнял полный просмотр входного текста, до того, как передать управление Ассемблеру.
|
Но макропроцессор также может быть реализован внутри первого прохода Ассемблера. Такая реализация позволяет исключить промежуточные файлы, и позволяет достичь на порядок большей интеграции макропроцессора и Ассемблера путем объединения сходных функций.
Например, возможно объединение таблиц имен макросов и имен кода операции; специальный признак может указывать на то макро это или встроенная операция.
Основные преимущества включения макропроцессора в первый просмотр состоят в следующем:
u Многие функции не надо реализовывать дважды (например, функции ввода-вывода, проверки на тип, и т.п.)
u В процессе обработки отпадает необходимость создавать промежуточные файлы или массивы данных.
u У программиста появляются дополнительные возможности по совмещению средств Ассемблера (например, команды EUQ) совместно с макрокомандами.
Основные недостатки:
u Программа должна требовать больше оперативной памяти, что критично на некоторых типах ЭВМ, не имеющих много оперативной памяти.
u Реализация подобного типа задачи может оказаться на порядок сложнее, чем отдельная реализация Ассемблера и макропроцессора.
Отдельно от рассмотрения реализации аппарата макросредств в Ассемблер лежит рассмотрение дополнительного просмотра, используемого многими программами для выявления определенных характеристик исходной программы, таких как типы данных.
Располагая таким макропроцессором, можно использовать команды условной компиляции, позволяющие поставить расширение макрокоманд в зависимость от определенных характеристик программы.
?
Справочник по командам языка Ассемблера
Обозначение регистров
Команды, использующие регистр, могут содержать три бита, указывающих на конкретный регистр, и один бит «w», определяющий размер регистра: байт или слово. Кроме того, лишь некоторые команды обеспечивают доступ к сегментным регистрам.
|
Байт способа адресации
Байт способа адресации, если он присутствует, занимает второй байт машинного кода и состоит из следующих трех элементов:
1) mod — двухбитового кода, имеющего значения 11 для ссылки на регистр и 00, 01 и 10 для ссылки на память;
2) reg — трехбитового указателя регистра;
3) r/m — трехбитового указателя регистра или памяти (r — регистр, m — адрес памяти).
Кроме того, первый байт машинного кода может содержать бит «а», который указывает направление потока между операндом 1 и операндом 2.
Биты MOD
Два бита mod определяют адресацию регистра или памяти.
Биты REG
Три бита reg (вместе с битом w) определяют конкретный восьми- или шестнадцатибитовый регистр.
Биты R/M
Три бита г/m (регистр/память) совместно с битами mod определяют способ адресации.
|
|
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!