Алфавит языка ассемблер и типы операндов.
Стр 1 из 8Следующая ⇒ Ответы на зачет по ОСПО ПРЕПОДОВАТЕЛЬ КАРДАШ ДЕНИС ИВАНОВИЧ СТУДЕНТ ГРУППЫ ЗИ-24 SPE-классификация программного обеспечения. Системная программа - предназначена для решения технологических задач и служащая 1. Управляющая программа - это системная программа, реализующая управление ресурсами. 2. Супервиза - осуществляет распределение ресурсов системы. 3. Программа обслуживания - предназначена для решения функциональных задач. SPE-классификация программирования. Адаптируемые и адаптивные системы. 1. S - программы Они полностью определяемы системной спецификацией - документом, полностью описывающим структуры данных и действия программы. Плюсом является простота построения тестов. S-программы пишутся для тех задач, алгоритм которых известен и единственен. (драйвер мыши) 2. Р - программы Они решают задачи реального мира. При их решении внимание обращается не столько на системную спецификацию, сколько на требования реальной задачи. Р - программы характеризуются наличием множества известных алгоритмов решения задач. (игра в шахматы) 3. Е - программы Это такие программы, которые могут адаптироваться к изменяющейся обстановке. Е-программы используются, когда на момент написания программы алгоритмы решения задачи являются неопределёнными или неоднозначными.(ОС) Адаптивные системы отличаются от адаптируемых систем тем, что в первом случае инициатива изменения системы принадлежит самой системе, а во втором случае стороннему пользователю. (Операционная система - адаптируемая) Активные и пассивные методы обеспечения гарантоспособности ПО.
Таксономия гарантоспособности. Гарантоспособность - свойство, позволяющее обоснованно полагаться на выполнение услуг, для которых программное обеспечение предназначено. Таксономия - соотношение понятий; -аналог надежности. Неисправности - это дефекты, вносимые в текст программы коллективом разработчиков. Потенциальные неисправности - дефекты программы, не влияющие на её работу. Действующие неисправности - влияют на работу программы. Алфавит языка ассемблер и типы операндов. В тексте программы допустимы только латинские символы. Алфавит может быть чувствительным или нет к регистру.
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 Счетчик адреса - это специфический вид операнда, эквивалентный смещению адреса соответствующего той строке, в которой расположен его символ ($). При использовании данного типа операнда программист должен самостоятельно контролировать длину команд. CLD; длина команды 1 байт MOVAL, lh Регистровый операнд - в качестве такого операнда используется один из регистров общего назначения.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|