Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции за I семестр - 6.doc
Скачиваний:
4
Добавлен:
18.11.2018
Размер:
188.42 Кб
Скачать

11.7. Кодирование программы.

Программа в машинных кодах (исполняемый код) – это последовательность команд (инструкций), которые помещаются в памяти и выполняются процессором в указанном порядке. Исполняемый код обычно сохраняется на диске в файлах с определенными расширениями ( .exe, .dll, .com и др.)

Команда размещается в комбинированной ячейке следующим образом. Первый байт содержит код операции (КОП) (например + или – или *), которую необходимо выполнить над содержимым ячеек памяти. Далее в одной, двух или трех ячейках (операндах команды) по 2 или 4 байта содержатся адреса ячеек (А1, А2, А3), над которыми нужно выполнить указанную операцию. Номер первого байта команды называется ее адресом (рис. 11.1).

Рис. 11.1

11.8. Регистры

Заметим, что кроме собственно ОЗУ, в компьютере имеются ячейки памяти, размещенные непосредственно в процессоре. Такие ячейки памяти называются регистрами. В процессоре обычно имеется лишь несколько регистров, каждый из которых содержит один или несколько байт; их точное количество зависит от типа процессора. Регистры не имеют адресов. Регистры обеспечивают наиболее быстрый доступ к данным, так как: 1) обращение к регистру не требует затрат времени на передачу информации из процессора в ОЗУ или наоборот; 2) машинные команды, использующие регистр, вместо длинного адреса ячейки памяти содержат краткое указание соответствующего регистра.

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