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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Нам не хватает программного обеспечения. При первом включении или перезагрузке микропроцессор обращается к машинному коду, начиная с ячейки памяти с определенным адресом. В случае Intel 8080 это 0000h. При включении правильно спроектированного компьютера адрес памяти должен содержать машинную инструкцию (вероятно, первую из многих).

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

В отличие от описанного ранее пульта управления этот имеет переключатель - фото 443

В отличие от описанного ранее пульта управления, этот имеет переключатель «Сброс», который подключен к одноименному входу микропроцессора. Пока этот переключатель замкнут, микропроцессор ничего не делает. После размыкания переключателя микропроцессор обращается к машинному коду.

Чтобы использовать этот пульт управления, замкните переключатель «Сброс» для остановки микропроцессора, а переключатель «Перехват» — для перехвата управления адресными линиями и линиями данных шины. Теперь вы можете использовать переключатели с A0 по A15 для указания 16-разрядного адреса памяти. Лампочки с D0 по D7 показывают 8-битное содержимое этого адреса. Чтобы записать сюда новое значение, введите нужный адрес с помощью переключателей с D0 по D7, а затем последовательно замкните и разомкните переключатель «Запись». Закончив ввод новых данных в память, разомкните переключатели «Перехват» и «Сброс», и микропроцессор начнет выполнять программу.

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

Когда на дисплее увидите результаты работы своих программ, все усилия будут вознаграждены. Текстовый дисплей, который мы собрали в предыдущей главе, имеет видеопамять емкостью один килобайт для хранения текстов в кодировке ASCII объемом 25 строк по 40 символов каждая. Программа записывает данные в эту память так же, как в любую другую.

Однако вывести результат программы на дисплей не так просто, как может показаться. Например, если ваша программа совершает некоторые вычисления, в результате которых получается 4Bh, вы не можете просто записать это значение в видеопамять. В этом случае на экране отобразилась бы буква K , поскольку именно ей соответствует код ASCII 4Bh. Вместо этого вам нужно записать в видеопамять два символа ASCII: 34h — код ASCII для цифры 4 и 42h — код ASCII для буквы B . Каждая тетрада 8-битного результата — шестнадцатеричное значение, которое должно отображаться на экране.

Вероятно, придется написать небольшую подпрограмму для выполнения этого преобразования. Приведем одну из таких подпрограмм на языке ассемблера для микропроцессоров 8080, которая преобразует записанную в аккумуляторе тетраду (предполагается, что это значение находится в диапазоне от 00h до 0Fh включительно) в соответствующий ей код ASCII.

Следующая подпрограмма дважды вызывает подпрограмму NibbleToAscii для - фото 444

Следующая подпрограмма дважды вызывает подпрограмму NibbleToAscii для преобразования байта, записанного в аккумуляторе A, в две цифры ASCII и их записи в регистры B и C.

Эти подпрограммы теперь позволяют отобразить на дисплее байт в - фото 445

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

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

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

Конечно, его нужно заменить клавиатурой. Собранная ранее клавиатура прерывала работу микропроцессора при нажатии клавиши. Контроллер прерываний, который мы использовали, заставляет микропроцессор ответить на прерывание путем исполнения команды RST (Restart, «Перезагрузка»). Предположим, это команда RST1, и она заставляет микропроцессор сохранить текущее значение счетчика команд в стеке, а затем перейти по адресу 0008h. Начиная с этой ячейки, используя пульт управления, вы вводите некоторый код, который будем называть обработчиком клавиатуры .

Чтобы все работало правильно, понадобится код, который будет выполняться при перезагрузке микропроцессора, — код инициализации . Этот код сначала устанавливает указатель стека так, чтобы тот находился в допустимой области памяти, затем записывает во все ячейки видеопамяти шестнадцатеричное значение 20h, которое соответствует пробелу в кодировке ASCII. Это очищает экран от всех случайных символов.

Код инициализации использует команду OUT (Output, «Вывод») для установки курсора — символа подчеркивания, который обозначает место ввода следующего символа, — в первый столбец первой строки. Следующая команда EI разрешает обслуживание прерываний, благодаря чему микропроцессор может реагировать на сигналы прерывания клавиатуры. За ней следует команда HLT, останавливающая работу микропроцессора.

С кодом инициализации все готово. С этого момента компьютер в основном будет находиться в состоянии останова в результате выполнения инструкции HLT. Единственное событие, которое может вывести компьютер из этого состояния, — замыкание переключателя «Сброс» на пульте управления или прерывание от клавиатуры.

Код обработчика намного длиннее кода инициализации. Именно он отвечает за выполнение всех по-настоящему полезных функций.

При каждом нажатии клавиши на клавиатуре сигнал прерывания заставляет микропроцессор перейти от команды HLT в конце кода инициализации к обработчику клавиатуры, использующему инструкцию IN (Input, «Ввод») для определения нажатой клавиши, а затем производит некое действие в зависимости от нажатой клавиши (то есть обрабатывает ее нажатие) и выполняет команду RET (Return, «Возврат») для возвращения процессора к команде HLT, где он будет ожидать следующего прерывания.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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