- •1.Знакомство с программой-отладчиком Turbo Debugger. Выполнение простейших команд микропроцессора в среде Turbo Debugger.
- •1.1.Понятие отладки. Назначение программ-отладчиков
- •1.2.Запуск программы
- •1.3.Структура экрана программы Turbo Debugger
- •1.4.Регистры микропроцессора
- •1.5.Сложение беззнаковых величин
- •1.6.Вычитание беззнаковых величин
- •1.7.Операции с байтами
- •1.7.1.Умножение беззнаковых величин
- •1.7.2.Деление беззнаковых величин
- •1.7.3.Пересылка (копирование) данных
- •1.7.4.Понятие переполнения
- •1.7.5.Регистр флагов.
- •1.7.6.Флаг переноса
- •1.7.7.Использование флага переноса
- •1.7.7.1I. Сложение с использованием флага переноса.
- •2.Начальные сведения о языке Ассемблер
- •2.1.Аппаратная поддержка языка
- •2.1.1.Структура памяти
- •2.1.2.Сегментация памяти
- •2.2.Структура программы на языке Ассемблер
- •2.2.1.Директивы ассемблера
- •2.2.2.Режимы адресации
- •2.3.Инструкции пересылки данных и двоичной арифметики
- •2.4.Запись программ на языке ассемблера
- •2.5.Обработка программ в ms-dos
- •2.6.Пример выполнения работы
- •2.6.1.1Текст программы:
- •2.7.Варианты заданий
- •2.8.Вопросы по теме
- •3.Циклические и разветвляющиеся программы
- •3.1.Безусловные переходы
- •3.2. Условный переход
- •3.3.Циклы
- •3.4.Пример выполнения работы
- •3.5.Варианты заданий
- •3.6.Вопросы по теме
- •4.Применение логических инструкций
- •4.1.Логические инструкции
- •4.2.Примеры использования логических команд
- •4.3.Пример выполнения работы
- •4.4.Варианты заданий
- •4.5.Вопросы по теме
- •5.Обработка символьной информации с помощью функций dos
- •5.1.Программные прерывания и системные вызовы
- •Функция оан
- •Функция 0Bh
- •5.3. Пример выполнения работы
- •5.4. Варианты заданий
- •5.5. Вопросы по теме
- •6.Подпрограммы
- •6.1. Структура подпрограммы
- •6.2.Вызов подпрограммы
- •6.3.Передача параметров
- •Сохранение регистров
- •6.4. Пример выполнения работы
- •6.5. Варианты заданий
- •6.6. Вопросы по теме
- •7.Обработка прерываний
- •7.1.Обработка прерывания
- •7.2.Изменение вектора прерывания
- •Функция 35h
- •7.3.Дополнительные сведения о структуре dos и bios
- •7.3.1.Прямое обращение к видеопамяти
- •7.3.2. Буфер клавиатуры
- •7.4. Пример выполнения работы
- •7.5. Варианты заданий
- •7.6. Вопросы по теме
2.7.Варианты заданий
Разработать программу реализующую указанную формулу, исполнить программу с несколькими ( три - четыре) наборами исходных данных, проверить правильность результатов.
Х= А - 5 (В - 2С) + 2
Х= - 4А + (В + С) / 4 + 2
Х= 7А - 2В - 100 + С
Х= - А / 2 + 4 (В + 1) + 3С
Х= 5 (А - В) - 2С + 5
Х= (А/ 2 + В) / 4 + С - 1
Х= - (С + 2А + 4В + В)
Х= 6С + (В - С + 1) / 2
Х= 2 - В (А + В) + С / 4
Х= 2В - 1 + 4 (А - 3С)
Х= (2А + В) / 4 - С / 2 + 168
Х= 6 (А - 2В + С / 4) + 10
Х= 5 (А - В ) + С mod 4
Х= - ( - (С + 2А) * 4В + 38)
Х= А - 3 (А + В) + С mod 4
Х= 3(А - 2В) +50 – С / 2
Х= (3А + 2В) - С / 4 + 217
Х= 3(С - 2A) + (В - С + 1) / 2
Х= (2А + В) / 4 - С / 2 + 168
Х= 6 (А - 2В + С / 4) + 10
Х= 3 (А - 4В ) + С / 4
Х= - ( - (С + 2А) * 5В - 27)
Х= А / 2 - 3 (А + В) + С * 4
Х= 3(А - 2В) +50 – С / 2
Х= 5А + 2В - B / 4 + 131
2.8.Вопросы по теме
назначение директив Segment и Ends
Назначение дирeктивы assume
Назначение директив DB и DW
Назначение оператора DUP в директивах DB и DW
Назначение директивы END
Из каких полей состоит строка программы на Ассемблера ?
Какие обязательные поля, какие необязательные.
В чем различие между командами mov ax, bx ,move ax,[bx], move [ax],bx.
В чем разница между командой mov a1 и директивой adw1.
3.Циклические и разветвляющиеся программы
Команда передачи, управления служит для передачи управления инструкции, не следующей непосредственно за данной. Управление может передаваться как внутри текущего сегмента кода (внутрисегментная передача управления), так и за его пределы (межсегментная передача управления). Тип передачи управления может быть задан ассемблеру предшествующим адресу перехода ключевым словом NEAR (внутрисегментная) или FAR (межсегментная ).
3.1.Безусловные переходы
Инструкция безусловного перехода передаёт управление команде, адрес которой указан в инструкции. Команда безусловного перехода имеет вид
jmp [< тип > ptr ] операнд.
<тип> - тип перехода short (короткий) – смещение 127 байтов вперёд или 128 байтов назад, near (близкий) – смещение в пределах сегмента (64 Кбайта), far (дальний) – в любой сегмент с любым смещением.
ptr – приставка, которую можно перевести как указанный в.
Если тип не задан, по умолчанию принимается near.
Всего можно выделить пять типов безусловных переходов (таблица 3.1).
Таблица 3.1 |
||
Типы команд безусловного перехода |
||
Название |
Мнемоника |
Описание |
внутрисегментный прямой короткий |
jmp short <операнд> |
IP ← (IP) + 8-битное смещение, определяемое операндом |
внутрисегментный прямой близкий переход |
jmp near ptr <операнд> |
IP ← (IP)+16-битное смещение, определяемое операндом |
внутрисегментный косвенный переход |
jmp <адрес операнда> |
IP ← 16-битный адрес перехода |
Межсегментный прямой далекий переход |
jmp far ptr <операнд> |
IP ← смещение операнда в сегменте CS ← адрес сегмента, содержащего операнд |
Межсегментный косвенный далёкий переход |
jmp far ptr <адрес операнда> |
IP ← операнд CS ← адрес операнда +2 |