Читаем Код. Тайный язык информатики полностью

После сброса микропроцессор 8080 считывает байт, хранящийся в ячейке памяти 0000h. Для этого на адресные контакты с A0 по A15 подаются 16 нулей. Байт, который он считывает, должен соответствовать команде процессора 8080, а сам процесс его считывания называется выборкой команды.

В компьютере, который мы собрали в главе 17, все команды, за исключением HLT, занимали в памяти по три байта, один байт содержал код команды, а в двух других хранился адрес. Команды процессора 8080 могут занимать один, два или три байта. Одни команды заставляют процессор 8080 считать байт из определенной ячейки памяти, другие — записать байт в определенную ячейку, третьи — выполнить некие внутренние операции без использования оперативной памяти. После обработки первой команды процессор 8080 обращается ко второй команде, хранящейся в памяти, и т. д. Совокупность этих команд — компьютерная программа, способная выполнять интересные функции.

Когда процессор 8080 работает с максимальной частотой два мегагерца, каждый тактовый цикл длится 500 наносекунд (1 / 2 000 000 циклов в секунду = 0,000000500 секунды). Команды компьютера, описанного в главе 17, выполнялись за четыре тактовых цикла. На исполнение команд для процессора 8080 требуется от 4 до 18 тактовых циклов, то есть от двух до девяти микросекунд (миллионных долей секунды).

Вероятно, чтобы понять, на что способен конкретный микропроцессор, нужно изучить весь набор его команд.

Итоговая модель компьютера из главы 17 выполняла всего 12 команд. Набор 8-разрядного микропроцессора может легко содержать до 256 команд, при этом код каждой команды соответствует конкретному 8-битному значению. (На самом деле команд может быть даже больше, если некоторым из них будет соответствовать 2-байтный код.) Микропроцессор 8080 не заходит так далеко, но его набор включает 244 кода. Это количество может показаться довольно большим, однако в целом процессор 8080 не сильно превосходит компьютер из главы 17. Например, если вам нужно произвести операцию умножения или деления с помощью процессора 8080, все равно придется написать для этого небольшую программу.

Как вы помните из главы 17, каждый код в наборе команд процессора обычно соответствует определенному мнемокоду, и некоторые из них сопровождаются аргументами. Однако эти мнемокоды служат исключительно для удобства при обращении к кодам команд. Процессор считывает только байты; он ничего не знает о соответствующем им тексте. (Для ясности буду несколько вольно обращаться с мнемокодами из документации к процессору Intel 8080.)

Набор компьютера из главы 17 включал две важные команды, которые мы первоначально назвали «Загрузить» и «Сохранить». Каждая из этих команд занимала три байта памяти. Первый байт команды «Загрузить» соответствовал ее коду, а два следующих — 16-битному адресу. Процессор загружал байт, хранящийся по этому адресу, в аккумулятор. Аналогично команда «Сохранить» консервировала содержимое аккумулятора по указанному адресу.

Затем мы обнаружили, что коды этих двух команд можно сократить, используя мнемокоды.

LOD A,[aaaa]

STO [aaaa], A

Здесь A — аккумулятор (место назначения для команды «Загрузить» и источник для команды «Сохранить»), а фрагмент aaaa — 16-битный адрес в памяти, который обычно записывается с помощью четырех шестнадцатеричных цифр.

Восьмиразрядный аккумулятор в процессоре 8080 обозначается буквой A, как и аккумулятор в главе 17. Кроме того, в наборе этого процессора есть две команды, которые делают то же самое, что и команды «Загрузить» и «Сохранить» из главы 17. В процессоре 8080 этим командам соответствуют коды 32h и 3Ah, за каждым из которых следует 16-битный адрес, а мнемокодами для них являются STA (Store Accumulator — сохранить из аккумулятора) и LDA (Load Accumulator — загрузить в аккумулятор).

Код

Команда

32

STA [aaaa], A

3A

LDA A,[aaaa]

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

Шесть дополнительных регистров в процессоре 8080 называются B, C, D, E, H и L. Первым делом люди спрашивают: «Что же случилось с F и G?» — а затем задают второй вопрос: «А как насчет I, J и K?» Ответ заключается в том, что регистры H и L обладают некоторыми особенностями, а их название происходит от слов high и low. Часто 8-битные значения в регистрах H и L обрабатываются вместе в виде 16-битной пары регистров HL, при этом в регистре H содержится старший (high) байт, а в регистре L — младший (low). Это 16-битное значение используется для адресации памяти. Чуть позже мы увидим, как это работает.

Перейти на страницу:

Похожие книги

Самоучитель UML
Самоучитель UML

Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы. Цель книги – помочь программистам освоить новую методологию разработки корпоративных программных приложений для последующего применения полученных знаний с использованием соответствующих CASE-инструментов.

Александр Васильевич Леоненков , Александр Леоненков

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Прочая компьютерная литература / Книги по IT
Киберкрепость: всестороннее руководство по компьютерной безопасности
Киберкрепость: всестороннее руководство по компьютерной безопасности

Как обеспечить надежную защиту в эпоху, когда кибератаки становятся все более продвинутыми? Каковы последствия уязвимости цифровых систем? Петр Левашов, экс-хакер с богатым бэкграундом, рассматривает все грани кибербезопасности, начиная с базовых принципов и заканчивая новейшими технологиями.Читатели познакомятся с:• основами компьютерной безопасности и актуальными методами защиты;• современными методами шифрования данных и криптографии;• процедурами ответа на инциденты и восстановления после катастроф;• юридическими и регуляторными требованиями к компьютерной безопасности.Автор использует свой уникальный опыт, чтобы предоставить читателям углубленное понимание кибербезопасности. Его подход охватывает теоретические знания и практическую подготовку, делая этот материал доступным для профессионалов и новичков.

Пётр Юрьевич Левашов

Зарубежная компьютерная, околокомпьютерная литература
Исторические информационные системы: теория и практика
Исторические информационные системы: теория и практика

Исторические, или историко-ориентированные, информационные системы – значимый элемент информационной среды гуманитарных наук. Его выделение связано с развитием исторической информатики и историко-ориентированного подхода, формированием информационной среды, практикой создания исторических ресурсов.Книга содержит результаты исследования теоретических и прикладных проблем создания и внедрения историко-ориентированных информационных систем. Это первое комплексное исследование по данной тематике. Одни проблемы в книге рассматриваются впервые, другие – хотя и находили ранее отражение в литературе, но не изучались специально.Издание адресовано историкам, специалистам в области цифровой истории и цифровых гуманитарных наук, а также разработчикам цифровых ресурсов, содержащих исторический контент или ориентированных на использование в исторических исследованиях и образовании.В формате PDF A4 сохранен издательский макет.

Динара Амировна Гагарина , Надежда Георгиевна Поврозник , Сергей Иванович Корниенко

Зарубежная компьютерная, околокомпьютерная литература / Учебная и научная литература / Образование и наука