{"id":7722,"date":"2009-04-09T10:34:22","date_gmt":"2009-04-09T07:34:22","guid":{"rendered":"http:\/\/studentpmr.ru\/?p=7722"},"modified":"2009-04-09T10:34:22","modified_gmt":"2009-04-09T07:34:22","slug":"%d0%bb%d0%b8%d1%81%d1%82%d0%b8%d0%bd%d0%b3-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d1%8b-%d0%be%d0%ba%d0%be%d0%bd%d1%87%d0%b0%d0%bd%d0%b8%d0%b5","status":"publish","type":"post","link":"https:\/\/studentpmr.ru\/?p=7722","title":{"rendered":"\u041b\u0438\u0441\u0442\u0438\u043d\u0433 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435"},"content":{"rendered":"<p>;_&#8212;-== \u0414\u0410\u041d\u041d\u042b\u0415 ==&#8212;-<\/p>\n<p>old_1Ch dw 2 dup(?) ; \u0432\u0435\u043a\u0442\u043e\u0440 1Ch<\/p>\n<p>cur_pos dw 1680 ;\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441\u0441 \u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438<\/p>\n<p>ev_len db 0 ;\u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0447\u0435\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0434\u043b\u044f mes_long<\/p>\n<p>message db 50 DUP (0) ;\u0441\u044e\u0434\u0430 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435<\/p>\n<p> <!--more-->  <\/p>\n<p>db &#8216;$&#8217;<\/p>\n<p>count dw 0<\/p>\n<p>clck dw 0<\/p>\n<p>mes_off dw offset message ;\u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438<\/p>\n<p>mes_long db 0 ;\u0434\u043b\u0438\u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/p>\n<p>attrib db 79<\/p>\n<p>tim dw ?<\/p>\n<p>set_msg db &#8216;\u041d\u043e\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e&#8217;,13,10,&#8217;$&#8217;<\/p>\n<p>titl db &#8216;\u0420\u0435\u0437\u0438\u0434\u0435\u043d\u0442\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 &#8212; \u0431\u0443\u0434\u0438\u043b\u044c\u043d\u0438\u043a&#8217;,13,10,&#8217;$&#8217;<\/p>\n<p>inv_msg db &#8216;\u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430.&#8217;,13,10,&#8217;\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435: hs!alarm [r] &lt;hh:mm&gt; [message]&#8217;,13,10<\/p>\n<p>db &#8216; \u0433\u0434\u0435 hh &#8212; \u0447\u0430\u0441\u044b, mm &#8212; \u043c\u0438\u043d\u0443\u0442\u044b&#8217;,13,10<\/p>\n<p>db &#8216; message &#8212; \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435&#8217;,13,10<\/p>\n<p>db &#8216; r &#8212; \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0431\u0443\u0434\u0438\u043b\u044c\u043d\u0438\u043a \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438&#8217;,13,10<\/p>\n<p>db &#8216;\u041f\u0440\u0438\u043c\u0435\u0440: hs!alarm 12:00 \u0412\u0440\u0435\u043c\u044f \u043f\u0438\u0442\u044c \u0445\u0435\u0440\u0448\u0438&#8217;,13,10,&#8217;$&#8217;<\/p>\n<p>remove_msg db &#8216;\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u044b\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438&#8230;&#8217;,13,10,&#8217;$&#8217;<\/p>\n<p>nim_msg db &#8216;\u0411\u0443\u0434\u0438\u043b\u044c\u043d\u0438\u043a \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d&#8217;,13,10,&#8217;$&#8217;<\/p>\n<p>savescr dw 240 dup(0)<\/p>\n<p>;_____________________________________________________________________________<\/p>\n<p>;_&#8212;-== \u0418\u041d\u0418\u0426\u0418\u0410\u041b\u0418\u0417\u0410\u0426\u0418\u042f ==&#8212;-<\/p>\n<p>init:<\/p>\n<p>@DisStr titl ;\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a<\/p>\n<p>;_&#8212;&#8212;== \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430 \u0432\u0440\u0435\u043c\u044f ==&#8212;&#8212;<\/p>\n<p>mov SI,80h ;PSP &#8212; \u043a\u043e\u043c\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430,\u0440\u0430\u0437\u043c\u0435\u0440<\/p>\n<p>mov CH,0<\/p>\n<p>mov CL,[SI] ;\u0434\u0430\u0442\u044c \u0434\u043b\u0438\u043d\u0443<\/p>\n<p>; cmp CL,1<\/p>\n<p>; jle inv_time<\/p>\n<p>jcxz inv_time<\/p>\n<p>call com_time ;\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 \u043d\u0430\u0434\u043e<\/p>\n<p>jnc no_probl<\/p>\n<p>cmp dl,&#8217;r&#8217; ;\u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c \u043d\u0430\u0441 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 ?<\/p>\n<p>je remove_from_mem<\/p>\n<p>jmp inv_time<\/p>\n<p>no_probl:<\/p>\n<p>;_&#8212;&#8212;== \u041f\u043e\u0439\u043c\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 ==&#8212;&#8212;<\/p>\n<p>mov AX,351Ch ;\u043f\u043e\u0439\u043c\u0430\u0435\u043c 1Ch \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435;<\/p>\n<p>int 21h<\/p>\n<p>cmp bx,offset int_1Ch ;\u043c\u044b \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 ?<\/p>\n<p>jne set_resid<\/p>\n<p>;_&#8212;-== \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043d\u043e\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f ==&#8212;-<\/p>\n<p>mov ax,ds:tim ;\u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043d\u043e\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f<\/p>\n<p>mov es:tim,ax ;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0435\u0433\u043e<\/p>\n<p>mov ax,ds:count ;\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/p>\n<p>mov es:count,ax<\/p>\n<p>mov al,ds:mes_long<\/p>\n<p>mov es:mes_long,al<\/p>\n<p>cld ;\u0434\u0432\u0438\u0433\u0430\u0435\u043c\u0441\u044f \u0432\u043f\u0435\u0440\u0435\u0434<\/p>\n<p>lea si,ds:message ;\u043e\u0442\u043a\u0443\u0434\u0430<\/p>\n<p>lea di,es:message ;\u043a\u0443\u0434\u0430<\/p>\n<p>mov cx,ds:count ;50 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432<\/p>\n<p>rep movsb<\/p>\n<p>@DisStr set_msg<\/p>\n<p>jmp no_load ;\u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0439\u0434\u0435\u043c<\/p>\n<p>;\u0437\u0430\u043f\u043e\u043c\u043d\u0438\u043c \u0441\u0442\u0430\u0440\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440<\/p>\n<p>set_resid:<\/p>\n<p>mov word ptr cs:old_1Ch,bx ;\u0437\u0430\u043f\u043e\u043c\u043d\u0438\u043c \u0441\u0442\u0430\u0440\u044b\u0439 \u0430\u0434\u0440\u0435\u0441<\/p>\n<p>mov word ptr cs:old_1Ch+2,es<\/p>\n<p>;_&#8212;&#8212;== \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u043c environment ==&#8212;&#8212;<\/p>\n<p>push es<\/p>\n<p>mov AX,DS:[2ch]<\/p>\n<p>mov ES,AX<\/p>\n<p>mov AH,49h<\/p>\n<p>int 21h<\/p>\n<p>pop ES<\/p>\n<p>;_&#8212;&#8212;== \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 1Ch \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f ==&#8212;&#8212;<\/p>\n<p>mov AX,251Ch ;\u043f\u043e\u0432\u0435\u0441\u0438\u043c \u0441\u0432\u043e\u044e \u0437\u0430\u043f\u043b\u0430\u0442\u043a\u0443<\/p>\n<p>lea DX,int_1Ch<\/p>\n<p>int 21h<\/p>\n<p>;_&#8212;&#8212;== \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442 ==&#8212;&#8212;<\/p>\n<p>mov AX,3100H<\/p>\n<p>mov DX,(init-start+10FH)\/16<\/p>\n<p>int 21H<\/p>\n<p>; mov DX, offset init<\/p>\n<p>; int 21h<\/p>\n<p>;_&#8212;&#8212;== Invalid Time ==&#8212;&#8212;<\/p>\n<p>inv_time:<\/p>\n<p>@DisStr inv_msg<\/p>\n<p>jmp no_load<\/p>\n<p>; \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c<\/p>\n<p>notinmem:<\/p>\n<p>@DisStr nim_msg<\/p>\n<p>jmp no_load<\/p>\n<p>;_&#8212;&#8212;== Remove from memory ==&#8212;&#8212;<\/p>\n<p>remove_from_mem:<\/p>\n<p>mov AX,351Ch ; !! \u043f\u043e\u0439\u043c\u0430\u0435\u043c 1Ch \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435;<\/p>\n<p>int 21h ; !!<\/p>\n<p>cmp bx,offset int_1Ch ; !! \u043c\u044b \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 ?<\/p>\n<p>jne notinmem ; !!<\/p>\n<p>@DisStr remove_msg<\/p>\n<p>mov ax,351Ch<\/p>\n<p>int 21h<\/p>\n<p>mov ax,word ptr es:old_1Ch ; \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430<\/p>\n<p>mov dx,word ptr es:old_1Ch+2 ; 1Ch<\/p>\n<p>push es ; \u0432 ES \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043e CS \u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442\u043d\u043e\u0439 \u043f\u0440-\u043c\u044b<\/p>\n<p>cli<\/p>\n<p>xor bx,bx<\/p>\n<p>mov es,bx<\/p>\n<p>mov bx,1Ch*4<\/p>\n<p>mov es:[bx],ax ; \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u043e\u0433\u043e<\/p>\n<p>mov es:[bx+2],dx ; \u0432\u0435\u043a\u0442\u043e\u0440\u0430 1Ch<\/p>\n<p>sti<\/p>\n<p>mov ah,49h<\/p>\n<p>pop es<\/p>\n<p>int 21h<\/p>\n<p>;_____________________________________________________________________________<\/p>\n<p>;_&#8212;&#8212;== Exit ==&#8212;-<\/p>\n<p>no_load:<\/p>\n<p>mov ah,4Ch<\/p>\n<p>int 21h<\/p>\n<p>code ENDS<\/p>\n<p>;_____________________________________________________________________________<\/p>\n<p>END start<\/p>\n","protected":false},"excerpt":{"rendered":"<p>;_&#8212;-== \u0414\u0410\u041d\u041d\u042b\u0415 ==&#8212;- old_1Ch dw 2 dup(?) ; \u0432\u0435\u043a\u0442\u043e\u0440 1Ch cur_pos dw 1680 ;\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441\u0441 \u0432 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 ev_len db 0 ;\u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0447\u0435\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0434\u043b\u044f mes_long message db 50 DUP (0) ;\u0441\u044e\u0434\u0430 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[67],"tags":[],"_links":{"self":[{"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/posts\/7722"}],"collection":[{"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7722"}],"version-history":[{"count":0,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/posts\/7722\/revisions"}],"wp:attachment":[{"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}