Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
70
Добавлен:
20.03.2015
Размер:
303.62 Кб
Скачать

4. Машинные команды и программы

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

Обо всем этом мы поговорим на уровне базовых концепций. Будет приведено общее описание машинных команд и методов адресации операндов, типичных для коммерческих процессоров. Рассматриваемых в этой главе команд вполне достаточно для создания полноценных реальных программ, выполняющих про­стые задачи. Для написания таких программ используется не машинный язык, а язык ассемблера, в котором команды и информация об адресах операндов пред­ставляются посредством символических имен. Полный набор команд, которые может выполнять данный процессор, часто называют архитектурой системы ко­манд процессора (Instruction Set Architecture, ISA) или просто системой команд. Система команд определяет не только сами команды, но еще и методы адресации, используемые для доступа к операндам в памяти и регистрах процессора. Для то­го чтобы рассмотреть базовые концепции, представленные в этой главе, не обяза­тельно изучать всю систему команд компьютера, поэтому здесь приведены лишь наиболее часто используемые. Для иллюстрации излагаемых положений дается много примеров.

Позже мы рассмотрим системы команд процессора компании Intel. Примеры программ из этой главы, написанные на универсальном языке ассемблера (условном языке, содержащем ти­пичные команды ассемблера, но не являющимся набором команд какого-нибудь конкретного процессора).

Подавляющее большинство программ пишется на языках высокого уровня, таких как С, C++, Java и FORTRAN. Для этой книги мы выбрали язык ассембле­ра, который наилучшим образом позволяет показать, как работает компьютер. Компьютер сможет выполнить программу, написанную на языке высокого уров­ня, лишь при условии, что эта программа сначала будет переведена на машинный язык. Языки высокого уровня очень далеки от машинного языка, и их команды часто транслируются в длинные последовательности машинных команд. Иное де­ло язык ассемблера. Фактически это просто читабельная форма машинного язы­ка. Так что, изучая его, вы изучаете команды машинного языка, непосредственно выполняемые процессором. Взаимосвязь между языками высокого уровня и ма­шинным языком обязательно должна учитываться при разработке компьютера. И мы с вами еще не раз вернемся к этому вопросу.

Все компьютеры работают с числами. У них имеются команды для осуществ­ления базовых арифметических операций с данными. Кроме того, при выполне­нии машинных команд программы выполняется ряд арифметических операций, генерирующих числовые адреса для доступа к хранящимся в памяти операндам. Для того чтобы понять, как решаются эти задачи, студент должен знать, как чис­ла представлены в компьютере и каким образом они складываются и вычитаются. Именно с этого вопроса мы и начнем изложение материала данной главы. Подроб­ное описание логических схем, реализующих компьютерную арифметику, можно узнать в литературе [2] по этому курсу.

Компьютеры работают не только с числовыми данными, но и с символами и да­же со строками символов, то есть наряду с числовой информацией оперируют и текстовой. Поэтому наряду с числами и операциями над ними будет рассмотрено машинное представление символов.

Соседние файлы в папке Архитектура компьютеров