Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Создание программ, использующих макроопределения





Цель:

Научиться создавать программы с использованием макроопределений.

Программное обеспечение: TASM.

Оборудование: персональный компьютер, практикум, тетради для лабораторных работ.

Правила по технике безопасности: общие (приложение).

Литература:

Магда Ю. Ассемблер для процессоров Intel Pentium.

Голубь Н. Г. Искусство программирования на Ассемблере. Лекции и упражнения.

Время выполнения: 2 часа.

ВОПРОСЫ ВХОДНОГО КОНТРОЛЯ:

1. Дайте определение макрокоманды.

2. Перечислите регистры процессора.

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Одно из самых мощных языковых средств ассемблера - макроопределения. Макроопределением (или макросом) называется участок программы, которому присвоено имя и который ассемблируется всякий раз, когда ассемблер встречаетэто имя в тексте программы. Макрос начинается директивой MACRO и заканчи­вается ENDM. Например; пусть описано макроопределение" пех2азси, переводя­щее шестнадцатеричное число, находящееся в регистре AL, в ASCII-код соответ­ствующей шестнадцатеричной цифры:

Hex2ascil macro

Cmp al, 10 sbb al, 69h das

Endm

Сейчас в программе можно использовать слово hex2ascii, как если бы это было имя команды, и ассемблер заменит каждое такое слово на три команды, содер­жащиеся в макроопределении. Разумеется, можно оформить этот же участок кода в виде процедуры и вызывать его командой CALL - если процедура вызывается больше одного раза, этот вариант программы займет меньше места, но вариант с макроопределением станет выполняться быстрее, так как в нем не будет лиш­них команд CALL и RET. Однако скорость выполнения - не главное преимуще­ство макросов. В отличие от процедур макроопределения могут вызываться с параметрами, следовательно, в зависимооги от ситуации, включаемый код бу­дет немного различаться, например:

S_mov macro register1, register2

Pushregister1

Popregister2

Endm

Теперь можно использовать S_MOV вместо команды MOV для того, чтобы скопировать значение из одного сегментного регистра в другой.

Следующее важное средство, использующееся в макроопределениях, - дирек­тивы условного ассемблирования. Например: напишем макрос, выполняющий умножение регистра АХ на число, причем, если множитель - степень двойки, то умножение будет выполняться более быстрой командой сдвига влево.

fastmul   macro number  
if number eq 2  
  shl ax, 1 ; Умножение на 2.
elseif number eq 4  
  shl ax, 2 ; Умножение «а 4.
elseif number eq 8  
  shl ax, 3 ; Умножение на 8. ; Аналогично вплоть до:
elseif number eq 32768  
  shl ax, 15 ; Умножение на 215.
else      
  mov dx, number ; Умножение на число, не являющееся
  mul dx ; степенью двойки.
endif endm  

Можно, конечно, усложнить этот макрос, применяя особые свойства команды • LEA и ее комбинации, сдвиги и сложения, однако в нынешнем виде он чрезмерно громоздкий. Проблема решается с помощью третьего средства, постоянно исполь­зующегося в макросах, - блоков повторений. "







Дата добавления: 2014-11-10; просмотров: 673. Нарушение авторских прав; Мы поможем в написании вашей работы!




Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

В эволюции растений и животных. Цель: выявить ароморфозы и идиоадаптации у растений Цель: выявить ароморфозы и идиоадаптации у растений. Оборудование: гербарные растения, чучела хордовых (рыб, земноводных, птиц, пресмыкающихся, млекопитающих), коллекции насекомых, влажные препараты паразитических червей, мох, хвощ, папоротник...

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

Методы анализа финансово-хозяйственной деятельности предприятия   Содержанием анализа финансово-хозяйственной деятельности предприятия является глубокое и всестороннее изучение экономической информации о функционировании анализируемого субъекта хозяйствования с целью принятия оптимальных управленческих...

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Studopedia.info - Студопедия - 2014-2025 год . (0.011 сек.) русская версия | украинская версия