Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Алфавит языка ассемблер и типы операндов.




Ответы на зачет по

ОСПО

ПРЕПОДОВАТЕЛЬ КАРДАШ ДЕНИС ИВАНОВИЧ

СТУДЕНТ ГРУППЫ ЗИ-24

SPE-классификация программного обеспечения.

Системная программа - предназначена для решения технологических задач и служащая
для обеспечения работоспособности ЭВМ, а также оптимизации её работы.

1. Управляющая программа - это системная программа, реализующая управление ресурсами.

2. Супервиза - осуществляет распределение ресурсов системы.

3. Программа обслуживания - предназначена для решения функциональных задач.

SPE-классификация программирования. Адаптируемые и адаптивные системы.

1. S - программы

Они полностью определяемы системной спецификацией - документом, полностью

описывающим структуры данных и действия программы.

Плюсом является простота построения тестов.

S-программы пишутся для тех задач, алгоритм которых известен и единственен.

(драйвер мыши)

2. Р - программы

Они решают задачи реального мира. При их решении внимание обращается не столько на

системную спецификацию, сколько на требования реальной задачи.

Р - программы характеризуются наличием множества известных алгоритмов решения задач.

(игра в шахматы)

3. Е - программы

Это такие программы, которые могут адаптироваться к изменяющейся обстановке. Е-программы используются, когда на момент написания программы алгоритмы решения задачи являются неопределёнными или неоднозначными.(ОС)

Адаптивные системы отличаются от адаптируемых систем тем, что в первом случае инициатива изменения системы принадлежит самой системе, а во втором случае стороннему пользователю. (Операционная система - адаптируемая)

Активные и пассивные методы обеспечения гарантоспособности ПО.

Таксономия гарантоспособности.

Гарантоспособность - свойство, позволяющее обоснованно полагаться на выполнение услуг, для которых программное обеспечение предназначено. Таксономия - соотношение понятий; -аналог надежности.

Неисправности - это дефекты, вносимые в текст программы коллективом разработчиков. Потенциальные неисправности - дефекты программы, не влияющие на её работу. Действующие неисправности - влияют на работу программы.

Алфавит языка ассемблер и типы операндов.

В тексте программы допустимы только латинские символы. Алфавит может быть чувствительным или нет к регистру.

Разные метки
LAB:

lab:

При написании программы на ассемблере в тексте программы можно употреблять:

все латинские буквы (A..Z, a..z), при этом регистр символов, как правило, не учитывается;

цифры: (0..9);

знаки:?, @, $, & и др.

разделители: #, /, \, *, (,) и др.

Типы операндов.

Список операндов:

Постоянные или непостоянный операнды.

Адресные операнды.

Перемещаемые операнды.

Счётчик адреса.

Регистровый операнд.

Базовый и индексный операнды.

Операнд записи.

Постоянные или непостоянный операнды - ими могут быть:

- число.

- строка.

-выражение, имеющие неизменные значения.

Адресные операнды - залают физическое расположение операнда в памяти с помощью указания 2-х составляющих логического адреса: сегмент и смещение.

Перемещаемые операнды. Любые символьные имена представляющие некоторые адреса памяти конкретные значения которых определяются после загрузки программы в память на исполнение.

Счётчик адреса - это специфический вид операнда соответствующего текущему значению счётчика команд в процессе компиляции. Обозначается знаком $. Значение данного операнда равно адресу 1-го байта команды той строки в которой он использован. Регистровый операнд - это имя регистрового ресурса процессора.

Базовые и индексные операнды - используются для организации базовой и индексной операции (массива).

Структурные операнды и записи - используются для доступа к сложным элементам, либо к битовым полям в пределах байта.

4. Арифметические действия на языке Ассемблер.

1. Команды инкремента и декремента

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

· Inc BX = add BX,1

· Dec BX = sub BX,1

Разрядность операции определяется типом операнда, который может быть 8,16,32-разрядный.

2. Команды сложения и вычитания

Add позволяет выполнить сложение регистровых и других операндов.

ADD DL,AH

ADD DL,10

Оба операнда двухадресных команд должны иметь одинаковую разрядность.

Аналогично операция вычитания SUB.

3. Умножение и деление.

