- •Машинное исполнение
- •1. Просмотр памяти.
- •2. Пример машинных кодов: непосредственные данные.
- •3. Пример машинных кодов: определение данных.
- •4. Пример машинных кодов: определение размера памяти.
- •5. Специальные средства отладчика.
- •6. Сохранение программы из отладчика.
- •Ассемблирование и выполнение программы
- •1. Ввод программы
- •2. Ассемблирование программы.
- •3. Компоновка программы.
- •4. Выполнение программы.
- •5. Ввод, ассемблирование, компоновка, выполнение и анализ листинга исходной программы.
- •Определение данных
- •1. Директивы определения данных.
- •2. Определение данных с числом повторений.
- •3. Директива определения байта (dв).
- •4. Директива определения слова (dw).
- •5. Директива определения двойного слова (dd).
- •6. Директива определения поля из четырех слов (dq).
- •7. Директива определения десяти байт (dt), директива equ.
- •Программы в com-файлах
- •1. Создание exe-файла.
- •2. Получение com-файла.
- •Логика и организация программы
- •1. Команда jmp.
- •2. Команда loop.
- •3. Сегмент стека.
- •4. Программа: расширение операции пересылки.
- •5. Программа: замена строчных букв на заглавные.
- •6. Команды сдвига и циклического сдвига.
- •7. Команды логических операций: and, or, xor, test, not.
- •Xor al,bl ;Логическое сравнение
- •Команды обработки строк
- •1. Rep: префикс повторения команды.
- •2. Программа: строковые операции.
- •3. Сканирование и замена.
- •4. Дублирование образца.
- •5. Программа: выравнивание справа при выводе на экран.
- •Арифметические операции 1: обработка двоичных данных
- •1. Сложение и вычитание.
- •2. Многословное сложение.
- •3. Умножение.
- •4. Повышение эффективности умножения.
- •5. Многословное умножение.
- •6. Сдвиг регистровой пары dx:ax.
- •7. Деление.
- •8. Деление вычитанием.
- •9. Преобразование знака.
- •Арифметические операции 2: обработка данных в форматах ascii и
- •1. Сложение в ascii-формате.
- •2. Вычитание в ascii-формате.
- •3. Умножение в ascii-формате.
- •4. Деление в ascii-формате.
- •5. Двоично-десятичный формат (bcd).
- •6. Преобразование ascii-формата в двоичный формат и наоборот.
- •Обработка таблиц
- •1. Прямой табличный доступ
- •2. Табличный поиск.
- •3. Табличный поиск с использованием сравнения строк.
- •4. Транслирующая команда xlat.
- •5. Программа: вывод шестнадцатиричных и ascii-кодов.
- •6. Программа: сортировка элементов таблицы.
- •Макрокоманды
- •If (условие)
- •If (условие)
- •1. Простое макроопределение.
- •2. Использование параметров в макрокомандах.
- •3. Комментарии в макрокомандах.
- •4. Использование макрокоманд внутри макроопределения.
- •5. Директива local.
- •6. Использование библиотек макроопределений.
- •7. Конкатенация (&).
- •8. Директивы повторения: rept, irp, irpc.
- •Inc ctr ;Увеличить счетчик
- •Inc dx ;Увеличить счетчик
- •Inc dx ;Увеличить счетчик
- •9. Макрокоманды, использующие директивы if и ifndef.
- •10. Макрокоманды, использующие директиву ifidn.
- •Связь между подпрограммами
- •1. Программа: использование директив extrn и public для меток.
- •2. Программа: использование директивы public в кодовом сегменте.
- •3. Программа: общие данные в подпрограмме.
- •4. Передача параметров.
6. Директива определения поля из четырех слов (dq).
6.1. Директива DQ определяет элементы, имеющие длину четыре слова (восемь байт). Числовое выражение может содержать одну или более констант, каждая из которых имеет максимум восемь байт или 16 шестнадцатиричных цифр. Наибольшее положительное шестнадцатиричное число - это 7 и далее 15 цифр F.
6.2. Выполнить раздел 1 данной лабораторной работы (пп.1.1.-1.7.), изменив с помощью текстового редактора NORTON следующие константы:
FLD1DB DQ ? ;Не инициализировано
FLD2DB DQ 04D47H ;Шест. константа
FLD3DB DQ 32572 ;Десятич. константа
Ассемблер преобразует все числовые константы в директиве DQ в
шестнадцатиричные представления, но записывает объектные коды в обратной последовательности, как и в директивах DD и DW.
Обработка ассемблером символьных строк в директиве DQ аналогична обработке директив DD и DW.
7. Директива определения десяти байт (dt), директива equ.
7.1. Директива DT определяет элементы данных, имеющие длину в десять байт.
Директива EQU не определяет элемент данных, но определяет значение, которое можно использовать для подстановки в других командах.
7.2. Выполнить раздел 1 данной лабораторной работы (пп.1.1.-1.7.), изменив с помощью текстового редактора NORTON следующие константы:
FLD1DB DT ? ;Не инициализировано
FLD2DB DT 'PC' ;Символьная строка
TIMES EQU 10 ;Присвоение имени числу 10
FLD4DB DB TIMES DUP (?) ;Определение количества нулей
FLD5DB DB 10 DUP (?) ;Десять нулей
СОДЕРЖАНИЕ ОТЧЕТА:
1. Фрагменты сегмента данных всех листингов изменяемой программы exasm2.asm.
2. Фрагменты дампа сегмента данных для каждого варианта программы exasm2.asm.
КОНТРОЛЬНЫЕ ВОПРОСЫ:
1. Какова длина в байтах для элементов данных, определенных директивами:
а) DW
б) DD
В) DT
г) DB
д) DQ
2. Определите символьную строку по имени TITLE1, содержащую константу RGB Electronics.
3. Определите следующие числовые значения для сегмента данных программы:
а) четырехбайтового элемента, содержащего шестнадцатиричный эквивалент десятичного числа 115;
б) однобайтового элемента, содержащего шестнадцатиричный эквивалент десятичного числа 25;
в) двухбайтового элемента, содержащего неопределенное значение;
г) однобайтового элемента, содержащего двоичный эквивалент десятичного числа 25;
д) директивы DW, содержащей последовательные десятичные значения 16, 19, 20, 27, 30.
4. Покажите сгенерированный шестнадцатиричный объектный код для:
а) DB '26'
б) DB 26
5. Определите ассемблерный шестнадцатиричный объектный код для:
а) DB 26H, б) DW 2645H, в) DD 25733AH, г) DQ 2573АH
ОТВЕТЫ:
1. а) 2, б) 4, в) 10, г) 1, д) 8
2. TITLE1 DB 'RGB Electronics'
3. а) DD 73H, б) DB 19H, в) DW ?, г) DB 11001B, д) DW
16,19,20,27,30
4. а) 3236, б) 1А
5. а) 26, б) 45 26, в) 3А 73 25 00, г) 3А 73 25 00 00 00 00 00
Л а б о р а т о р н а я р а б о т а N 4