Ассемблер Госта. ---------- Числовые ячейки: ia,ib,ic,id,ie; буквенные ячейки: ca,cb,cc,cd; строковые ячейки: sa,sb,sc,sd. --- команда помещения значений в ячейки:mov[ia,100],mov[ca,б],mov[sa,текст],и т.д.; команда копирования ячейки в стек: push[ia],push[ca],и т.д; команда копирования из стека в ячейку: peek[ia],peek[ca],и т.д; команда перемещения из стека в ячейку: pop[ia],pop[sa],и т.д; dup -дублирование стека. --- арифметические команды: mul-умножить первое на второе значение из стека и сохранить результат на вершине стека(предварительно положить на стек числа) ; div-деление; add-сложение; sub- вычитание; pow-возведение в степень(первое значение в стеке-число, второе-степень); inc-увеличить число в стеке на 1; dec-уменьшить число в стеке на 1; rnd-генерация случайного числа на стек, параметры в стеке:максим.число,мин.число; mod-модуль числа в стеке положить на стек. --- Подпрограммы: proc[имя подпрограммы]-обьявление подпрограммы; ret-возврат из подпрограммы. call[имя подпрограммы]-вызов подпрограммы. --- метки: имя метки начинается с двоеточия; jmp[metka]-безусловный переход; jz[metka]-переход если на стеке ноль; je[metka]-если знач.на стеке равно значению ячейки ia; jnz[metka]-если на стеке знач. не равно нулю; jne[metka]-если знач. на стеке не равно знач. ячейки ia; jg[metka]-если знач. на стеке больше ia; jl[metka]-если знач.на стеке меньше ia; jna[metka]-если знач.на стеке больше ia; jnl[metka]-если знач. на стеке не меньше ia. js[метка]-переход если строка в стеке равна строке в sa. --- прерывание для форм: int00h[номер функции]-прерывание для вывода в форму, где номера функции: 1-показ формы, 2-вывод символа, 3-вывод текста, 4-очистка формы, 5-запрос ввода текста и сохранение его на стек, 6-ожидание нажатия на кнопку, 7-добавление двух команд в форму (текст для кнопок берется со стека) и при нажатии в стек помещается номер команды, 8-изменение заголовка формы текстом из стека; --- системное прерывание: int01h[номер функции]-системные прерывания, номера функций: 1-пауза(длительность паузы ложится на стек), 2-выход. --- прерывания для возврата значений: int02h[номер функции]-прерывание с функциями для возврата определенных значений в стек, номера функций: 1-ширина экрана, 2-высота экрана, 3-ширина строки в стеке в пикселях, 4-ширина символа в стеке, 5-высота шрифта, 6-количество символов в значении на стеке, 7-размер оперативной памяти, 8-оставшаяся оперативная память. --- Звук: для работы со звуком используется набор функций прерывания int03h[номер функции],номера функций: 1-вибрация(в стеке:длительность в миллисекундах), 2-системный сигнал, 3-воспроизведение ноты(в стеке:номер ноты,длит.ноты,громкость в процентах), 4-воспроизведение миди-файла(в стеке:имя файла в архиве,число повторений( -1 -бесконечно)), 5-воспроизведение мп3 или амр файлов(в стеке как и в функции 1), 6-воспроизведение wav-файла(в стеке как и в функции 1), 7-закрытие играющего файла. --- Файлы: для работы с файлами используется набор функций прерывания int04h[функция],функции: 1-удаление файла или папки(в стеке:путь к файлу или папке), 2-создание файла(в стеке как в функции 1), 3-открытие файла для чтения(в стеке как в функ.1), 4-чтение байта, 5-чтение всего содержимого файла, 6-открытие для записи, 7-запись байта из стека, 8-запись строки из стека, 9-закрытие файла, 10-создание папки, 11-переименования файла или папки(в стеке:путь к нач.файлу или папке,новое имя). --- Интернет: для работы с интернетом используется набор функций прерывания int05h[функция],номера функций: 1-открытие http-соединения с адресом из стека, 2-чтение байта, 3-чтение всего содержимого, 4-закрытие http-соединения. --- Графика: для работы с низкоуровневой графикой используются функции прерывания int06h[функция],номера функций: 1-вкл.полноэкран.режим, 2-выкл.полноэкр.режим, 3-перерисовка экрана, 4-выбор цвета(в стеке:красный,зеленый,синий), 5-рисование точки(в стеке:x,y), 6-рисование линии(в стеке:x,y,x2,y2), 7-рисование прямоугольной рамки(стек:x,y,ширина,высота), 8-рисование прямоугольника с заливкой(стек:x,y,ширина,высота), 9-рисование окружности без заливки(стек:x,y,ширина,высота,начальный угол,оборот угла), 10-рисование окружности с заливкой(стек что и у функ.9); 11-показать графический экран; 12-положить на стек текущее состояние клавиш(если клавиша нажата, то возможные значения:GAME_A,GAME_B,GAME_C,GAME_D,UP_PRESSED,DOWN_PRESSED,LEFT_PRESSED,RIGHT_PRESSED,если не нажата ни одна клавиша,то ложится значение null). --- Смс: int07h[номер функции]-прерывание для работы с смс,номера функции: 1-послать смс(стек:номер телефона,текст сообщения).