- •Охарактеризовать язык программирования низкого уровня и его особенности
- •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. Объяснить их назначение и использование.
33. Объяснить понятие символьной цепочки. Описать состав и особенности команд для работы с цепочками.
Кроме привычного понятия массивов в языке ассемблера существует структура,
называемая цепочкой (точнее, символьной цепочкой, или цепочкой символов).
Цепочка есть непрерывная последовательность байтов, слов или двойных слов,
обрабатываемая как единое целое. Основное отличие цепочек от массивов состоит
в способе доступа к элементам: для массивов - произвольный доступ (по номеру
элемента или по индексу), для цепочек - лишь последовательный доступ (от начала
цепочки к концу или от конца к началу). Особенность всех цепочечных команд
(кроме обработки очередного элемента цепочки) - автоматическое продвижение к
следующему элементу цепочки.
Название: пересылка цепочки
Команды: MOVS <адр_приемника>,<адр_источника> - MOVSB, MOVSW, MOWSD
Действие: копирует один элемент цепочки из операнда-источника в операнд-приемник
Название: сравнение цепочек
Команды: CMPS <адр_приемника>,<адр_источника> - CMPSB, CMPSW, CMPSD
Действие: сравнивает элементы цепочек из операнда-источника и операнда-приемника
Название: сканирование цепочки
Команды: SCAS <адр_приемника> - SCASB, SCASW, SCASD
Действие: сканирует цепочку-приёмник на присутствие некоторого элемента
(он задаётся в регистре-аккумуляторе)
Название: загрузка элемента из цепочки
Команды: LODS <адр_источника> - LODSB, LODSW, LODSD
Действие: загружает элемент из цепочки-источника в регистр-аккумулятор
Название: сохранение элемента в цепочке
Команды: STOS <адр_приемника> - STOSB, STOSW, STOSD
Действие: восстановляет элемент из регистра-аккумулятора в цепочку
Название: получение элемента цепочки из порта ввода-вывода
Команды: INS <адр_приемника>,<номер_порта> - INSB, INSW, INSD
Действие: загружает элемент в цепочку-приемник из указанного порта ввода-вывода
Название: вывод элементов цепочки в порт ввода-вывода
Команды: OUTS <номер_порта>,<адр_источника> - OUTBS, OUTWS, OUTDS
Действие: пересылает элемент из цепочки-источника в указанный порт ввода-вывода
Особенности использования
Адресация операндов: цепочка-источник - DS:SI, цепочка-приёмник - ES:DI
Направление обработки от начала к концу:
DF = 0 ; SI и DI автоматически увеличиваются
команда CLD (Clear Direction Flag) сбрасывает флаг DF
Направление обработки от конца к началу:
DF = 1 ; SI и DI автоматически уменьшаются
команда STD (Set Direction Flag) устанавливает флаг DF
34. Описать неявное использование регистров в командах для работы с цепочками, объяснить назначение префикса повторения команды
Префиксы повторения
Они зацикливают выполнение команды, позволяя обрабатывать всю цепочку одной
командой. Префиксы повторения записываются перед нужной цепочечной командой
(обычно в поле метки). Количество повторений всегда записывается в регистр-
счетчик CX. Цепочечная команда без префикса выполняется один раз, с префиксом -
заданное число раз.
REP выполнять, пока CX<>0;
REPE (REPZ) выполнять, пока CX<>0 или ZF=1;
REPNE (REPNZ) выполнять, пока CX<>0 или ZF=0
Во всех случаях CX уменьшается автоматически.
SI ИСТОЧНИК
DI ПРИМНИК
35. Описать принципы организации внутренних подпрограмм. Объяснить назначение команд CALL и RET.
Процедура (подпрограмма) – это основная функциональная единица декомпозиции некоторой задачи и представляет собой группу команд для решения конкретной подзадачи, обладает средствами получения управления из точки вызова задачи более высокого уровня и возврата управления в эту точку.
Процедура может размещаться в любом месте программы, но так, чтобы на нее случайным образом не попало управление. Если процедуру просто вставить в общий поток команд, то микропроцессор будет воспринимать команды процедуры как часть этого потока и, соответственно, будет осуществлять выполнение команд процедуры.
В системе команд микропроцессора есть две команды, осуществляющие работу с контекстом. Это команды call и ret:
- CALL [модификатор] имя процедуры – вызов процедуры (подпрограммы). Команда CALL, подобно JMP, передает управление по адресу с символическим именем имя процедуры, но при этом в стеке сохраняется адрес возврата. Адрес возврата – это адрес команды, следующей после команды call;
- RET [число] – возвращает управление вызывающей программе, т.е. считывает адрес возврата из стека и загружает его в регистры CS и IP/EIP, тем самым возвращая управление на команду, следующую в программе за командой CALL, [число] – необязательный параметр, обозначающий количество элементов, удаляемых из стека при возврате из процедуры.