В ядре процессора Intel MUL перемножает 8,16-биотвые операнды, создавая при этом 16,32-разрядные произведения. Для данной инструкции требуется указать только один операнд второй операнд должен находится в аккумуляторе. Старшая часть произведения будет размещаться в регистре D, а младшая в регистре A.

 

Пример: 5*8

MOV AL,5

MOV BH,8

MUL BH

MUL – беззнаковая команда.

IMUL – знаковая. В этом случае знаковый разряд операндов в процедуре умножения не участвует, а служит лишь для вычисления знака результата.

DIV – беззнаковое деление. Выполняет деление 16-разрядного на 8-разрядный операнды. В результате частное записывается в регистр AL, а остаток в регистр AH. Делитель всегда регистр DL, делимое – AX.

Пример: 51/10

MOV AX,51

MOV DL,10

DIV DL

;AL = 5, AH = 1.

IDIV - знаковое деление.

5. Архитектура памяти процессоров i386: системные регистры.

Данные регистры предназначены для организации работы ОС. Бывают следующих типов:

1. Управляющие(CR0,CR2,CR3 и др)

CR0 – разрешает защищённый режим, управляет страничной организацией памяти, управляет работой сопроцессора.

CR2 – содержит виртуальный (линейный) адрес при обращении к которому возникла ситуация отсутствия страницы в памяти.

CR3 – содержит адрес размещения таблицы страниц.

2. Отладочные(DR0-DR3)

Содержит 4 независимых точки останова(условия вызова отладочного прерывания)

DR7 – регистр управления отладкой, в него заносятся типы точек останова(память/порт)

DR6 – регистр состояния отладки, содержит описание последней точки останова.

3. Тестовый регистр страничной организации

TR6 – содержит виртуальный адрес, используемый страничными устройствами

TR7 – содержит физический адрес, используемый для тестирования устройства.

4. Регистры защищённого режима.

IDTR – содержит базу и размер таблицы векторов прерываний.

GDTR – содержит базу и размер таблицы глобальных дескрипторов.

LDTR – содержит селектор сегмента таблицы локальных дескрипторов.

TS – содержит селектор сегмента, в котором располагается TSS для текущей задачи.

Для передачи управления от задачи к задаче используется специальный стек TSS, расположенный в основной памяти.

6. Архитектура процессоров i386: виды адресации.

Операнды - объекты, на которые действуют инструкции или директивы, либо это объекты, которые определяют или уточняют действие инструкция или директив.

Возможна следующая классификация операндов:

постоянные (непосредственные) операнды - число, строка имя или выражение, имеющие

некоторое физическое значение. При этом операнд не должен зависеть от места

расположения программы в памяти (неперемещаемый операнд).

2. адресные операнды.

3. перемещаемые операнды.

4. счетчик адреса,
регистровый операнд,
базовый и индексный операнды,
структурные операнды,
записи.

Постоянные (непосредственные) операнды - это число, строка имя или выражение, имеющие некоторое фиксированное значение. При этом операнд не должен зависеть от места расположения программы в памяти.

Адресные операнды - задают физическое положение операндов в памяти с помощью указания двух составляющих адреса: сегмента и смещения, пример: MOV AX, OOOOh

MOVDS,AX

MOV AX, DS: OOOOh

Перемещаемые операнды - это любые символьные имена представляющие адреса памяти, не привязанные жестко к расположению физической памяти. Сегментная составляющая адреса перемещаемого операнда в момент компиляции неизвестна и будет определена только после загрузки исполняемого файла в память для исполнения, пример:.DATA

DATA SEGVENT; определяем сегмент с именем DATA

MAS DW 25 DIR(O); резервируем строку в памяти

CODE SEGMENT

LEA SI, MAS; ДУФ - команда загрузки регистра SI

Счетчик адреса - это специфический вид операнда, эквивалентный смещению адреса соответствующего той строке, в которой расположен его символ ($). При использовании

данного типа операнда программист должен самостоятельно контролировать длину команд.
В процессе компиляции данный символ или выражение с его участием будет заменено
на постоянное значение,
пример: JMP $+3; длина команды 2 байта

CLD; длина команды 1 байт

MOVAL, lh

Регистровый операнд - в качестве такого операнда используется один из регистров общего назначения.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...