Я бы настоятельно рекомендовал проработать это на языке более высокого уровня, прежде чем пробовать это на ассемблере. Математика даты слишком сложна и нерегулярна, чтобы разрабатывать ваш алгоритм непосредственно в сборке.
У вас уже есть количество дней, прошедших с начала эпохи, путем деления на 86400. Поскольку число дней в году меняется, вам необходимо выяснить, в каком году вы находитесь (и сколько дней в году) , Концептуально самый простой способ сделать это состоит в том, чтобы брать это из года в год - вычитать 366, если високосный год, 365 в противном случае, пока у вас не будет дней меньше года. Затем вы можете делать один и тот же месяц за месяцем (отнимите 31, или 30, или 29, или 28!). Конечно, есть потенциальные оптимизации, но они могут прийти позже.
Что касается вашего текущего кода ... Я думаю, что вы случайно используете число секунд после полуночи текущего дня вместо количества дней, когда пытаетесь вычислить день недели. (Другими словами, вы должны работать с eax после того первого div, а не edx.) Также имейте в виду, что остаток будет в диапазоне от 0 до 6, поэтому, если вы хотите диапазон [1..7], Вы должны добавить 1 впоследствии.