æÏpÍÕÌÁ

ðÒÉ×ÅÔ, All

HÁÐÉÓÁÌ ÐpÏÇpÁÍÍÕ, ÐpÉ×ÏÖÕ ÔÅËÓÔ (÷ÙÞÉÓÌÑÅÔ ÄÅÎØ ÎÅÄÅÌÉ ÐÏ ÄÁÔÅ ÏÔ 1.01.2000 ÄÏ 31.12.2099, DATE - 1..31, MONTH - 1..12, YEAR - 0..99 - × BCD-ÆÏpÍÁÔÅ):

DAYFORDATE push YEAR push MONTH push DATE mov a,YEAR call BCD_CONV mov YEAR,a mov a,MONTH call BCD_CONV mov MONTH,a mov a,DATE call BCD_CONV mov DATE,a dec MONTH mov a,YEAR ;365=16Dh mov b,#6dh mul ab mov BUFDAY+1,a ;low mov a,b add a,YEAR mov BUFDAY,a ;high mov a,YEAR mov b,#4 div ab add a,BUFDAY+1 mov BUFDAY+1,a ;Y*365+int(Y/4) call add_c mov a,MONTH cjne a,#2,DAYFORDATE_1 DAYFORDATE_1 jnc DAYFORDATE_2 mov a,b jnz DAYFORDATE_2 mov a,BUFDAY+1 clr c subb a,#1 mov BUFDAY+1,a jnc DAYFORDATE_2 dec BUFDAY DAYFORDATE_2 mov a,MONTH mov b,#29 mul ab add a,BUFDAY+1 mov BUFDAY+1,a call add_c mov a,b add a,BUFDAY mov BUFDAY,a ;Y*365+Y/4+M*29 mov a,MONTH mov DPTR,#POPRMONTH movc a,@a+dptr add a,BUFDAY+1 mov BUFDAY+1,a call add_c mov a,DATE add a,BUFDAY+1 mov BUFDAY+1,a call add_c call DIVIDE mov a,R5 ;× R5 - ÏÓÔÁÔÏË ÏÔ ÄÅÌÅÎÉÑ BUFDAY,BUFDAY+1 ÎÁ 7 jnz DAYFORDATE_3 mov a,#7 DAYFORDATE_3 dec a jnz DAYFORDATE_4 mov a,#7 DAYFORDATE_4 mov DAY,a pop DATE pop MONTH pop YEAR ret add_c mov a,BUFDAY addc a,#0 mov BUFDAY,a ;high ret POPRMONTH db 00,02,01,03,04,06,07,09,11,12,14,15

PS. ñ - å×ÇÅÎÉÊ ôpÅÓËÕÎÏ×.

Reply to
Vladimir Palchik
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.