Миниальный комплект групп операторов на ассемблере

Web/сайты Прочее

Был(а) онлайн: 26.04.20 14:45
Umen 26 лет

1.0 Был(а) онлайн: 26.04.20 14:45

Недавно
Для имеющих навык работы на ассемблере под WIN
Мне надобно написать транслятор для нового языка программирования, транслятор будет переводить язык не в коды, а в ассемблерные команды, записываемые транслятором в файлы с растяжением .ASM. Транслятор экспериментальный, для движения теории программирования.

Для этого мне необходимо, дабы Вы написали несколько групп операторов на ассемблере, которые обязаны добиваться цели, перечисленные ниже.

(Для модератора: за работу я могу уплатить 15 тыс. рублей. Не менее. То есть не менее 600 баксов)

Работа по трудности в пределах огромный лабораторной работы и не должна вызывать сложностей у эксперта по программированию на ассемблере под оконный WIN.
Срок - около месяца.
Если Вы не можете исполнить всю работу - известите какие части Вы можете исполнить.
Связаться со мною дозволено: по аське мой номер 362 548 571 либо е-м ***. Класснее на е-м

Схема работы моего транслятора:
Мой язык программирования мой транслятор переводит в текст на ассемблере в файлы с растяжением .ASM
MASM32 транслирует ассемблер в файл .OBJ
Из файлов .OBJ собирается файл .EXE

Сейчас уточняю постановку задачи.
Тексты на ассемблере, написанные по моему заданию обязаны исполнять перечисленные ниже задачи:

Программа в совокупности должна трудиться в оконном режиме НО только в одном окне.

На ярусе начальных текстов программа состоит из подпрограмм.
Передача данных - через адреса. То есть значения не передаются, а передаются адреса переменных.
Подпрограммы 2-х типов - передача через список параметров и подпрограммы-функции (одно выходное значение передается через имя подпрограммы)

Данные следующих типов
1) целые 4 байта, примитивные (в тч имя функции) и одномерные массивы, реально расположенные в памяти подпрограммы и те, чьи адреса передаются через формальные параметры.
2) вещественные 8 байт, остальное то же, что и для целых
3) логические 4 байта, -//-
4) символьные, длина одной переменной указывается, то есть может быть из 5 либо 125 байт. Остальное то же что выше.
Сейчас операции
Арифметические:
1) A=[-]B
оператор копирования либо присвоения. A и B, если это данные различных типов, то выполняется реформирование типа
арифметические операции. Если A символьная стандартной длины а B - целая либо вещественная то реформирование по согласованной в диалоге форме.
2) А=[-]B+C
3) A=[-]B-C
4) A=[-]B*C
5) A=[-]B/C
Логические операции над логическими переменными:
1) A=[не]B
2) A=B и C
3) A=B либо C
сопоставление чисел одного типа либо символьных переменных с установление значения логической переменной
4) A=B равно C
5) A=B не равно C
6) A=B поменьше C
7) A=B поменьше либо равно C
8) A=B огромнее C
9) A=B огромнее либо равно C
символьные переменные различных длин сравниваются так - переменная меньшая по длине "мысленно" дополняется пробелами до длины большей по длине переменной.
Переходы
1) Абсолютный переход на метку
2) Воображаемый переход на метку по значению логической переменой ПРАВДА.
3) Оператор возврата в вызывающую программу/подпрограмму
4) Оператор остановить программу. Данный оператор, как и некоторые другие, дискуссионный,

Нужные функции, они оформляются как вызовы подпрограммы. Параметры уточню. Тут только тезис работы.
Экран:
1) Сотворить окно заданного номера, заданных размеров, местоположение на экране и изначальной закраской
2) Убрать окно заданного номера
3) Вывести цветную точку по заданным координатам - дискуссионная функция
4) Считать точку по заданным координатам
5) Допустимы обновления окон - это дискуссиное
6) Вывести текст по заданными координатам.

Клавиатура, мышь
1) Считать код клавиши
2) Местоположение курсора мыши и другие клавиши


Магнитные носители, сети, печать(допустимо, печать отличнее отнести к экрану)
0) Сотворить каталог/убрать каталог
1) Открыть условное устройство по имени и дать ему номер. Тип "всеобщий доступ"
2) Закрыть устройство по номеру/возможно убрать при закрытии
3) Записать массив байт заданной длины с заданного байта с обработкой "сбой" "переполнение"
4) Прочитать массив байт заданной длины с указанием реально считанной длины и обработки "сбой"

Устройства ввода-итога, в том числе и USB
1) Открытие и закрытие как и в предыдущем пункте, впрочем вопрос дискуссионный.
2) Чтение и запись последовательного типа, но вопрос так же дискуссионный.


Сложность работы не в том, что она огромная по величине, сложность в отработке групп операторов, вписывающихся в требования, которые, как показывает практика, кажутся до работы явственными, но жизнь неизменно показывает, что это не так.

Финальный итог - согласованные со мною, переданные мне и протестированные мною тексты на ассемблере

С уважением, Виктор Воронков.

Чтобы добавить заявку к этому заказу, нужно войти или зарегистрироваться

Мой блок

26.04.20 14:45
Umen 26