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

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

Код. Тайный язык информатики: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Код. Тайный язык информатики»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Код. Тайный язык информатики», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

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

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

Все ли согласны, что мы не можем просто удалить команду «Остановить» из ячейки 000Ch и надеяться на лучшее?

Мы можем заменить ее новой командой под названием «Перейти». Давайте добавим ее в наш репертуар.

Операция

Код

Загрузить

10h

Сохранить

11h

Сложить

20h

Вычесть

21h

Сложить с переносом

22h

Вычесть с заимствованием

23h

Перейти

30h

Остановить

FFh

Обычно массив RAM в сумматоре адресуется последовательно. Команда «Перейти» заставляет машину действовать иначе, то есть обращаться к ячейке массива по другому заданному адресу. Такая команда иногда называется командой ветвления .

В предыдущем примере мы можем заменить команду «Остановить» в ячейке 000Ch командой «Перейти».

Значение 30h соответствует коду команды Перейти Шестнадцатибитный адрес - фото 387

Значение 30h соответствует коду команды «Перейти». Шестнадцатибитный адрес, который следует за ним, указывает на ячейку со следующей командой, к которой должен обратиться сумматор.

В предыдущем примере сумматор, как обычно, начинает с ячейки 0000h, обрабатывает команды «Загрузить», «Сложить», «Вычесть» и «Сохранить». Затем он выполняет команду «Перейти» и продолжает работу с адреса 0020h, начиная с которого хранятся команда «Загрузить», две команды «Сложить», команды «Сохранить» и «Остановить».

Команда «Перейти» влияет на 16-битный счетчик. Всякий раз, когда сумматор ее запускает, на выходе счетчика должен возникать новый адрес, следующий за кодом команды «Перейти». Это реализуется с помощью входов Pre и Clr триггеров D-типа со срабатыванием по фронту, из которых состоит 16-битный счетчик.

Напомню что входы Pre и Clr должны быть равны 0 при выполнении обычной - фото 388

Напомню, что входы Pre и Clr должны быть равны 0 при выполнении обычной операции. Если вход Pre равен 1, сигнал Q тоже становится 1; если вход Clr равен 1, сигнал Q — 0.

Если хотите загрузить в триггер новое значение (назовем его A — от слова «адрес»), вы можете включить его в схему следующим образом.

Обычно сигнал Задать равен 0 В этом случае вход триггера Pre также 0 Вход - фото 389

Обычно сигнал «Задать» равен 0. В этом случае вход триггера Pre также 0. Вход Clr равен 0 при условии, что сигнал «Сброс» не равен 1. Это позволяет очистить триггер независимо от значения сигнала «Задать». Когда сигнал «Задать» — 1, вход Pre — 1, а вход Clr — 0 при условии, что сигнал A — 1. Если сигнал A — 0, то вход Pre — 0, а вход Clr — 1. Следовательно, значение выхода Q будет совпадать со значением A.

Нам требуется по одной такой схеме для каждого бита 16-битного счетчика. После загрузки конкретного значения счетчик будет продолжать подсчет с него. В других отношениях изменения не являются такими серьезными. Шестнадцатибитный адрес из массива RAM, сохраненный в защелках, подается как на вход селектора «2 на 1» (передает его на адресный вход массива RAM), так и на вход 16-битного счетчика для выполнения функции «Задать».

Очевидно сигнал Задать должен быть равен 1 только если код команды 30h и - фото 390

Очевидно, сигнал «Задать» должен быть равен 1, только если код команды 30h и адрес сохранен в защелках.

Команда «Перейти», безусловно, полезна. Однако еще более практичной была бы команда, которая совершает переход не всегда, а только при определенных условиях. Такая команда называется условным переходом . Вероятно, лучший способ продемонстрировать ее полезность — постановка вопроса: «Как сделать так, чтобы наш сумматор перемножил два 8-битных числа, например A7h и 1Ch?»

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

Интервал:

Закладка:

Сделать

Похожие книги на «Код. Тайный язык информатики»

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


Отзывы о книге «Код. Тайный язык информатики»

Обсуждение, отзывы о книге «Код. Тайный язык информатики» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x