Чарльз Петцольд - Код. Тайный язык информатики

Тут можно читать онлайн Чарльз Петцольд - Код. Тайный язык информатики - бесплатно ознакомительный отрывок. Жанр: Прочая научная литература, издательство Манн, Иванов и Фербер, год 2019. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Чарльз Петцольд - Код. Тайный язык информатики краткое содержание

Код. Тайный язык информатики - описание и краткое содержание, автор Чарльз Петцольд, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Книга «Код» представляет собой увлекательное путешествие в прошлое – мир электрических устройств и телеграфных машин. Знакомство с прообразами первых компьютеров позволит читателю с любым уровнем технической подготовки узнать о том, как работают современные электронные устройства.

Код. Тайный язык информатики - читать онлайн бесплатно ознакомительный отрывок

Код. Тайный язык информатики - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Чарльз Петцольд
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Обратите внимание сначала складываются два младших байта хранящихся в ячейках - фото 382

Обратите внимание: сначала складываются два младших байта, хранящихся в ячейках 4001h и 4003h, а результат сохраняется в ячейке 4005h. Два старших байта (содержащихся в ячейках 4000h и 4002h) складываются с использованием команды «Сложить с переносом», а результат сохраняется в ячейке 4004h. Если удалим команду «Остановить» и добавим новые команды в массив «Код», то при выполнении последующих расчетов сможем использовать исходные слагаемые и их сумму путем простого обращения к соответствующим адресам.

Ключевым моментом при реализации этой идеи является подключение выхода массива «Код» DO к трем 8-битным защелкам. В каждой из этих защелок хранится один из байтов 3-байтной команды. Первая защелка содержит код команды, вторая — старший байт адреса, третья — младший байт адреса. Выход второй и третьей защелок становится 16-битным адресом ячейки в массиве «Данные».

Процесс извлечения команды из памяти называется выборкой команды Каждая - фото 383

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

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

Важно: расширение функционала сумматора приводит к замедлению его работы. При той же частоте осциллятора машина складывает числа в четыре раза медленнее по сравнению с первым сумматором, описанным в этой главе. Это проявление инженерного принципа «Бесплатных завтраков не бывает» [20], смысл которого в том, что улучшение одного аспекта машины приводит к ухудшению другого.

Если бы вы на самом деле собирали такой сумматор из реле, то основными компонентами схемы, очевидно, были бы два массива RAM емкостью 64 килобайта. В самом начале вы, вероятно, сэкономили на этих компонентах, решив, что пока можете обойтись одним килобайтом памяти. Если бы вы были уверены, что сохраните все данные в ячейках с 0000h по 03FFh, то могли бы спокойно использовать память емкостью менее 64 килобайта.

Впрочем, вы, вероятно, не в восторге от необходимости использовать два массива RAM. На самом деле это необязательно. Я ввел два массива RAM (один с кодами и один с данными) для того, чтобы архитектура сумматора была максимально понятной и простой. Но сейчас, когда мы решили, что каждая команда будет занимать три байта (причем второй и третий байты будут содержать адрес, где находятся данные), нам не нужны два отдельных массива RAM. Коды команд и данные можно хранить в одном массиве.

Чтобы реализовать это, нужен селектор «2 на 1» для определения способа адресации массива RAM. Как правило, один адрес, как и раньше, подается на вход селектора с 16-битного счетчика. Выход DO массива RAM по-прежнему подключен к трем защелкам, в которых сохраняются код команды и два байта адреса, сопровождающего каждую команду. Однако 16-битный адрес подается и на второй вход селектора «2 на 1». После сохранения этого адреса в защелках селектор передает его на адресный вход массива RAM.

Мы значительно продвинулись Теперь можно ввести команды и данные в один массив - фото 384

Мы значительно продвинулись. Теперь можно ввести команды и данные в один массив RAM. Например, на следующей диаграмме показан процесс сложения двух 8-битных чисел и вычитания из полученной суммы третьего числа.

Как обычно команды сохраняются начиная с адреса 0000h поскольку именно с этой - фото 385

Как обычно, команды сохраняются начиная с адреса 0000h, поскольку именно с этой ячейки счетчик начинает адресацию массива RAM после обнуления. Последняя команда «Сохранить» хранится по адресу 000Ch. Мы могли бы сохранить три числа и результаты в любом месте массива RAM (разумеется, за исключением первых 13 байт, поскольку они заняты кодами команд), однако решили остановиться на данных, начиная с ячейки по адресу 0010h.

Предположим, что нам понадобилось прибавить к результату еще два числа. Можно, конечно, заменить все только что введенные команды новыми, но мы не хотим этого делать. Возможно, мы предпочли бы после выполнения этих команд просто выполнить новые, заменив перед этим код команды «Остановить» кодом новой команды «Загрузить» в ячейке 000Ch. Однако нам требуются две новые команды «Сложить», команда «Сохранить» и новая команда «Остановить». Единственная проблема: в ячейке 0010h хранятся данные. Их необходимо переместить дальше, изменив при этом ссылающиеся на них команды.

Может показаться, что объединение кода и данных в одном массиве RAM не было такой уж хорошей идеей. Уверяю вас, рано или поздно такая проблема обязательно бы возникла. Так что давайте решим ее. В данном случае можно попробовать ввести коды новых команд, начиная с адреса 0020h, а новые данные — с адреса 0030h.

Обратите внимание первая команда Загрузить ссылается на ячейку 0013h в - фото 386

Обратите внимание: первая команда «Загрузить» ссылается на ячейку 0013h, в которой хранится результат первого расчета.

Итак, с адреса 0000h в памяти хранятся команды, с 0010h — некоторые данные, с 0020h — еще команды, а с адреса 0030h — еще данные. Нам нужно, чтобы сумматор выполнил все команды, начиная с адреса 0000h.

Мы знаем, что следует удалить команду «Остановить» из ячейки 000Ch. Под словом « удалить» я подразумеваю ее замену чем-то другим. Достаточно ли этого?

Проблема в том, что все, чем мы заменим команду «Остановить», будет интерпретироваться как код команды. Это касается и того, что будет храниться через каждые три ячейки после него — по адресам 000Fh, 0012h, 0015h, 0018h, 001Bh и 001Eh. Что, если одним из этих значений окажется число 11h, которое соответствует команде «Сохранить»? Что, если два байта после кода команды «Сохранить» будут ссылаться на ячейку 0023h? Это заставит сумматор сохранить содержимое аккумулятора в этой ячейке. Однако в ней уже содержится что-то важное! И даже если ничего подобного не произойдет, после кода команды по адресу 001Eh сумматор извлечет код из ячейки 0021h, а не 0020h, где на самом деле находится код нашей следующей команды.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Чарльз Петцольд читать все книги автора по порядку

Чарльз Петцольд - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Код. Тайный язык информатики отзывы


Отзывы читателей о книге Код. Тайный язык информатики, автор: Чарльз Петцольд. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Bestplay Smit
11 января 2025 в 19:53
Книга просто очень классная. Я когда вырасту хочу стать этичным хакером. И сейчас мне 9 лет. Но я уже могу создавать красивые сайты. Так что я твёрдо иду к своей цели и не сдаюсь!
x