- •Охарактеризовать язык программирования низкого уровня и его особенности
- •03. Объяснить понятие сегмента памяти. Описать основные сегменты, используемые в программах, и соответствующие сегментные регистры
- •04. Описать основные регистры: сегментные, общего назначения, указатели, индексные, признаков. Охарактеризовать их использование
- •7)Объяснить назначение меток, форму их записи и особенности использования.
- •05. Описать и объяснить обобщенные форматы машинных команд и формат кодирования команд в языке ассемблера.
- •Обобщенные форматы машинных команд
- •Трехадресные команды:
- •Двухадресные команды:
- •Одноадресные команды:
- •06. Объяснить назначение комментариев, форму их записи и особенности использования.
- •8)Объяснить назначение операндов, форму их записи и особенности использования.
- •09. Рассказать о назначении директивы page и ее использовании.
- •10. Рассказать о назначении директивы title и ее использовании.
- •11. Рассказать о назначении директивы segment и ее использовании.
- •12. Рассказать о назначении директивы proc и ее использовании.
- •13. Рассказать о назначении директивы assume и ее использовании.
- •14. Рассказать о назначении директивы end и ее использовании.
- •15)Описать основные директивы определения данных и охарактеризовать их использование.
- •16) Описать и объяснить формы инициализации программ типа .Exe.
- •17)Описать и объяснить основные этапы обработки программ: ассемблирование, компоновку.
- •18) Описать особенности работы ассемблера
- •19. Описать и объяснить порядок разработки программы.
- •20) Объяснить состав и основные особенности использования арифметических команд и неявное использование регистров в них.
- •21. Объяснить состав и основные особенности использования логических команд.
- •22. Объяснить состав и основные особенности использования команд безусловного и условных переходов
- •23. Объяснить назначение регистра признаков и описать основные признаки в его составе.
- •24. Объяснить состав и основные особенности использования команд организации циклов и неявное использование регистров в них.
- •25. Описать и объяснить понятие множества, подмножества, способы задания множеств.
- •27. Описать и объяснить понятие универсума, формы задание универсума, принцип адресации элементов множества.
- •28. Описать понятие вектора принадлежности, объяснить использование вектора принадлежности для выполнения операций.
- •29. Описать и объяснить понятие массива, размера и размерности массива. Описать состав и особенности основных операций над массивами.
- •30. Описать и объяснить понятие таблицы, принципы адресации элементов таблицы.
- •31. Объяснить понятие табличного поиска, принципы организации табличного поиска.
- •32. Объяснить понятие сортировки таблицы и вектора, принцип работы алгоритма пузырьковой сортировки
- •33. Объяснить понятие символьной цепочки. Описать состав и особенности команд для работы с цепочками.
- •34. Описать неявное использование регистров в командах для работы с цепочками, объяснить назначение префикса повторения команды
- •36. Описать принципы организации внешних подпрограмм. Объяснить назначение директив extrn и public.
- •37. Рассказать об организации связи программы с подпрограммой, о способе передачи данных через стек.
- •38)Описать особенности организации вложенных и рекурсивных подпрограмм.
- •39)Разъяснить схему работы команды прерывания int. Охарактеризовать ее назначение и использование.
- •40)Описать принципы использования прерывания бсвв int 10h для установки курсора.
- •41)Описать принципы использования прерывания бсвв int 10h для очистки экрана.
- •42)Описать принципы использования прерывания бсвв int 13h, описать его основные функции и выполняемые операции.
- •Int 13h: Дисковый ввод-вывод.
- •43) Описать принципы использования прерывания dos int 21h для организации вывода на экран.
- •44. Описать принципы использования прерывания dos int 21h для организации ввода с клавиатуры.
- •45. Объяснить понятие и назначение портов и принципы работы с ними. Описать назначение и использование команд in и out.
- •46. Объяснить организацию и применение макрокоманд без параметров.
- •47. Объяснить организацию и применение макрокоманд с параметрами.
- •48) Описать и охарактеризовать дополнительные средства макрокоманд: комментарии, директиву local. Объяснить их использование.
- •49Объяснить использование макрокоманд вложенных и библиотечных
- •50)Описать и охарактеризовать дополнительные средства макрокоманд – директивы include и purge. Объяснить их назначение и использование.
8)Объяснить назначение операндов, форму их записи и особенности использования.
Операнд – объект, над которым выполняется машинная команда.
Операнды ассемблера описываются выражениями с числовыми и текстовыми константами, метками и идентификаторами переменных с использованием знаков операций и некоторых зарезервированных слов.
Операнды могут комбинироваться с арифметическими, логическими, побитовыми и атрибутивными операторами для расчета некоторого значения или определения ячейки памяти, на которую будет воздействовать данная команда или директива.
Операнд задается на микропрограммном уровне (операнд по умолчанию): в этом случае команда явно не содержит операнда, алгоритм выполнения команды использует некоторые объекты по умолчанию (регистры, признаки и т.д.).
mul ebx ; eax = eax*ebx, неявно использует регистр eax
Операнд задается в самой команде (непосредственный операнд): операнд является частью кода команды. Для хранения такого операнда в команде выделяется поле длиной до 32 бит. Непосредственный операнд может быть только вторым операндом (источником). Операнд-получатель может находиться либо в памяти, либо в регистре.
mov eax, 5 ; eax = 5; add ebx, 2 ; ebx = ebx + 2;
Прямая адресация: эффективный адрес определяется непосредственно полем смещения машинной команды, которое может иметь размер 8, 16 или 32 бита.
mov eax, sum ; eax = sum
Ассемблер заменяет sum на соответствующий адрес, хранящийся в сегменте данных (по умолчанию адресуется регистром ds) и значение, хранящееся по адресу sum, помещает в регистр eax.
Косвенная адресация в свою очередь имеет следующие виды: косвенная базовая (регистровая) адресация;
косвенная базовая (регистровая) адресация со смещением;
косвенная индексная адресация;
косвенная базовая индексная адресация.
Косвенная базовая (регистровая) адресация. При такой адресации эффективный адрес операнда может находиться в любом из регистров общего назначения, кроме sp/esp и bp/ebp (это специфические регистры для работы с сегментом стека). Синтаксически в команде этот режим адресации выражается заключением имени регистра в квадратные скобки [].
mov eax, [esi] ; eax = *esi; *esi значение по адресу esi
Данный способ адресации позволяет динамически назначить адрес операнда для некоторой машинной команды и применяется при организации циклических вычислений и при работе со структурами данных, массивами.
09. Рассказать о назначении директивы page и ее использовании.
10. Рассказать о назначении директивы title и ее использовании.
Ассемблер содержит ряд директив, управляющих форматом печати (или листинга). Обе директивы PAGE и TITLE можно использовать в любой программе. Директива PAGE. В начале программы можно указать количество строк, распечатываемых на одной странице, и максимальное количество символов на одной строке. Для этой цели служит директива PAGE. Следующей директивой устанавливается 60 строк на страницу и 132 символа в строке: PAGE 60,132 Количество строк на странице может быть в пределах от 10 до 255, а символов в строке - от 60 до 132. По умолчанию в ассемблере установлено PAGE 66, 80.Предположим, что счетчик строк установлен на 60. В этом случае ассемблер, распечатав 60 строк, выполняет прогон листа на начало следующей страницы и увеличивает номер страницы на единицу. Кроме того, можно заставить ассемблер сделать прогон листа на конкретной строке, например, в конце сегмента. Для этого необходимо записать директиву PAGE без операндов. Ассемблер автоматически делает прогон листа при обработке директивы PAGE. Директива TITLE. Для того, чтобы вверху каждой страницы листинга печатался заголовок (титул) программы, используется директива TITLE в следующем формате: TITLE текст рекомендуется в качестве текста использовать имя программы, под которым она находится в каталоге на диске. Например, если программа называется ASMSORT, то можно использовать это имя и описательный комментарий общей длиной до 60 символов: TITLE ASMSORT - Ассемблерная программа сортировки имен В ассемблере также имеется директива подзаголовка SUBTTL, которая может оказаться полезной для очень больших программ, содержащих много подпрограмм.
