Билет
№ 1. Микропроцессор — процессор (устройство, отвечающее за выполнение
арифметических, логических и операций управления, записанных в машинном коде),
реализованный в виде одной микросхемы[1] или комплекта из нескольких
специализированных микросхем[2] (в противоположность реализации процессора в
виде электрической схемы на элементной базе общего назначения или в виде
программной модели). Первые микропроцессоры появились в 1970-х и применялись в
электронных калькуляторах, в них использовалась двоично-десятичная арифметика
4-х битных слов. Вскоре их стали встраивать и в другие устройства, например
терминалы, принтеры и различную автоматику. Доступные 8-битные микропроцессоры
с 16-битной адресацией позволили в середине 1970-х создать первые бытовые
микрокомпьютеры.
В связи с переездом на другой домен вся информация перенесена на сайт: тестответ.рф
В связи с переездом на другой домен вся информация перенесена на сайт: тестответ.рф
Билет
№ 2. Определение 1. Прямым кодом числа называют представление беззнакового
двоичного числа.
Для
положительного числа прямой код представляет модуль числа.
Определение
2. Обратный код (дополнение до 1) двоичного числа получают заменой всех его
единиц на нули, а нулей на единицы.
Пример.
Дополнение до 1 двоичного числа 001000 есть двоичное число 110111.
Определение
3. Дополнительный код (дополнение до 2) двоичного числа получается добавлением
1 к младшему значащему разряду его дополнения до 1.
Пример.
Дополнение до 2 двоичного числа 001000=110111+000001=111000.
Модуль
отрицательного числа представлен в дополнительном коде.
Билет
№ 3. Микропроцессор подразделяет память на 8-разрядные байты, 16-разрядные
слова и 32-разрядные двойные слова. Байт образуют восемь соседних битов,
начинающихся с любого логического адреса, и эти биты нумеруются с 0 до 7,
причем бит 0 является самым младшим значащим битом. На рис. 1.5 показано
сравнение основных типов данных.
Основные
типы данных :
байт
(byte) - 8 бит
слово
(word) - 16 бит
двойное
слово (doubleword) - 32 бит
четверное
слово (quadword) - 64 бит
Слова
хранятся в порядке «старший байт, младший байт».
Целое
число – это число, не имеющее запятой. Число может быть беззнаковым
(положительным), и со знаком минус (отрицательным). Примеры:
Билет
№ 4. вещественные числа – это числа с запятой, после которой идут десятичные
значения. Еще говорят, что они имеют плавающую точку.
Билет
№ 5. Двоично-десятичные числа
Микропроцессор
позволяет оперировать с числами в двоично-десятичной кодировке (binary-coded
decimal - BCD). Двоично-десятичное число считается неупакованным, если одна
десятичная цифра кодируется одним байтом. Двоично-десятичное число считается
упакованным, если одна десятичная цифра кодируется четырьмя битами.
Целочисленное устройство микропроцессора оперирует с 8-битовыми упакованными
(0...99) или неупакованными (0...9) BCD-числами без знака. FPU поддерживает
80-битные упакованные BCD-числа со знаком. Такое число содержит 18 десятичных
цифр в битах 0...71, а бит 79 - бит знака (биты 72...78 не используются). Этот
тип позволяет работать с целыми числами в диапазоне -1018+1 ... +1018-1.
Билет
№ 6. Символьные данные состоят из последовательности символов. Символьные типы
объемом в двойное слово (32 бит) отсутствуют.
Билет
№ 8. Регистры общего назначения
Регистрами
общего назначения называются 32-битные регистры EAX, EBX, ECX, EDX, EBP, ESP,
ESI и EDI. Данные регистры используются для хранения операндов логических и
арифметических команд. Кроме того, они могут использоваться для хранения
операндов при вычислении адресов (кроме регистра ESP, который не может быть
использован как индексный операнд).
Билет
№ 9 и 10. АЛУ представляет собой устройство, выполняющее арифметические
операции с числами, поступающими на входы a и b (сложение, вычитание, умножение
и деление). Числа задаются в двоичной системе счисления в виде вектора из нулей
и единиц следующим образом: первые семь элементов отводятся под запись числа,
восьмой - знаковый (0 - число положительно, 1 - отрицательное). Тип операции
определяется числом, поступающим на вход com (0 - сложение, 1 - вычитание, 2 --умножение,
3 - деление). На выходе s получаем результат операции, а перенос u показывает
корректность полученного результата (операция выполнена успешно - 0, иначе -
1).
ЛУ
может оперировать четырьмя типами информационных объектов: булевскими (1 бит),
цифровыми (4 бита), байтными (8 бит) и адресными (16 бит). В АЛУ выполняется 51
различная операция пересылки или преобразования этих данных. Так как
используется 11 режимов адресации (7 для данных и 4 для адресов), то путем
комбинирования "операция/ режим адресации" базовое число команд 111
расширяется до 255 из 256 возможных при однобайтном коде операции.
Арифметико-логическое
устройство функционально можно разделить на две части :
а)
микропрограммное устройство (устройство управления), задающее последовательность
микрокоманд (команд);
б)
операционное устройство (АЛУ), в котором реализуется заданная
последовательность микрокоманд (команд).
10.Арифметико-логические
устройства (АЛУ) служат для выполнения арифметических и логических
преобразований над словами, называемыми в этом случае операндами. АЛУ служит
основной частью операционного блока ЭВМ.Группу логических операций составляют
операции дизъюнкция (логическое ИЛИ) и конъюнкция (логическое И) над
многоразрядными двоичными словами, а также операция сравнения кодов на
равенство
11.Регистр
флагов — регистр процессора, отражающий текущее состояние процессора. В
микропроцессорах Intel x86 имеет название FLAGS и является 16-разрядным.
Расширенные регистры EFLAGS и RFLAGS являются 32-битными и 64-битными
соответственно. Расширенные регистры сохраняют обратную совместимость. Девять
из 16 битов флагового регистра являются активными и определяют текущее
состояние машины и результатов выполнения. Многие арифметические команды и
команды сравнения изменяют состояние флагов. Назначение флаговых битов: Флаг
Назначение O (Переполнение) Указывает на переполнение старшего бита при арифметических
командах. D (Направление) Обозначает левое или правое направление пересылки или
сравнения строковых данных (данных в памяти превышающих длину одного слова). I
(Прерывание) Указывает на возможность внешних прерываний. T (Пошаговый режим) Обеспечивает
возможность работы процессора в пошаговом режиме. Например, программа DOS DEBUG
устанавливает данный флаг так, что возможно пошаговое выполнение каждой команды
для проверки изменения содержимого регистров и памяти. S (Знак) Содержит
результирующий знак после арифметических операций (0 - плюс, 1 - минус). Z
(Ноль) Показывает результат арифметических операций и операций сравнения (0 -
ненулевой, 1 – нулевой результат). A (Внешний перенос) Содержит перенос из 3-го
бита для 8-битных данных используется для специальных арифметических операций. P
(Контроль четности) Показывает четность младших 8- битовых (1 -четное и 0 -
нечетное число). C (Перенос) Содержит перенос из старшего бита, после арифметических
операций, а также последний бит при сдвигах или циклических сдвигах.
При
программировании на ассемблере наиболее часто используются флаги O, S, Z, и C
для арифметических операций и операций сравнения, а флаг D для обозначения
направления в операциях над строками. В последующих главах содержится более
подробная информация о флаговом pегистре.
14.сегментированной
модели (Segmented Model) для программы память представляется группой
независимых адресных блоков, называемых сегментами. Для адресации байта памяти
программа должна использовать логический адрес, состоящий из селектора сегмента
и смещения. Селектор сегмента выбирает определенный сегмент, а смещение
указывает на конкретный байт в адресном пространстве выбранного сегмента. Каждая
задача в защищенном режиме может иметь до 16383 сегментов, размером до 4 Гбайт
каждый, таким образом, общий объем памяти, адресуемой программой составляет 64
Тбайт. Микропроцессор при помощи блока сегментации отображает логический адрес
в линейное адресное пространство. Сегментация позволяет эффективно управлять
пространством логических адресов. Сегменты используются для объединения
областей памяти с общими атрибутами. Каждый сегмент имеет несколько связанных с
ним атрибутов: размер, расположение, тип (стек, программа или данные) и
характеристики защиты.
15.Сегментные
регистры используются при формировании линейных адресов памяти. Вторым
компонентом для формирования линейного адреса является эффективный адрес или
смещение (применительно к архитектуре IA-32 эти называния равноправны). Способ
формирования линейного адреса зависит от режима работы процессора и подробно
описан в разделе Линейный адрес.
В
микропроцессоре 8086 было четыре 16-разрядных сегментных регистра:
CS
-- сегментный регистр кода;
DS
-- сегментный регистр данных;
ES
-- сегментный регистр дополнительных данных;
SS
-- сегментный регистр стека.
Начиная
с микропроцессора 80386, сегментных регистров стало шесть, но их разрядность не
изменилась. "Новичками" стали два сегментных регистра дополнительных
данных -- FS и GS.
12.
В реальном режиме специальные возможности и характеристики микропроцессора 286
не проявляются, поэтому компьютер с микропроцессором 286, функционирующем в
реальном режиме, может быть полностью совместимым с обычным РС. Для того, чтобы
воспользоваться дополнительными возможностями, следует переключиться на
защищенный режим.
13.
В защищенном режиме микропроцессор 286 обладает рядом дополнительных
возможностей, позволяющих ему наращивать количество программ, с которыми
компьютер может работать одновременно. Это достигается за счет четырех основных
средств: защиты (которая определяет наименование данного режима), расширенной
памяти, виртуальной памяти и мультизадачности. Защита позволяет операционной
системе воздвигать барьеры для защиты программы от воздействия функционирования
других программ или самой операционной системы. В стандартном РС ими при работе
микропроцессора 286 в реальном режиме отдельная программа может испортить
работу операционной системы или какой-либо другой программы, использующей компьютер,
либо даже заблокировать весь компьютер, остановив его функционирование.
Защищенный режим работы микропроцессора 286 позволяет операционной системе
предотвращать порчу компьютера и даже порчу какой-либо части памяти любой из
программ. Когда мы используем наши компьютеры для одновременной работы только с
одной программой, то неправильная работа программы и блокировка ею машины не
играет столь уж большой роли. Однако, если нам нужно выполнять на компьютере
одновременно несколько программ, намного возрастает важность защиты
функционирования компьютера от некорректно работающих программ. Средство защиты
делает это возможным. Защищенный режим работы микропроцессора 286 предоставляет
больший объем памяти, причем это достигается двумя путями. Во-первых, за счет
расширенной памяти: микропроцессор 286 позволяет устанавливать в компьютер до
шестнадцати миллионов байтов рабочей памяти. Во-вторых, за счет виртуальной
памяти: микропроцессор 286 может имитировать (или иметь) даже большее
количество памяти, чем имеется в фактическом наличии. Виртуальная память
позволяет компьютеру предоставлять каждой программе до одного биллиона байтов
(один гигабайт) для работы с ними. Это очень большой объем памяти. Наконец,
используя поддерживаемую аппаратными средствами мультизадачность,
микропроцессор 286 может быстро и надежно осуществлять переключение между
программами, которые выполняются одновременно. Мультизадачность применяется в
случае, если компьютер одновременно работает с более чем одной программой
(задачей). Фактически, в каждый момент времени компьютер выполняет команды лишь
одной программы, однако в процессе мультизадачной работы обрабатываться все
программы - это можно сравнить с жонглером, который может одновременно работать
с множеством шаров. Любой компьютер может попытаться работать в режиме
мультизадачности, однако такую работу он не в состоянии выполнять на должном
уровне, не обладая определенными специальными аппаратными средствами (такими,
например, как защита памяти). Защищенный режим микропроцессора 286 предусматривает
множество средств, которые практически обеспечивают возможность выполнения
компьютером мультизадачной работы.
Билет
1 назначения микропроцессора
Микропроцессор
— главный вычислительный элемент компьютера, его «сердце».
На
первый взгляд, процессор — просто выращенный по специальной технологии кристалл
кремния. Процессор содержит в себе множество отдельных элементов —
транзисторов, которые в совокупности и наделяют компьютер способностью
«думать». Точнее, вычислять, производя определенные математические операции с
числами, в которые преобразуется любая поступающая в компьютер информация.
Безусловно, один транзистор никаких особых вычислений произвести не может.
Единственное, на что способен этот электронный переключатель — это пропустить
сигнал дальше или задержать его. Наличие сигнала дает логическую единицу (да);
его отсутствие — логический же ноль (нет).
Каждый
процессор включает в себя миллионы транзисторов, но и самих процессоров для
работы компьютера требуется немало. Помимо центрального процессора, который во
всем мире принято обозначать аббревиатурой CPU (Central Processor Unit),
схожими микросхемами оборудована практически каждая компьютерная «железяка».
Процессор
— это не просто скопище транзисторов, а целая система множества важных
устройств. На любом процессорном кристалле находятся
2.
Применение прямого кода
В
информатике прямой код используется главным образом для записи неотрицательных
целых чисел. Его легко получить из представления целого числа в любой другой
системе счисления. Для этого достаточно перевести число в двоичную систему
счисления, а затем заполнить нулями свободные слева разряды разрядной сетки
машины.
Однако,
у прямого кода есть два недостатка:
В
прямом коде есть два варианта записи числа 0 (например, 00000000 и 10000000 в
восьмиразрядном представлении).
Использование
прямого кода для представления отрицательных чисел в памяти компьютера
предполагает или выполнение арифметических операций центральным процессором в
прямом коде, или перевод чисел в другое представление (например, в
дополнительный код) перед выполнением операций и перевод результатов обратно в
прямой код (что неэффективно).
Выполнение
арифметических операций над числами в прямом коде затруднено: например, даже
для сложения чисел с разными знаками требуется кроме сумматора иметь
специальный блок-«вычитатель», эффективно реализовать который, скорее всего, не
представляется возможным. Кроме того, при выполнении арифметических операций
требуется особо обрабатывать значащий разряд, так как он не имеет веса. Также
требуется обработка «отрицательного нуля». Таким образом, выполнение арифметических
операций над числами в прямом коде потребует сложной архитектуры центрального
процессора и в общем является неэффективным.
Гораздо
более удобным для выполнения арифметических операций является дополнительный
код.
Преобразование
числа из прямого кода в дополнительный
Если
число, записанное в прямом коде, положительное, то к нему дописывается старший
(знаковый) разряд, равный 0, и на этом преобразование заканчивается;
Если
число, записанное в прямом коде, отрицательное, то все разряды числа инвертируются(обратный
код ), а к результату прибавляется 1. К получившемуся числу дописывается
старший (знаковый) разряд, равный 1.
3
Типы данных
При
программировании на языке ассемблера используются данные следующих типов:
Непосредственные
данные, представляющие собой числовые или символьные значения, являющиеся
частью команды.
Непосредственные
данные формируются программистом в процессе написания программы для конкретной
команды ассемблера.
Данные
простого типа, описываемые с помощью ограниченного набора директив
резервирования памяти, позволяющих выполнить самые элементарные операции по
размещению и инициализации числовой и символьной информации. При обработке этих
директив ассемблер сохраняет в своей таблице символов информацию о
местоположении данных (значения сегментной составляющей адреса и смещения) и
типе данных, то есть единицах памяти, выделяемых для размещения данных в
соответствии с директивой резервирования и инициализации данных.
Комментариев нет:
Отправить комментарий