Данному образовательному сайту пришлось несколько раз менять свое имя. С 2011 года доступ к нему обеспечивается по URL
http://educomp.runnet.ru

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)
"S9PU" (parallel)

Модели (hardware):






Награды сайта
Награды сайта

(Продолжение. Начало см. здесь)

Приведем теперь описание языка Ассемблер для СМ "Малютка".

Директивы распределения памяти

ДирективаОписание
ds nрезервируем в памяти n ячеек. Вместо n надо подставить конкретное число. Используется, например, для определения массива, который будет заполняться в процессе выполнения программы. Необходимо также и тогда, когда в программе появляется формируемая команда (число выполняется, как команда). Можно, конечно, вместо этой команды записать dw 0,0,0..., где ровно n нуликов
dw nпомещаем конкретное число в ячейку памяти. Вместо n это самое число и подставляется. Лучше всего числа начинать с цифры 0 (чтобы не путать с метками)
dw n1,n2, ...помещаем много чисел в подряд идущие ячейки памяти
dw <метка>помещаем в ячейку памяти адрес ячейки, помеченной указанной меткой. Например, конструкция
               ...
    BEGIN:     dw MASSIV
               ...
    MASSIV:    dw 012,801,
               ...
поместит в ячейку BEGIN номер ячейки, в которой находится первый элемент массива. Вещь необходимая для программы сортировки.
dw <метка + n>помещаем в ячейку памяти адрес ячейки, отстоящей на n ячеек от помеченной. Это нужно для того, чтобы, например, передать управление на неотмеченную ячейку
ENTначало программы. То есть, адрес ячейки, следующей за этим словом помещается в ячейку 00.

Метка - это от одной до восьми латинских букв или цифир, причем первый символ - буква.

Tочка с запятой говорит о том, что после нее до конца строки идет комментарий.

Система команд

Везде, где требуется указать адрес конкретной ячейки, указывается метка. "Поскольку вы наверняка по номеру команды сразу же поймете, что она делает, мы приведем расшифровку мнемоники на заморском языке в порядке развития межпредметных связей."

LDA (...)0..LoaD Adder (загрузка сумматора);
STA (...)1..STore Adder (сохранить сумматор);
RADD (...)2..Rational ADDition (рациональное, то есть дробное сложение);
NEG300NEGative (смена знака);
ABS301ABSolute value (абсолютная величина);
SAR310Shear Adder to the Right (сдвиг сумматора вправо);
SAL311Shear Adder to the Left (сдвиг сумматора влево);
JMP ...4..JuMP (прыжок - передача управления);
RMUL (...)5..Rational MULtiplication (рациональное умножение);
1DIV6001 DIVide to adder (единицу делим на сумматор );
OR (...)7..OR (или);
AND (...)8..AND (и);
NOT900NOT (не);
ADD (...)A..ADDition (сложение);
MULT (...)B..MULTiplication (умножение);
IPRTC00 Integer PRinT (вывод на табло целого числа);
RPRTC01 Rational PRinT (вывод на табло рационального числа);
HPRTC02Hexadecimal PRinT (вывод на табло шестнадцатричного числа);
CLTC03CLear Table (расчистка табло);
BELLC04BELL (звуковой сигнал);
INC05INput (ввод с клавиатуры);
BPRTC10 Binary PRinT (вывод на табло двоичного числа);
ROLLCFFscROLLing (скроллинг табло - продвижение всех данных на табло
на одну строку вверх. Самое верхнее значение теряется.);
JNP ...D..Jump if Not Plus (прыжок, если в сумматоре отрицательное число);
JZ ...E..Jump if Zero (прыжок, если нуль);
HLT (...)F00HaLT (стой);


© А.И.Сенокосов, А.Г.Гейн, 1995
© Оформление Web-страницы Е.А.Еремин, 2010


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com