Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Для имеющих опыт работы на ассемблере под WIN

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

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

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

Работа по сложности в пределах большой лабораторной работы и не должна вызывать затруднений у специалиста по программированию на ассемблере под оконный WIN.

Срок - около месяца.

Если Вы не можете выполнить всю работу - сообщите какие части Вы можете выполнить.

Связаться со мной можно: по аське мой номер 362 548 571 или е-м [email protected]. Лучше на е-м

Схема работы моего транслятора:

Мой язык программирования мой транслятор переводит в текст на ассемблере в файлы с расширением .ASM

MASM32 транслирует ассемблер в файл .OBJ

Из файлов .OBJ собирается файл .EXE

Теперь уточняю постановку задачи.

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

Программа в целом должна работать в оконном режиме НО только в одном окне.

На уровне исходных текстов программа состоит из подпрограмм.

Передача данных - через адреса. То есть значения не передаются, а передаются адреса переменных.

Подпрограммы двух типов - передача через список параметров и подпрограммы-функции (одно выходное значение передается через имя подпрограммы)

Данные следующих типов

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) Чтение и запись последовательного типа, но вопрос так же дискуссионный.

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

Конечный результат - согласованные со мной, переданные мне и протестированные мной тексты на ассемблере

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

17 лет назад
Voronok
Виктор 
72 годаРоссия
17 лет в сервисе
Был
16 лет назад
  • Похожие заказы
  • $20

    Тема проекта Разработать программное обеспечение для работы со структурными типами данных с реализацией объекта типа Firm. Исходные данные к проекту Обработать информацию о фирмах городов. Обработку прекратить, когда на запрос будет выведено слово «end». Фирм в ...

    Прикладное ПОнет заявок
    Закрыт
    17 лет назад
  • $100

    Нужна программа для учёта товара на складе. Товар разного типа: стройматериалы, осветительные приборы, отопление и т.п. В перспективе - добавление учёта продаж и других возможностей.

    Закрыт
    17 лет назад
  • Необходимо провести миграцию MS Access 2.0 приложения на MS Access 2003. Приложение используется в компании занимающейся телефонным маркетингом, поетому там присутствуют API функции для работы с телефоном. Аппликацию пришлю заинтересованным лицам. Необходимо также создать функционирующий Run-Time ...

    Закрыт
    17 лет назад
  • $3000

    Програмист (желательно Дельфи, Одинцово). Для проэкта по програме для SEO специалистов нужен програмист на (желательно) Дельфи из (желательно) Одинцово Работа на дому. Полная занятость (то есть ТОЛЬКО ЭТИМ ПРОЭКТОМ), хорошая оплата, Знания как сделать приличное ГУИ, умнение работы ...

    Закрыт
    17 лет назад
  • $50

    В екселе есть столбец, в котором есть данные, назовём его столбец а) (артикула товаров) Переодически появляеться новый столбец ,каждый раз разный, назовём его б) (тоже с артикулами товара) . Надо чтобы скрипт искал совпадения (одинкавые столбцы) ...

    Прикладное ПО1 исполнитель
    Завершен
    17 лет назад
  • СРЕДА реализации Borland C++ Builder Информационный справочник фармацевта Исходные данные 1.идентификационый номер (число, определяющее показание к применению), 2.наименование медпрепарата(строковый тип ), 3.показание к применению (перечень заболеваний), 4.противопоказания (перечень заболеваний), 5.дозировка, 6.дата окончания срока хранения, 7.страна-изготавитель, 8.стоимость упаковки. Постановка задачи 1. На основании исходных данных и анализа ...

    Прикладное ПО1 исполнитель
    Закрыт
    17 лет назад
  • $15

    Есть таблица значений функции для определенных точек (в файле, в бинарном формате). Есть набор точек (в базе mysql или в текстовом файле), для которых нужно интерполировать значения (простая билинейная интерполяция). Результат интерполяции нужно записать в ...

    Прикладное ПО1 исполнитель
    Закрыт
    17 лет назад