Дата православной и католической пасхи.

Discussion in 'WASM.A&O' started by Intro, Oct 17, 2023.

Tags:
  1. Intro

    Intro Active Member

    Blog Posts:
    0
    Joined:
    Aug 29, 2009
    Messages:
    652
    Я уже выкладывал код этой программы. Но там были некоторые баги, в этой версии правильно вычисляется разница дат по старому и новому стилю. Скажем в 10000 году православную пасху будут праздновать в 18.06, это лето. А католическую в 16.04 и по старому стилю это будет 3 февраля. Вот какой вот не точный юлианский календарь, сейчас разница 13 суток после 2100 будет уже 14 суток.
     

    Attached Files:

    Application likes this.
  2. alex_dz

    alex_dz Active Member

    Blog Posts:
    0
    Joined:
    Jul 26, 2006
    Messages:
    562
    почему в вашем коде много где используется тип sdword? (signed dword)
    даже для argc
    main proc C argc:sdword
    очень интересно
     
  3. Intro

    Intro Active Member

    Blog Posts:
    0
    Joined:
    Aug 29, 2009
    Messages:
    652
    alex_dz, там мало sdword, в некоторых местах забыл указать. Это для совместимости с С/С++, если указано sdword значит это int или long.
     
  4. alex_dz

    alex_dz Active Member

    Blog Posts:
    0
    Joined:
    Jul 26, 2006
    Messages:
    562
    здесь поподробней пож-та
     
  5. Intro

    Intro Active Member

    Blog Posts:
    0
    Joined:
    Aug 29, 2009
    Messages:
    652
    alex_dz, а зачем в С/С++ контролируют похожие типы, типа int и unsigned int? Для того чтобы не допустить заведомо бессмысленных операций, собственно для этого С и создавался. Высокоуровневый ассемблер тоже контролирует типы, но слабо, программист сам должен за этим следить, если у нас sdword, значит операции умножения и деления надо использовать imul и idiv, а если dword то mul и div, и так же условные переходы.
    Ещё UASM можно задавать тип указателя в параметрах функции, если у нас date:ptr SDate, то присвоив date регистру надо ассоциировать с этим классом, и использовать свойства класса/структуры.

    Я вот скачал исходники FASM, значит смотрю код, и пришёл в тихий УЖАС, хоспаде как это можно поддерживать, я вообще не понял что этот код делает, вообще. Ну как работает отдельная команда мне понятно, но что делает этот код в целом, непонятно от слова вообще. Если с Томашом случиться автобус, то очень мало кто сможет поддерживать проект, да думаю скорей всего никто. Он весь проект держит в голове, а просто выдаёт с компилированный МОЗГОМ асм код, причём там нет даже комментариев, ну почти нет, да ещё ЯП которым он пользуется - неизвестный, этот ЯП весь в его голове. Конечно, для многих ассемблер это бейсик, не просто бейсик, а старый бейсик, очень старый бейсик, в котором нет даже функций и есть номера строк, ну ладно, номеров строк нет, но переходы только по меткам, я на таком много лет назад кодил, бейсик Микрон, Партнёр 01.01. Но уже очень давно доказано что это очеееень плохой ЯП. А то что делает Томаш, хорошо для всяких вирусов, ну вредоносного кода для взлома всяких пентагонов, но только не для такого проекта как ассемблер.
     
    alex_dz likes this.
  6. TrashGen

    TrashGen ТрещГен

    Blog Posts:
    0
    Joined:
    Mar 15, 2011
    Messages:
    1,202
    Location:
    подполье
    Всё понятно, кроме того, кто будет праздновать пасху в десятитыщщном году и будет ли там пасхальный кролик?
     
  7. Intro

    Intro Active Member

    Blog Posts:
    0
    Joined:
    Aug 29, 2009
    Messages:
    652
    TrashGen, вряд ли. Там разница между григорианским и юлианским календарём будет 73 суток, а сам григорианский где-то одни сутки ошибки будет. В прочим сохранится ли наша цивилизация к тому моменту?, но этот вопрос нашу программу совершено не интересует.