Курс ассемблера Малой Машины
Предлагаемый курс содержательного программирования
на "Малой машине" рассчитан на учеников, не обладающих
какими-либо специальными сведениями,выходящими за пре-
делы школьного курса, но предъявляет высокие требования
к их логической культуре.
Это курс "детского ассемблера" содержащий всего 16
команд в цифровой записи, но дающий хоpошее представле-
ние о том, как работает машина и как выглядит настоящий
ассемблер.
Блоки задач возрастающей сложности должны дать воз-
можность ученикам разных способностей удовлетворять
свои интеллектуальные запросы.
Порядок изложения задач выбран с таким расчетом,
чтобы обучающемуся нужно было как можно меньше запоми-
нать и при этом он бы все время имел интересные разно-
уровневые задачи.
Логическая схема ММ проста и ученик может видеть ее,
вызвав HELP программы моделирования ММ.
Занятие 1.
Логическая схема ММ.
Память. Ячейки.
Числа.
Понятие о фиксированной и плавающей запятой.
Команда.
Арифметические команды.
Программируется задача: сложить 2 числа.
___________________________________________
|Ассемблер |АДРЕС |КОД| 1 | 2 | 3 |
|_ _________|_______|___|_ | _____|_____|
A+B=:C 200 04 300 301 | 400
PECH 007;C;L 201 15 007 400 | 202
STOP 202 17 000 000 | 000
A 300 04 220 000 | 000
B 301 04 260 000 | 000
Задача на дом:
y=17x^3+12x^2+4x+5 при x=1.0,10.0
Занятие 2:
Занятие начинается с разбора домашнего задания.
Показывается,что можно уменьшить число действий
за счет применения схемы Горнера.
Вводится понятие блок-cхемы.Рисуется схема для
этой задачи. Пишется содержательная часть зада-
чи. Объясняется, что представляет из себя прог-
рамма моделирования ММ.
Oб[ясняются возможности программы на машине.
Вводится команда пересылки:a=:b;k
На дом: поменять местами содержимое ячеек А и
В без рабочих ячеек.
______________________________________________
a+b=:a
a-b=:b
a-b=:a
PECH 007;A;L
PECH 007;B;L
L: STOP
A [5]
B [7]
Занятие 3
Вводятся команды:
Aa=:c ;сдвиг влево на 3 бита.
075<->a=:c ;сдвиг вправо на 3 бита.
ЗАНЯТИЕ 8:
логические команды.
Занятие посвящается решению задач.
Задачи:
1. Из команды A+B=:C получить команду
C-A=:B и выполнить ее.
2. Посчитать число 1 и 0 в ячейке памяти.
3. Обратить ячейку памяти.
Задача для успешно продвигающихся учеников:
в ячейке ,начиная с к-ого бита в n битах заменить
0 на 1 ,а 1 на 0.
Занятие 9:
Понятие о массиве . Oбратить внимание на то,что
массив должен содержать числа одного типа.
Рассмотреть переадресацию на задаче:
сложить n элементов массива.
Для этого ввести 2 команды.
A + ,B =:C
A - ,B =:C
Решение эадачи можно посмотреть в HELP программы
моделирования.
Раздать каждому ученику самостоятельную задачу типа:
1.найти скалярное произведение двух векторов.
2.дан массив из 2n ячеек.Поменять местами 1 и n
,2 и 2n-1.....элементы массива.
Требовать ручную отладку всех программ до выхода
на машину.
Занятие 10:
Двукратные циклы.
Что такое матрица.Расположение элементов матрицы
в памяти.
Тема рассматривается на задаче:
Посчитать сумму элементов каждого столбца матрицы,
имеющей M строк и N столбцов.
Показать,что счет внешнего цикла представляет из
себя внутренний цикл,в котором используется кано-
ническая схема.
Обратить внимание,что во внешнем цикле переадресо-
вываются восстановители внутреннего цикла.
На циклы предлагаются задачи:
1.Задан одномерный массив,содержащий координаты галочек,
расположенных беспорядочно в некоторой матрице размера
М на N. Организовать два массива,членами которых были бы
соответственно: количество галочек в каждой строке матрицы
количество галчек в каждом столбце матрицы.
2. Заполнить квадратную матрицу простыми числами
по спирали.
3. Найти все седловые точки матрицы ( минимальный элемент в
строке и одновременно маскимальный в столбце).
4. Найти все следы матрицы.
Занятие 11:
Вызов подпрограмм.
Вводится команда ret=>beg;end,где
ret-----------адрес возврата
beg-----------адрес начала подпрограммы
end-----------адрес свободной ячейки выхода подпрограммы.
Об[ясняются принципы структурированного программирования.
Понятие управляющей программы.
Входная и выходная информация.
Передача информации между подпрограммами.
Локальные переменные.
Задачи:
Написать управляющую программу и подпрограмму
для:
1.Нахождение максимального элемента в каждой
строке матрицы.
2.Переписать программу заполнения квадратной матрицы
простыми числами по спирали.
--- Малый ассемблер --
Руководство пользователя.
1.О МАЛОМ АССЕМБЛЕРЕ...
-----------------------------------------------------------------
Малый Ассемблер - программа, предназначенная для проведения
курса содержательного программирования на "Малой машине".
Позволяет писать программы, отлаживать их и наблюдать за их
выполнением процессором "ММ".
Режимы pаботы :
Малый Ассемблеp pаботает в двух pежимах: pедактиpования и
отладки пpогpамм. Оба pежима имеют функции pаботы с файлами.
Доступные в данном pежиме команды находятся в веpхней стpоке
экpана.
Окна экpана :
Во всех pежимах на экpане имеются 3 окна: ВЫВОД, ОПИСАНИЕ и
центpальное окно с текстом пpогpаммы.
Центpальное окно pазбито на 3 части:
МЕТКИ, где находятся метки,
ПРОГРАММА, с текстом пpогpаммы
КОДЫ, где находится пpогpамма в кодах.
В окне ОПИСАНИЕ можно помещать описание программы.
В окно ВЫВОД направляется весь вывод процессора ММ
РЕЖИМ РЕДАКТИРОВАНИЯ
-------------------- -----------------------------------------------
Возможности :
Малый ассембер содержит простой редактор, позволяющий
редактировать программы и хранить их на диске.
Команды редактора:
Клавиша Функция | Клавиша Функция
|
Ins Вставка пустой | F2 Запись файла на диск
строки | F3 Считывание файла
Del Удаление строки | F6 Новая программа
под курсором | F9 Трансляция программы в
Tab Переход из поля | коды и переход в режим
программы в поле| отладки если успешно
меток и обратно | F10 Переход в окно опи-
ESC Выход в ДОС | сания программы и
F1 Помощь | обратно
РЕЖИМ ВЫПОЛНЕНИЯ И ОТЛАДКИ
---------------------------- -----------------------------------------
Отладчик малого ассемблера позволяет отлаживать и
запускать программы, а также следить за выполнением
программы и за содержимым регистров.
В левом верхнем углу экрана находится адрес текущей команды.
Ячейки содержимое которых было изменено при выполнении программы
выводятся красным цветом. Точки останова выводятся синим цветом.
После полного выполнения программы ( до команды STOP ) возможен
повторный ее запуск ( указатель инструкции устанавливается на
первую строку ).
При попытке редактировать программу Малый Ассемблер переходит
в режим редактирования.
Средства отладки
Клавиша Функция Клавиша Функция
F1 Помощь | F6 Новая программа
F2 Запись файла | F7 Просмотр значений
на диск | всех меток нахо-
F3 Считывание файла| дящихся после STOP
с диска | F8 Шаг программы
F4 Запуск |
( Останов при |
команде STOP, |
достижении точки|
останова или |
нажатии любой |
клавиши ) |
F5 Установка/отмена|
точки останова |
© Антонова Марианна Константиновна
|