MOV R1 R5
MOV R1 R5
Компилятор
Интерпретаторы
Трансляция программы
Интерпретация строк программ
Способы перевода программ в машинные коды.
Языки программирования высокого уровня
Языки программирования служат для того чтобы составить программу для работы на компьютере. Язык программирования позволяет перевести алгоритм для решения какой-либо задачи в машинный код. Язык предоставляет собой набор операторов, которые затем переводятся (интерпретируются или транслируются) в машинные коды, то есть язык программирования - это инструмент программиста для составления программы. Программу можно написать и на машинном языке, то есть в кодах, но это чрезвычайно сложно.
Созданную на некотором языке программу можно перевести в машинный код с помощью специальных программ двумя способами:
Под интерпретаторами понимаются специальные программы, которые позволяют строку, написанную на языке программирования, вводить в компьютер и сразу же её исполнять. Вот эти действия - ввод и исполнение - называются интерпретацией.
Интерпретаторы позволяют программистам быстро получать результат, поскольку операторы программирования выполняются после построчного ввода. В качестве примера программы интерпретатора можно назвать интерпретатор языка Basic. К недостаткам интерпретатора следует отнести, то что они работают довольно медленно и система должна держать в памяти полную версию этого интерпретатора.
Компилятор – это транслятор текста программы в машинный язык, то есть в коды команд. Компилятор считывает программу, написанную на языке программирования и, в соответствии с синтаксическими правилами этого языка, переводит программы этого языка в машинные коды. Здесь учитываются особенности компьютера и применённые в данном случае способы адресации.
Код операции Адрес I АдресII
Если мы напишем строку программы следующего вида:
01 11 15
0 001 001 001 001 101
То транслятор увидит, что по сочетанию символов MOV производится операция по пересылке данных от операнда - источника I в операнд приёмник II. При переводе такой команды в машинные коды транслятор найдёт в таблице код операции 01 (это в восьмеричном виде) и поставит его в команду. По форме записи R1, R5 транслятор узнаёт, что применяется регистровая адресация, при которой операнд находится в указанном регистре. По таблице адресации будет найдено, что регистровая адресация кодируется цифрой 1 в восьмеричной и к этому коду адресации будет добавлен номер регистра источника и номер регистра приёмника. Регистр источника – это R1, а регистр приёмника – R5. Таким образом, мы получили 16 разрядный восьмеричный код команды, который перенесёт данные из R1 в R5. Чтобы получить двоичный код команды необходимо перейти от восьмеричного изображения чисел в двоичную. Для предоставления каждой восьмеричной цифры необходимо использовать 3 двоичных разряда. В данном случае мы получили двоичный код команды.
Пусть содержимое регистров:
Содержимое регистра источника R1 не меняется и данные содержащиеся в R1 будут перенесены в R5.