(Копия
блога на Технотреке)
Summary
В этот раз мы разобрали работу с адресами с помощью меток. Они используются в качестве синонимов адресов кода или данных (переменных). Важно понимать, что процессор с метками дело не имеет, он работает только с адресами. С метками работает только ассемблер, он переводит их а адреса. Это часто путают.
При ассемблировании возникает проблема трансляции имени метки с адресом, который еще не обрабатывался. Такой метки ассемблер еще пока "не знает". Это решается по-разному, самый простой путь - двухпроходная (многопроходная) схема компиляции.
Домашнее задание
1. Реализуйте обработку меток, либо в виде чисел, либо в виде идентификаторов, с помощью двухпроходной схемы трансляции;
2. Реализуйте операторы вызовов функций и возврата из них с использованием дополнительного стека адресов возвратов.
3. Протестируйте процессор на задачах решения квадратного уравнения с разбором всех случаев (см. задание к занятию 1) и на задачах рекурсивного вычисления факториала или чисел Фибоначчи.
4*. Реализуйте операторы рисования точки на графическом экране с указанием ее координат и цвета (как обычно, все данные берутся из стека). Нарисуйте несколько графиков нежно любимых математических функций. У вас же есть особенно любимые математические функции? :)
5*. Захватите мир с помощью вашего процессора. Ну или хотя бы печеньки :)
***
Удачи, и May the Source be with you! :)