Регистры состояния и управления




Постановка задачи

Разработка алгоритма программы (построение блок схемы, граф-схемы или текстовое или математическое описание решения);

Формализация алгоритма

Компиляция программы;
Компиляция - процесс перевода программы из текстового вида в машинный код.

Компоновка программы;
Компоновка - создание из файла объектного кода исполняемого модуля.

Запуск и тестирование исполняемого модуля программы.

 

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

 

 

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

MOVS/MOVSB/MOVSW/MOVSD–

  • выполнить копирование байта, слова или двойного слова из операнда источника в операнд приемник, при этом адреса элементов предварительно должны быть загружены:
    • адрес источника — в пару регистров ds:esi/si (ds по умолчанию, допускается замена сегмента);
    • адрес приемника — в пару регистров es:edi/di (замена сегмента не допускается);
  • в зависимости от состояния флага df изменить значение регистров esi/si и edi/di:
    • если df=0, то увеличить содержимое этих регистров на длину структурного элемента последовательности;
    • если df=1, то уменьшить содержимое этих регистров на длину структурного элемента последовательности;
  • если есть префикс повторения, то выполнить определяемые им действия (см. команду rep).

 

 

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

RCL–

  • сдвиг всех битов операнда влево на один разряд, при этом старший бит операнда становится значением флага переноса cf;
  • одновременно старое значение флага переноса cf вдвигается в операнд справа и становится значением младшего бита операнда;
  • указанные выше два действия повторяются количество раз, равное значению второго операнда команды rcl.

 

Rcr–

  • сдвиг всех битов операнда вправо на один разряд; при этом младший бит операнда становится значением флага переноса cf;
  • одновременно старое значение флага переноса — в операнд слева и становится значением старшего бита операнда;
  • указанные выше два действия повторяются количество раз, равное значению второго операнда команды rcr.

 

Rol –

  • сдвиг всех битов операнда влево на один разряд, при этом старший бит операнда вдвигается в операнд справа и становится значением младшего бита операнда;
  • одновременно выдвигаемый бит становится значением флага переноса cf;
  • указанные выше два действия повторяются количество раз, равное значению второго операнда.

 

Ror –

  • сдвиг всех битов операнда вправо на один разряд, при этом младший бит операнда вдвигается в операнд слева и становится значением старшего бита операнда;
  • одновременно этот младший бит операнда становится значением флага переноса cf;
  • старое значение флага переноса cf вдвигается в операнд слева и становится значением старшего бита операнда;
  • указанные выше два действия повторяются количество раз, равное значению второго операнда.

 

10. Перечислите директивы резервирования и инициализации данных простых типов. Охарактеризуйте каждый тип с точки зрения формата представления и диапазона принимаемых значений. Приведите примеры использования директив резервирования и инициализации данных.

Local, •db — резервирование памяти для данных размером 1 байт.

•dw — резервирование памяти для данных размером 2 байта.

•dd — резервирование памяти для данных размером 4 байта.

•df — резервирование памяти для данных размером 6 байт;

•dp — резервирование памяти для данных размером 6 байт.

•dq — резервирование памяти для данных размером 8 байт.

•dt — резервирование памяти для данных размером 10 байт.

 

  1. Назовите цели и задачи дисциплины. Дайте определение понятиям “программы“,“программное обеспечение“,“системное программирование“. Перечислите и опишите этапы подготовки программы.
  • программное обеспечением – совокупность системы обработки информации и программных документов, необходимых для эксплуатации
  • программы – это данные, предназначенные для управления конкретными системами обработки информации в целях реализации определенного алгоритма.
  • системное программирование –
  1. Перечислите команды переноса элемента из аккумулятора в цепочку. Опишите синтаксис каждой команды и принцип ее работы. Приведите примеры использования команд переноса элемента из аккумулятора в цепочку.

STOS/STOSB/STOSW/STOSD–

  • записать элемент из регистра al/ax/eax в ячейку памяти, адресуемую парой es:di/edi. Размер элемента определяется неявно (для команды stos) или конкретной применяемой командой (для команд stosb, stosw, stosd);
  • изменить значение регистра di на величину, равную длине элемента цепочки. Знак этого изменения зависит от состояния флага df:
    • df=0 — увеличить, что означает просмотр от начала цепочки к ее концу;
    • df=1 — уменьшить, что означает просмотр от конца цепочки к ее началу.

 

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

 

 

  1. Перечислите возможные типы операндов ассемблера. Опишите синтаксические правила формирования выражений ассемблера. Приведите примеры, поясняющие правила формирования выражений.

