Код магнитолы

JS - телефон

Оппозиция в России ?

Россия и Украина

Мысли в слух...

JS - часы

Российская...власть ?

Skype

Создаём сайт

Любимые сериалы

Гостевая


На главную

Вы не поверите, но каждый компонент-элемент уже созданного окна - это...то-же окно. Да-а-а... В свете последних новостей, идея создания ассемблер-арифмометра, уже не кажется такой перспективной. Но, как говорится, дело и мастер...близнецы-братья!
Попробуем обойтись без лишней красоты. Арифмометр не будет круглым, но кнопочки и дисплей мы возмём - стандартные, из закромов браузера.
Прежде, чем мы обратимся к коду (рис.8), немного задержимся на его оформлении. Код нового окна, в отличии от предыдущего (рис.7), идёт без директивы option casemap:none и сочетает в себе как верхний, так и нижний регистр букв. Связано это с тем, что Win API, а мы им пользуемся, выполнено в верхнем(?) регистре. Зачем нам лишние ошибки при компиляции? Будем исполнять "имена собственные" - в верхнем регистре, а всё остальное - в нижнем.
Признаюсь, по секрету, я просмотрел перспективы нашего арифмометра. Что интересно - графика оказалась наиболее лёгкой частью программы и кнопочек на нашем арифмометре осталось только 16.
Наиболее сложной частью арифмометра оказалось преобразование числа в двоичный код и обратно. Более подробно преобразование рассмотренно здесь.
Выглядеть основной файл арифмометра будет так:



Код получился не очень объёмным. Не смотря на то, что одних кнопок на нашем арифмометре - 16 шт. К тому-же, их создание выполнено в "развёрнутом" виде, для наглядности (не каламбур). Что-бы не ухудшать читаемость кода, все параметры раздела .data вынесены в отдельный файл - data.inc.
Если приглядется - создание (и не только) идёт по следующему принципу: запихиваем в стэк основообразующие параметры (типовые и созданные) и вызываем необходимую функцию. Это - уже не совсем ассемблер, но за стэк подержатся можно. Да и попрыгать - то-же.
В результате мы получили ехе-файл. Это - не Рафаэль, но на арифмометр похоже.

Несколько слов о файле const.inc. Это - вспомогательный файл, даже - разгрузочный. В него можно запихнуть большую часть кода основного (и не только) asm-файла. С очень большой вероятностью - у нас появятся и вспомогательные asm-файлы и тогда придётся файл fenix.asm - делать главным (WinMain proc).

дальше...
...назад