- •Охарактеризовать язык программирования низкого уровня и его особенности
- •03. Объяснить понятие сегмента памяти. Описать основные сегменты, используемые в программах, и соответствующие сегментные регистры
- •04. Описать основные регистры: сегментные, общего назначения, указатели, индексные, признаков. Охарактеризовать их использование
- •05. Описать и объяснить обобщенные форматы машинных команд и формат кодирования команд в языке ассемблера.
- •Обобщенные форматы машинных команд
- •Трехадресные команды:
- •Двухадресные команды:
- •Одноадресные команды:
- •06. Объяснить назначение комментариев, форму их записи и особенности использования.
- •7)Объяснить назначение меток, форму их записи и особенности использования.
- •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. Объяснить их назначение и использование.
22. Объяснить состав и основные особенности использования команд безусловного и условных переходов
Команда безусловного перехода
Команда JMP выполняет безусловный переход – обеспечивает передачу управления при любых обстоятельствах. Формат команды:
JMP метка
здесь управление передается команде c меткой метка. Команда JMP для перехода в пределах -128 до +127 байт имеет тип SHORT. Команда JMP, переходящая за эти пределы, получает тип FAR, для которого генерируется другой машинный код и двухбайтовый операнд. При первом просмотре исходной программы ассемблер определяет длину каждой команды. Но команда JMP может быть длиной два или три байта. Если к моменту просмотра команды JMP ассемблер уже вычислил значение операнда (при переходе назад), то он создает двухбайтовую команду. Если он еще не вычислил значение операнда (при переходе вперед), то он не знает тип перехода (NEAR или FAR) и “на всякий случай” создает трехбайтовую команду. Чтобы указать ассемблеру на необходимость создания двухбайтовой команды, нужно использовать оператор SHORT:
Команды условного перехода
Ассемблер поддерживает большое количество команд условного перехода, которые выполняют передачу управления в зависимости от состояний регистра признаков. Например, при сравнении содержимого двух чисел последующий переход зависит от значения признака, устанавливаемого при сравнении.
Команды условного перехода можно разделить на три группы:
1) переходы для беззнаковых данных;
2) переходы для знаковых данных;
3) специальные проверки.
Выбор знаковых либо беззнаковых команд определяется типами используемых данных. Беззнаковые данные используют все биты как биты данных; характерные примеры – символьные цепочки, имена, адреса, натуральные числа. В знаковых данных самый левый бит определяет знак числа, причем его нулевое значение отвечает положительному числу, единичное – отрицательному.
Переходы для беззнаковых данных
Мнемоника Описание Проверяемые признаки
JE/JZ Переход, если равно/нуль ZF
JNE/JNZ Переход, если не равно/не нуль ZF
JA/JNBE Переход, если выше/не ниже или равно ZF, CF
JAE/JNB Переход, если выше или равно/не ниже CF
JB/JNAE Переход, если ниже/не выше или равно CF
JBE/JNA Переход, если ниже или равно/не выше CF, AF
Переходы для знаковых данных
Мнемоника Описание Проверяемые признаки
JE/JZ Переход, если равно/нуль ZF
JNE/JNZ Переход, если не равно/не нуль ZF
JG/JNLE Переход, если больше/не меньше или равно ZF, SF, OF
JGE/JNL Переход, если больше или равно/не меньше SF, OF
JL/JNGE Переход, если меньше/не больше или равно SF, OF
JLE/JNG Переход, если меньше или равно/не больше ZF, SF, OF
Специальные арифметические проверки
Мнемоника Описание Проверяемые признаки
JS Переход, если есть знак (отрицательно) SF
JNS Переход, если нет знака (положительно) SF
JC Переход, если есть перенос (аналогично JB) CF
JNC Переход, если нет переноса CF
JO Переход, если есть переполнение OF
JNO Переход, если нет переполнения OF
JP/JPE Переход, если паритет четный PF
JNP/JPO Переход, если паритет нечетный