Операнд назначения

 

  1. Дайте определение понятия “синтаксис ассемблера“ как правила написания программных кодов. Представьте формат предложения ассемблера. Представьте общий формат команд и макрокоманд ассемблера.

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

 

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

Jmp­–

  • если операнд в команде jmp — метка в текущем сегменте команд (a8, 16, 32), то ассемблер формирует машинную команду, операнд которой является значением со знаком, являющимся смещением перехода относительно следующей за jmp команды. При этом виде перехода изменяется только регистр eip/ip;
  • если операнд в команде jmp — символический идентификатор ячейки памяти (m16, 32, 48), то ассемблер предполагает, что в ней находится адрес, по которому необходимо передать управление. Этот адрес может быть трех видов:

 

 

  1. Дайте определение понятия “операнд”. Приведите классификацию операндов, поддерживаемых транслятором ассемблера. Поясните на примерах каждый перечисленный пункт классификации.

 

  • Операнд- части команды, макро-команды или директивы ассемблера, обзначающая объекты, над которыми производиться действие

 

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

XOR–

  • выполнить операцию логического исключающего ИЛИ над операндами: бит результата равен 1, если значения соответствующих битов операндов различны, в остальных случаях бит результата равен 0;
  • записать результат сложения в приемник;
  • установить флаги.

 

And–

  • выполнить операцию логического умножения над операндами источник и приемник: каждый бит результата равен 1, если соответствующие биты операндов равны 1, в остальных случаях бит результата равен 0;
  • записать результат операции в приемник;
  • установить флаги.

 

 

Or–

  • выполнить операцию логического ИЛИ над битами операнда назначения, используя в качестве маски второй операнд — маска. При этом бит результата равен 0, если соответствующие биты операндов маска и назначения равны 0, в противном случае бит равен 1;
  • записать результат операции в источник (операнд маска остается неизменным);
  • установить флаги.

 

Shl–

  • сдвиг всех битов операнда влево на один разряд, при этом выдвигаемый слева бит становится значением флага переноса cf;
  • одновременно слева в операнд вдвигается нулевой бит;
  • указанные выше два действия повторяются количество раз, равное значению второго операнда.

 

Test–

  • выполнить операцию логического умножения над операндами приемник и источник: бит результата равен 1, если соответствующие биты операндов равны 1, в остальных случаях бит результата равен 0;
  • установить флаги.

 

 

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

Idiv–

  • если делитель размером в байт, то делимое должно быть расположено в регистре ax. После операции частное помещается в al, а остаток — в ah;
  • если делитель размером в слово, то делимое должно быть расположено в паре регистров dx:ax, причем младшая часть делимого находится в ax. После операции частное помещается в ax, а остаток — в dx;
  • если делитель размером в двойное слово, то делимое должно быть расположено в паре регистров edx:eax, причем младшая часть делимого находится в eax. После операции частное помещается в eax, а остаток — в edx;

 

 

  1. Перечислите основные типы данных микропроцессора. Опишите каждый тип с точки зрения размерности и с точки зрения разрядности. Сформулируйте основной принцип хранения данных для микропроцессоров Intel. Поясните этот принцип на конкретном примере.

 

 

  1. Назовите регистры состояния и управления для микропроцессоров архитектуры IA-32. Укажите разрядность перечисленных регистров. Охарактеризуйте каждый регистр с точки зрения его использования и функционального назначения. Приведите структуру регистра состояния.

Регистры состояния и управления

В микропроцессор включены несколько регистров (см. рис. 1), которые постоянно содержат информацию о состоянии как самого микропроцессора, так и программы, команды которой в данный момент загружены на конвейер. К этим регистрам относятся:

  • регистр флагов eflags/flags;
  • регистр указателя команды eip/ip.

Используя эти регистры, можно получать информацию о результатах выполнения команд и влиять на состояние самого микропроцессора. Рассмотрим подробнее назначение и содержимое этих регистров:

eflags /flags (flag register) — регистр флагов. Разрядность eflags/flags — 32/16 бит. Отдельные биты данного регистра имеют определенное функциональное назначение и называются флагами. Младшая часть этого регистра полностью аналогична регистру flags для i8086.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-07 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: