Операционные системы -вопросы теории


Машинные языки


Машинные языки
Машинные языки Центральный процессор современного компьютера — это устройство, исполняющее команды. Полный набор команд конкретного процессора называют машинным языком или системой ком...
Микропрограммные автоматы
Микропрограммные автоматы У фон-неймановских процессоров команды исполняются последовательно, в соответствии с порядком размещения в памяти, и только команды условных и безусловных пере...
Нейросети
Нейросети Впрочем, существуют весьма сложные системы, представляющие собой набор примитивных "процессоров", не имеющих команд перехода, — речь идет о так называемых нейросетях...
Косвеннорегистровый режим со смещением
Косвенно-регистровый режим со смещением Адрес операнда образуется путем сложения регистра и адресного поля команды. Этот режим наиболее богат возможностями и, в зависимости от стиля исп...
Стековый кадр Стековый кадр является
Стековый кадр Стековый кадр является стандартным способом выделения памяти под локальные переменные в алголоподобных процедурных языках (С, C++, Pascal) и других языках, допускающих рек...
Регистровый стек процессора SPARC
Рисунок 2.9. Регистровый стек процессора SPARC Для этого вызванная процедура уменьшает (если стек растет вниз) указатель стека на количество байтов, достаточное, чтобы разместить переме...
Пример 2 4 Формирование использование
Пример 2.4. Формирование, использование и уничтожение стекового кадра. Код на языке С и результат его обработки GNU С 2.7.2.1 (комментарии автора) #include <stdio.h> # include...
Стековый кадр
Рисунок 2.10. Стековый кадр ПримечаниеПримечание Обратите внимание, что программа из примера 2.4 содержит серьезнейшую ошибку. В комментариях сказано, что команда обязана иметь длину не...
Стековые кадры в системе команд SPARC
Стековые кадры в системе команд SPARC Микропроцессоры SPARC также не могут обойтись без стекового кадра. Во-первых, не всегда локальные переменные процедуры помещаются в восьми 32-разрядных...
Регистровый файл SPARC в виде
Рисунок 2.11. Регистровый файл SPARC в виде кольцевого буфера. Регистры CANSAVE и CANRESTORE (цит. по [www.sparc.com v9]) Когда же программа пытается сдвинуть свое окно за описанные гра...
Базовоиндексный режим
Базово-индексный режим В этом режиме адрес операнда образуется сложением двух или, реже, большего количества регистров и, возможно, еще и адресного смещения. Такой режим может использов...
Индексный режим адресации VAX
Индексный режим адресации VAX У VAX за операндом, указывающим индексный режим адресации и индексный регистр, следует еще один байт, кодирующий режим адресации и регистр, используемые дл...
Индексный режим адресации в системе команд SPARC
Индексный режим адресации в системе команд SPARC SPARC позволяет использовать для вычисления адреса в командах LD, зт и JMPL как сумму двух регистров, так и сумму регистра и 13-разрядно...
Индексный режим адресации VAX
Рисунок 2.12. Индексный режим адресации VAX Немало современных процессоров, впрочем, предлагают программисту реализовать такой режим с помощью нескольких команд и с использованием промежуто...
Сложные режимы адресации
Сложные режимы адресации реди промышленно выпускавшихся процессоров самым богатым набором экзотических режимов адресации обладает VAX. Кроме всех вышеперечисленных, предлагаются следующи...
Адресация с использованием счетчика команд
Адресация с использованием счетчика команд Любой процессор предоставляет как минимум один способ такой адресации: адресация самих команд при их последовательной выборке осуществляется п...
Литеральная и абсолютная адресация в PDP11 и VAX
Литеральная и абсолютная адресация в PDP-11 и VAX VAX и PDP-11 не реализуют в чистом виде ни литерального, ни абсолютного режимов адресации. Вместо этого литерал или адрес помещается в...
Реализация литеральной адресации
Рисунок 2.13. Реализация литеральной адресации через постинкрементную адресацию счетчиком команд Использование счетчика команд в косвенно-регистровом режиме со смещением позволяет адрес...
Пример 2 5 Реализация условного
Пример 2.5. Реализация условного перехода с длинным смещением Beq distant_label ; Перейти, если равно ; реализуется как Bneq $1 ; Перейти, если не равно Jmp distant_label ; У к...
Относительные переходы в системе команд SPARC
Относительные переходы в системе команд SPARC У большинства CISC-процессоров адресное смещение в командах условного перехода ограничено одним байтом. У SPARC такие команды используют ад...
Формат команд условного перехода и вызова процессора SPARC
Рисунок 2.14. Формат команд условного перехода и вызова процессора SPARC Команда вызова подпрограммы у SPARC также использует адресацию относительно счетчика команд, но адресное поле у...
Банки памяти
Банки памяти Банки памяти используются, когда адресное пространство процессора мало, а приложение требует. При этом стоимостные и электротехнические ограничения позволяют нам установит...
Банковая адресация в 16разрядных микропроцессорах
Банковая адресация в 16-разрядных микропроцессорах Внимательный читатель, знакомый с системой команд Intel 8086, не может не отметить, что "сегментные" регистры этого процессо...
Банки команд в Р/С
Банки команд в Р/С У микроконтроллеров PIC арифметические операции производятся только над младшими 8 битами счетчика команд, поэтому относительные и вычислимые переходы допустимы тольк...
Межбанковый переход
Рисунок 2.15. Межбанковый переход Развитие этой идеи приводит нас к чему-то, похожему на менеджер оверлеев (см. разд. Оверлеи (перекрытия). программный модуль, который присутствует во вс...
Переключатель банков
Рисунок 2.16. Переключатель банков...
Адресное пространство PDP11
Адресное пространство PDP-11 Машины серии PDP-11 имеют 16-разрядный адрес, который позволял адресовать 64 Кбайт. У старших моделей серии это пространство разбито на 8 сегментов по 8 Кба...
CISC и RISCпроцессоры
CISC- и RISC-процессоры Часто приходится сталкиваться с непониманием термина RISC, общепринятая расшифровка которого — Reduced Instruction Set Computer (компьютер с уменьшенной системо...
Пример 2 6 Эквивалентные преобразования
Пример 2.6. Эквивалентные преобразования программы /* Пример возможной стратегии оптимизации. * Код, вставляемый компилятором для проверки границ индекса, * выделен при помощи нестанд...
Языки ассемблера
Языки ассемблера Непосредственно на машинном языке в наше время не программирует практически никто. Первый уровень, позволяющий абстрагироваться от схемы кодирования команд, — это уже...
Пример 2 7 Пример использования
Пример 2.7. Пример использования макроопределений ; Фрагмент драйвера LCD для микроконтроллера PIC ; (с) 1996, Дмитрий Иртегов. ;...
Таблица знакогенератора 5 байт/символ
Таблица знакогенератора: 5 байт/символ. ; W содержит код символа. Пока символов может быть ; только 50, иначе возникнет переполнение. ; Scanline содержит номер байта (не строки!) ; Сна...
Многопроходное ассемблирование
Многопроходное ассемблирование При ассемблировании с использованием меток возникает специфическая проблема: команды могут ссылаться на метки, определенные как до, так и после них по те...
Форматы команд машинного языка
Форматы команд машинного языка Команда центрального процессора состоит из кода операции и одного или нескольких операндов (объектов, над которыми совершается операция). В зависимости о...
Команды перехода
Команды перехода Как говорилось в начале главы, команды условного перехода — это то, что отличает фон-неймановский процессор от непроцессора или, в крайнем случае, от не фон-неймановск...
Таблица 2 1 Команды условного
Таблица 2.1. Команды условного перехода микроконтроллеров семейства AVR, цит. по [www.atmel.com] Команда Описание Условие перехода...
Регистры
Регистры Процессор соединен с банками памяти шиной, по которой за один раз передается только одно целое число. Иногда разрядность этой шины тоже называют разрядностью процессора. Тогда...
Типичная структура микропроцессора
Рисунок 2.1. Типичная структура микропроцессора Из этих регистров программисту доступны только счетчик команд и слово состояния процессора, да и то не всегда. (Под доступностью программ...
Регистры общего назначения в системе команд х86
Рисунок 2.2. Регистры общего назначения в системе команд х86 У современных процессоров количество регистров измеряется сотнями, а иногда и тысячами. Например, вместо буфера на одну толь...
Регистровое окно SPARC
Регистровое окно SPARC RISC-процессор SPARC...
[Www sparc com v9] имеет регистровый
[www.sparc.com v9] имеет регистровый файл, объем которого у старых версий процессора составлял 136 32-разрядных слов, а у современных 520 и более. Этот файл состоит из групп по 8 регис...
Формат команды микропроцессора
Рисунок 2.3. Формат команды микропроцессора SPARC (цит. по [www.sparc.com v9]) При всех недостатках первого подхода, ортогональная система команд создает специфическую проблему: увеличе...
Адресация оперативной памяти
Адресация оперативной памяти С точки зрения процессора, оперативная память представляет собой массив пронумерованных ячеек. Номер каждой ячейки памяти называется ее адресом. Разрядность...
БЭСМ6
БЭСМ-6 Так, БЭСМ-6 имела слово разрядностью 48 бит и команды длиной 24 бита, состоявшие из 15-разрядного адресного поля и 9-разрядного кода операции. Адресное поле позволяло адресовать...
Microchip PIC
Microchip PIC Микроконтроллеры семейства PIC фирмы Microchip имеют 8-разрядное АЛУ и накристалльное ОЗУ той же разрядности [www.microchip.com PICMicro]. Команды этих микроконтроллеров р...
Выровненные и невыровненные обращения к словам
Рисунок 2.4. Выровненные и невыровненные обращения к словам Во-вторых, есть разногласия в том, как следует адресовать (или, как следует интерпретировать при арифметических операциях) байты...
Порядок байтов в слове
Рисунок 2.5. Порядок байтов в слове Возможные различия в порядке байтов следует принимать во внимание при разработке форматов для передачи данных по сети или сохранения в файле. Кроме т...
Режимы адресации
Режимы адресации Операнды команд могут быть как регистрами, так и ячейками памяти. Некоторые архитектуры, например PDP-11 и VAX, допускают произвольное сочетание регистров и ячеек памят...
Режимы адресации VAX
Режимы адресации VAX У процессоров VAX операнды команд кодируются одним байтом. Старшие 4 бита операнда указывают режим адресации, младшие— номер регистра. Если режим предполагает испол...
Форматы одно двух и трехадресной команд процессора VAX
Рисунок 2.6. Форматы одно-, двух- и трехадресной команд процессора VAX...
Режимы адресации SPARC
Режимы адресации SPARC У процессоров SPARC адресацию осуществляют лишь четыре группы команд — LD (загрузка слова из памяти в регистр), ST (сохранение значения регистра в памяти), JMPL (...
Вырожденные режимы адресации
Вырожденные режимы адресации К этой группе относятся режимы, в которых доступ к операнду не содержит адресации как таковой. Первым из таких режимов является операнд-регистр. Режим этот к...
Литеральная адресация в системе команд SPARC
Литеральная адресация в системе команд SPARC Разработчики процессоров, которых не устраивает ни одно из названных условий, вынуждены проявлять фантазию. Так, у RISC-процессоров SPARC и...
Пример 2 1 Формирование 64разрядного
Пример 2.1. Формирование 64-разрядного значения на SPARC v9, цит. по [docs.sun.com 806-3774-10] ! reg — промежуточный регистр, rd — целевой. sethi %uhi(value), reg or reg, %ulo(value...
Короткие литералы VAX
Короткие литералы VAX У процессоров семейства VAX есть режим адресации, позволяющий использовать битовое поле, которое в других режимах интерпретируется как номер регистра, в качестве 4...
Короткие литералы МСбЗОхО
Короткие литералы МСбЗОхО У процессоров семейства МС680хО литерал может иметь длину 1 или 2 байта. Кроме того, предоставляются команды ADDQ и SUBQ, которые позволяют добавить к указанно...
Абсолютная адресация
Абсолютная адресация При абсолютной адресации адресное поле команды непосредственно содержит номер целевой ячейки памяти. Таким способом производятся обращения к объектам с постоянными...
Абсолютная адресация в системе команд SPARC
Абсолютная адресация в системе команд SPARC У процессоров SPARC реализация абсолютной адресации похожа на реализацию адресации литеральной: под адресацию занимается регистр, командой se...
Пример 2 2 Обращение к переменной
Пример 2.2. Обращение к переменной на процессоре SPARC sethi %hi(var), %g1 ! помещаем старшие биты адреса в %g1 Id [%gl+%lo(var)], %11 ! загружаем значе...
Косвеннорегистровый режим
Косвенно-регистровый режим В этом режиме, как и в регистровом, адресное поле не используется. Значение регистра интерпретируется как адрес операнда. Данный режим используется для разым...
Стек Стек или магазин — это структура
Стек Стек, или магазин — это структура данных, над которой мы можем осуществлять две операции: проталкивание (push) значения и выталкивание (pop). Значения выталкиваются из стека в...
Стек на основе массива
Рисунок 2.7. Стек на основе массива...
Стеки растущие вверх и вниз
Рисунок 2.8. Стеки, растущие вверх и вниз При реализации стека скалярных значений удобно использовать непрерывную область памяти в качестве массива, регистр SP в качестве указателя и реж...
Пример 2 3 Использование стека
Пример 2.3. Использование стека для хранения промежуточных значений void swap(int &a, int &b) { int t; t=a; a=b; b=t; } ;Для простоты мы не рассматриваем механи...








- Начало -