среда, 30 мая 2012 г.

Коды ассемблера, языки высокого уровня.


Компьютер (ЭВМ) — это универсальное (многофункциональное) электронное программно-управляемое устройство для хранения, обработки и передачи информации.
Компьютер является универсальным исполнителем по обработке информации. Следовательно, для него, как для любого исполнителя, свойственна определенная система кодирования информации. Эта система команд называется языком машинного кодирования. Состав языка машинных команд был предложен Джоном фон Нейманом еще в 1946 г. и во многом сохранился в современных компьютерах.
Программа управления компьютером — это последовательность команд языка машинных команд.
Каждая команда является директивой для процессора на выполнение определенного действия. Эти действия выполняет либо сам процессор (арифметические и логические операции), либо внешние устройства (команды ввода, вывода) под управлением процессора.
Согласно принципам Дж. фон Неймана, программа во время ее исполнения и обрабатываемые ею данные находятся в оперативной памяти ЭВМ (принцип хранимой в памяти программы). И то и другое имеет вид двоичных кодов. Процессор исполняет программу, начиная с первой команды и заканчивая на последней (или на специальной команде «стоп»). Во время исполнения очередной команды процессор переписывает ее в свои регистры, исполняет и переходит к следующей команде.
Программисты, работавшие на ЭВМ первого поколения (ламповые машины 50—60 х гг.), писали программы на ЯМК (Языки машинных команд). Это довольно сложная работа. Для облегчения программирования созданы языка программирования высокого уровня.
Примерами таких языков являются Фортран, Паскаль, Бейсик, Си и др. Составлены программ на таких языках много проще, чем на ЯМК. Программирование стало доступно большему числу людей.
Однако процессор ЭВМ понимает только ЯМК и не понимает ЯПВУ (Языки программирования высокого уровня). Поэтому, для того чтобы на машине исполнилась программа, записанная, например, на Паскале, ее нужно перевести с языка Паскаль на ЯМК. Такой перевод называется трансляцией. Трансляцию выполняет этот же самый компьютер по специальной программе, которая называется транслятором (например, транслятор с Паскаля). Программы-трансляторы составляются системными программистами и входят в программное обеспечение компьютера.

Коды ассемблера

Языки программирования принято делить на пять поколений.В первое поколение входят языки, созданные в начале 50-х годов, когда первые компьютеры только появились на свет. Это был первый язык ассемблера, созданный по принципу “одна инструкция – одна строка”.
Расцвет второго поколения языков программирования пришёлся на конец 50-х –начало 60-х. Тогда был разработан  символический ассемблер, в котором появилось понятие переменной. Он стал первым полноценным языком программирования. Благодаря его возникновению заметно возросли скорость разработки и надёжность программ.
Написание ассемблерных программ знаний организации всей системы компьютера. В основе компьютера лежат понятия бита и байта. Они являются тем средством, благодаря которым компьютерной памяти представлены данные и команды.
Программа   в машинном коде состоит из различных  сегментов для определения данных, для машинных команд и для сегмента, названного стеком, для хранения адресов. Для выполнения арифметических действий, пересылки данных и адресации компьютер имеет ряд регистров.

ПРИМЕР МАШИННЫХ КОДОВ: НЕПОСРЕДСТВЕННЫЕ ДАННЫЕ

Цель данного примера - проиллюстрировать простую программу на машинном языке, ее представление в памяти и результаты ее выполнения.
Программа показана в шестнадцатиричном формате:
Команда Назначение
B82301 Переслать шест. значение 0123 в AX.
052500 Прибавить шест. значение 0025 к AX.
8BD8 Переслать содержимое AX в BX.
03D8 Прибавить содержимое AX к BX.
8BCB Переслать содержимое BX в CX.
2BC8    Вычесть содержимое AX из AX (очистка AX).
90 Нет операции.
     Можно заметить, что машинные команды имеют различную длину: один, два или три байта. Машинные команды находятся в памяти непосредственно друг за другом.Выполнение  программы начинается  с  первой команды и далее последовательно выполняются остальные.

Комментариев нет:

Отправить комментарий