Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CП_Ответы.doc
Скачиваний:
17
Добавлен:
27.09.2019
Размер:
281.09 Кб
Скачать
  1. Дайте определение понятия «синтаксис ассемблера» как правила написания программных кодов. Представьте формат предложения ассемблера. Представьте общий формат команд и макрокоманд ассемблера.

Предложения ассемблера, составляющие программу могут представлять синтаксические конструкции 4-х типов:- команды (инструкции): представляют собой символические аналоги машинных команд; процессе трансляции инструкции ассемблера преобразуются в соответствующие команды в системе команд ассемблера;- макрокоманды: это оформляемые определённым образом предложения текста программы замещаемые во время трансляции с генерированным кодом, согласно алгоритму макроса;- директивы, являются указанием транслятору ассемблера на выполнение некоторых действий. У директив нет аналогов в машинном представлении. - комментарии: содержат любые символы в том числе и русские. Комментарии игнорируются транслятором. Синтаксис ассемблера - это предложения составляющие программу, которые могут представлять синтаксическую конструкцию, соответствующую команде, макрокоманде, директиве или комментарию.

  1. Обоснуйте необходимость организации циклов. Перечислите средства организации циклов. Опишите способы организации циклов. Приведите примеры использования команд организации циклов.

Цикл, представляет собой алгоритмическую структуру, используется для повторения каких либо действий пока выполняется условие. Организовать циклическое выполнение некоторого участка программы можно, используя команды условной передачи управления или команду безусловного перехода jmp, а также с помощью циклических команд loop, loope/loopz, loopne/loopnz. Jmp – команда безусловного перехода loop метка_перехода — повторить цикл. Команда позволяет организовать циклы, подобные циклам for в языках высокого уровня с автоматическим уменьшением счетчика цикла.

loope/loopz метка_перехода — повторить цикл, пока cx <> 0 или zf = 0. Команды loope и loopz — абсолютные синонимы, поэтому используйте ту команду, которая вам больше нравиться. loopne/loopnz метка_перехода— повторить цикл пока cx <> 0 или zf = 1. Команды loopne и loopnz также абсолютные синонимы.

Пример:

MOV CX,20

A20:

INC AX

ADD BX, AX

LOOP A20

  1. Дайте определение понятия «директива» в ассемблере. Представьте общий формат директив ассемблера. Перечислите существующие директивы.

Директивы ассемблера — параметры (ключевые слова) в тексте программы на языке ассемблера, влияющие на процесс ассемблирования или свойства выходного файла. Синтаксис задания зависит от ассемблера. Директивы: команды, не переводящиеся непосредственно в машинные инструкции, а управляющие работой компилятора. Набор и синтаксис их значительно разнятся и зависят не от аппаратной платформы, а от используемого компилятора (порождая диалекты языков в пределах одного семейства архитектур). В качестве набора директив можно выделить:

  • определение данных (констант и переменных) ;

  • управление организацией программы в памяти и параметрами выходного файла;

  • задание режима работы компилятора;

  • всевозможные абстракции (т.е. элементы языков высокого уровня) — от оформления процедур и функций (для упрощения реализации парадигмы процедурного программирования) до условных конструкций и циклов (для парадигмы структурного программирования);

  • макросы.

Общий формат директивы: (с точкой или без) зарезервированное символьное имя принадлежащее директиве.

Директивы: ASSUME; EXTRN; GROUP; INCLUDE; LABEL; NAME; ORG; PROC; PUBLIC; RECORD; SEGMENT; STRUC.

  1. Дайте определение сложного типа данных «цепочка». Перечислите операции-примитивы для работы с цепочками. Укажите особенности формирования физического адреса цепочки-источника и цепочки-приемника. Опишите на примере последовательность действий, необходимую для работы с цепочками.

Цепочка - непрерывная последовательность байт, слов или двойных слов, обрабатываемая как единое целое. Основное отличие цепочек от массивов состоит в способе доступа к элементам: для массивов - произвольный доступ, для цепочек - только последовательный (от начала цепочки к концу или от конца к началу). Цепочечные команды - команды для обработки цепочек. Особенностью всех цепочечных команд (кроме обработки очередного элемента цепочки) является автоматическое продвижение к следующему элементу цепочки.

Цепочечные команды:

Адресация операндов:

  • цепочка источник -  ds:si;

  • цепочка приёмник - es:di.

Последовательность действий:

1) Сформировать физические адреса:

  • адрес_источника — пара ds:esi/si;

  • адрес_приемника — пара es:edi/di.

2) Установить флаг направления df: командами cld, std.

3) Установить префикс, если необходим в зависимости от команды.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]