Главная страница
Навигация по странице:

  • ИМЕНИ МУХАММАДА АЛ-ХАРЕЗМИЙ

  • САМОСТОЯТЕЛЬНАЯ РАБОТА Выполнил(а): студент(ка) группы _______ _________________________ Принял(а): _________________________

  • 1Что такое Систе́ма кома́нд

  • 2.Виды системных команд Совокупность всех операций, которые может выполнять машина , образует систему ее команд

  • Команды ввода и вывода

  • Операционная часть

  • 4.Возможные структуры машинных команд

  • Машинная команда. Кафедра по предмету тема


    Скачать 328.63 Kb.
    НазваниеКафедра по предмету тема
    Дата14.04.2023
    Размер328.63 Kb.
    Формат файлаdocx
    Имя файлаМашинная команда.docx
    ТипСамостоятельная работа
    #1062715




    МИНИСТЕРСТВО ПО РАЗВИТИЮ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОММУНИКАЦИЙ РЕСПУБЛИКИ УЗБЕКИСТАН ФЕРГАНСКИЙ ФИЛИАЛ ТАШКЕНТСКОГО УНИВЕРСИТЕТА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

    ИМЕНИ МУХАММАДА АЛ-ХАРЕЗМИЙ
    ФАКУЛЬТЕТ

    «_________________________________________________________»

    КАФЕДРА

    «_________________________________________________________»

    ПО ПРЕДМЕТУ

    «_________________________________________________________»
    Тема:_______________________________________

    ____________________________________________

    САМОСТОЯТЕЛЬНАЯ РАБОТА

    Выполнил(а): студент(ка) группы _______

    _________________________

    Принял(а): _________________________

    ФЕРГАНА -2021

    Система команда Машины

    Введение

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

    1Что такое Систе́ма кома́нд (также набо́р кома́нд) — соглашение о предоставляемых архитектурой средствах программирования, а именно:

    • определённых типах данных,

    • инструкций,

    • системы регистров,

    • методов адресации,

    • моделей памяти,

    • способов обработки прерываний и исключений,

    • методов ввода и вывода.

    Система команд представляется спецификацией соответствия (микро)команд наборам кодов (микро)операций, выполняемых при вызове команды, определяемых (микро)архитектурой системы. (При этом на устройствах с различной (микро)архитектурой может быть реализована одна и та же система команд. Например, Intel Pentium и AMD Athlon имеют почти идентичные версии системы команд x86, но имеют радикально различный внутренний дизайн.)

    Базовыми командами являются, как правило, следующие:

    • арифметические, например, «сложения» и «вычитания»;

    • битовые, например, «логическое и», «логическое или» и «логическое не»;

    • присваивание данных, например, «переместить», «загрузить», «выгрузить»;

    • ввода-вывода, для обмена данными с внешними устройствами;

    • управляющие инструкции, например, безусловный, условный или косвенный переход, вызов подпрограммы, возврат из подпрограммы.

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

    • Если объединить наиболее часто используемую последовательность микроопераций под одной микрокомандой, то надо будет обеспечивать меньше микрокоманд. Такое построение системы команд носит название CISC (Complex Instruction Set Computer), в распоряжении имеется небольшое число составных команд.

    • С другой стороны, это объединение уменьшает гибкость системы команд. Вариант с наибольшей гибкостью — наличие множества близких к элементарным операциям команд. Это RISC (Reduced Instruction Set Computer), в распоряжении имеются усечённые, простые команды.

    • Ещё большую гибкость системы команд можно получить, используя MISC-подход, построенный на уменьшении количества команд до минимального и упрощении вычислительного устройства обработки этих команд.



    2.Виды системных команд

    Совокупность всех операций, которые может выполнять машина, образует систему ее команд. Система команд зависит от конструкции ЭВМ;
    в пределах одного семейства компьютеры имеют совместимые инструкции.

    Несмотря на отдельные отличия, системы машинных команд имеют много общего. Любая ЭВМ обязательно содержит следующие группы команд обработки информации.

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

    Команда MOV передает байт, слово или двойное слово из источника в приемник. В поле операндов приемник находится на первом месте, источник - на втором.

    Команда XCHG осуществляет обмен байт, слов или двойных слов. Различий между приемником и источником нет.

    Команда XLAT заменяет значение в регистре AL на байт из таблицы, адресуемой регистром (Е)BX, причем индексом таблицы служит содержимое регистра AL. Эта команда удобна для преобразования из одного кода в другой.

    Команда LEA обеспечивает вычисление эффективного адреса ЕА ячейки памяти в соответствии с указанным способом адресации и загрузку ЕА (а не содержимого адресуемой ячейки памяти!) в указанный общий регистр.
    Команды LDS, LES... загружают четыре (или шесть) смежных байта из памяти в адресуемый регистр (16 или 32 бита) и в соответствующий сегментный регистр (16 бит). Слово (двойное слово) операнда источника из ячейки памяти, адресуемой в соответствии с указанным методом адресации, передается в выбранный регистр, а следующее слово - в регистр DS (команда LDS), в регистр ES (команда LES) и т.д.

    2. Арифметические операции, которым фактически обязана своим рождением вычислительная техника. Конечно, доля вычислительных действий в современном компьютере заметно уменьшилась, но они по-прежнему играют в программах важную роль.

    3. Логические операции, позволяющие компьютеру производить анализ получаемой информации. После выполнения такой команды, с помощью условного перехода ЭВМ способна выбрать дальнейший ход выполнения программы. Простейшими примерами команд рассматриваемой группы могут служить сравнение, а также известные логические операции И, ИЛИ, НЕ (инверсия). Кроме того, к ним часто добавляется анализ отдельных битов кода, их сброс и установка.

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

    5. Команды ввода и вывода информации для обмена с внешними устройствами.

    6. Команды управления, к которым прежде всего следует отнести условный и безусловный переход, а также команды обращения к подпрограмме (переход с возвратом). Некоторые ЭВМ имеют специальные команды для организации циклов, но это не обязательно: любой цикл может быть сведен к той или иной комбинации условного и безусловного переходов. Часто к этой же группе команд относят операции по управлению процессором; с ростом сложности устройства процессора количество такого рода команд увеличивается.

    По степени сложности команд и их ассортименту процессоры разделяют на две группы — RISC и CISC (см. “Процессор”).

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

    Любая команда ЭВМ обычно состоит из двух частей — операционной и адресной. Операционная часть (иначе она еще называется кодом операции — КОП) указывает, какое действие необходимо выполнить с информацией. Адресная часть описывает, где используемая информация хранится и куда поместить результат.

    Команды могут быть одно-, двух- и трехадресные в зависимости от количества возможных операндов. Первые ЭВМ имели наиболее простую и наглядную трехадресную систему команд. Например: взять числа из адресов памяти А1 и А2, сложить их и сумму поместить в адрес А3. Для реализации этого сложения на одноадресной машине потребуется выполнить не одну, а три команды:

    a) извлечь содержимое ячейки А1 в сумматор;

    b) сложить сумматор с числом из А2;

    c) записать результат из сумматора в А3.

    Может показаться, что одноадресной машине для решения любой задачи потребуется втрое больше команд, чем трехадресной. На самом деле это далеко не всегда так. Попробуйте самостоятельно спланировать программу вычисления выражения Y = (X1 + X2) * X3/X4 и вы с удивлением обнаружите, что потребуется 3 трехадресных команды и всего 5 одноадресных. Таким образом, одноадресная машина в чем-то даже эффективнее, т.к. она не производит ненужной записи в память промежуточных результатов.

    Ради полноты изложения следует сказать о возможности реализации безадресной (нульадресной) машины, использующей особый способ организации памяти — стек. Хотя подобная машина неудобна для человека, она легко реализуется в компьютере; в частности, именно так устроена JAVA-машина.

    Чтобы получить хотя бы некоторое представление об уровне машинных команд, приведем примеры нескольких типичных инструкций для процессоров семейства Intel.

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

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

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

    Эксперименты показывают 5, что для процессоров типа Pentium и ниже простые инструкции (пересылки, сложение регистров и т.п.) выполняются примерно за один такт. Таким образом, тактовая частота вполне может служить приблизительной оценкой количества таких операций, выполняемых за 1 секунду. Для более поздних моделей картина существенно “размывается” из-за сложных методов одновременного выполнения нескольких операций.

    3.Форматы машинных команд


    Представление данных и архитектура ЭВМ / Структура и форматы машинных команд

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

    Машинная операция – это действия машины по преобразованию информации, выполняемые под воздействием одной команды.

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

    Машинный такт – период тактовой частоты работы процессора.


    Машинный цикл­­ –­ количество машинных тактов, требуемых для выполнения одной команды.

    По характеру выполняемых операций различают следующие основные группы команд:

    • арифметические операции над числами с фиксированной или плавающей точкой;

    • команды двоично-десятичной арифметики;

    • логические (поразрядные) операции;

    • пересылка операндов;

    • операции ввода-вывода;

    • передача управления;

    • управление работой центрального процессора.

    Машинная команда состоит из операционной и адресной частей. Эти части могут состоять из нескольких полей. В общем виде машинная команда имеет следующую структуру:


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

    3.1Формат машинных команд в таблицах


    Система машинных команд является важнейшей частью архитектуры компьютера, так как с их помощью производится непосредственное управление работой процессора. Каждая команда ассемблера = 1 команде машины.

    1. Команды, которые не содержат операндов, занимают в памяти 1 байт.

    ret

























    0 7

    1. Команды с одним операндом (одноадресные)

    Операнд в 16-ти разрядном регистре. Машинная команда занимает 1 байт, который делится на 2 поля: биты 0-4 хранят код операции (КОП), а биты 5-7 - код регистра.








    коп










    reg




    0 7

    В таблице приведены соответствия кодов в r/m и названий для 16-разрядных регистров.

    Таблица 1

    Код

    000

    001

    010

    011

    100

    101

    110

    111

    Регистр

    AX

    CX

    DX

    BX

    SP

    BP

    SI

    DI

    Операнд в 8-разрядном либо в 16-разрядном регистре. Команда занимает 2 байта.
    Однобитное поле w определяет длину операнда. Поле mod (3 бита) показывает, находится ли операнд в регистре или в памяти. Если mod = 11, то операнд содержится в регистре, а три остальные комбинации (00, 01, 10) относятся к памяти. Когда операнд - в регистре, поле r/m показывает конкретный регистр (таблицы 1 и 2); а если операнд - в памяти, это поле определяет, где он находится (таблица 3).
    mod = 11
    r/m - код регистра
    w = 0      - 8-разрядный регистр
    w = 1      - 16-разрядный регистр

    В таблице приведены соответствия кодов в r/m и названий для 8-разрядных регистров.


    Таблица 2

    Код

    000

    001

    010

    011

    100

    101

    110

    111

    Регистр

    AL

    CL

    DL

    BL

    AH

    CH

    DH

    BH

    Пример:
    inc cl

    Косвенная адресация. Формат команды - 2 байта. mod = 00.

    Таблица 3

    r/m

    Базовый регистр

    Индексный регистр

    000
    001
    010
    011
    100
    101
    110
    111

    BX
    BX
    BP
    BP
    -
    -
    BP
    BX

    SI
    DI
    SI
    DI
    SI
    DI
    -


    Структура команды определяется составом, назначением и расположением полей в команде.
    Формат команды – это структура команды с разметкой номеров разрядов, определяющих границы отдельных полей команды.

    4.Возможные структуры машинных команд

    Четырехадресная структура

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

    Трехадресная структура

    используется в вычислительных машинах, построенных так, что после выполнения команды по адресу K (команда занимает L ячеек памяти) выполняется команда по адресу K+L. Такой порядок выборки команд называется естественным. Он нарушается только специальными командами передачи управления. При естественном порядке выборки адрес следующей команды формируется в устройстве, называемом счетчик адреса команд. В этом случае команда становится трехадресной.
    Двухадресная структура
    используется в вычислительных машинах, построенных так, что результат операции будет всегда помещаться в фиксированный регистр процессора, например на место первого операнда. В этом случае адрес результата может явно не указываться.

    Одноадресная структура
    подразумеваемые адреса имеют результат операции и один из операндов. При этом один из операндов и результат операции размещаются в одном фиксированном регистре. Выделенный для этой цели внутренний регистр процессора получил название аккумулятор. Адрес другого операнда указывается в команде.

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

    Вывод

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

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

    См., например, эксперименты 3.6.2 в: Еремин Е.А. Популярные лекции об устройстве компьютера. СПб.: BHV-Петербург, 2003, .

    4. Википедия - http://ru.wikipedia.org

    Подробному описанию учебных моделей посвящен сайт http://educomp.runnet.ru/.


    написать администратору сайта