Я уже выкладывал код этой программы. Но там были некоторые баги, в этой версии правильно вычисляется разница дат по старому и новому стилю. Скажем в 10000 году православную пасху будут праздновать в 18.06, это лето. А католическую в 16.04 и по старому стилю это будет 3 февраля. Вот какой вот не точный юлианский календарь, сейчас разница 13 суток после 2100 будет уже 14 суток.
почему в вашем коде много где используется тип sdword? (signed dword) даже для argc main proc C argc:sdword очень интересно
alex_dz, там мало sdword, в некоторых местах забыл указать. Это для совместимости с С/С++, если указано sdword значит это int или long.
alex_dz, а зачем в С/С++ контролируют похожие типы, типа int и unsigned int? Для того чтобы не допустить заведомо бессмысленных операций, собственно для этого С и создавался. Высокоуровневый ассемблер тоже контролирует типы, но слабо, программист сам должен за этим следить, если у нас sdword, значит операции умножения и деления надо использовать imul и idiv, а если dword то mul и div, и так же условные переходы. Ещё UASM можно задавать тип указателя в параметрах функции, если у нас date:ptr SDate, то присвоив date регистру надо ассоциировать с этим классом, и использовать свойства класса/структуры. Я вот скачал исходники FASM, значит смотрю код, и пришёл в тихий УЖАС, хоспаде как это можно поддерживать, я вообще не понял что этот код делает, вообще. Ну как работает отдельная команда мне понятно, но что делает этот код в целом, непонятно от слова вообще. Если с Томашом случиться автобус, то очень мало кто сможет поддерживать проект, да думаю скорей всего никто. Он весь проект держит в голове, а просто выдаёт с компилированный МОЗГОМ асм код, причём там нет даже комментариев, ну почти нет, да ещё ЯП которым он пользуется - неизвестный, этот ЯП весь в его голове. Конечно, для многих ассемблер это бейсик, не просто бейсик, а старый бейсик, очень старый бейсик, в котором нет даже функций и есть номера строк, ну ладно, номеров строк нет, но переходы только по меткам, я на таком много лет назад кодил, бейсик Микрон, Партнёр 01.01. Но уже очень давно доказано что это очеееень плохой ЯП. А то что делает Томаш, хорошо для всяких вирусов, ну вредоносного кода для взлома всяких пентагонов, но только не для такого проекта как ассемблер.
Всё понятно, кроме того, кто будет праздновать пасху в десятитыщщном году и будет ли там пасхальный кролик?
TrashGen, вряд ли. Там разница между григорианским и юлианским календарём будет 73 суток, а сам григорианский где-то одни сутки ошибки будет. В прочим сохранится ли наша цивилизация к тому моменту?, но этот вопрос нашу программу совершено не интересует.