{"id":7723,"date":"2009-04-09T10:35:17","date_gmt":"2009-04-09T07:35:17","guid":{"rendered":"http:\/\/studentpmr.ru\/?p=7723"},"modified":"2009-04-09T10:35:17","modified_gmt":"2009-04-09T07:35:17","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%bf%d1%80%d0%be%d0%b4%d0%be%d0%bb%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5","status":"publish","type":"post","link":"https:\/\/studentpmr.ru\/?p=7723","title":{"rendered":"\u041b\u0438\u0441\u0442\u0438\u043d\u0433 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435"},"content":{"rendered":"<p>;_&#8212;&#8212;== \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0447\u0430\u0441\u0430\u043c ==&#8212;&#8212;<\/p>\n<p>; \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 AL: al = 00h &#8212; \u0441\u0435\u043a\u0443\u043d\u0434\u044b<\/p>\n<p>; al = 02h &#8212; \u043c\u0438\u043d\u0443\u0442\u044b<\/p>\n<p>; al = 04h &#8212; \u0447\u0430\u0441\u044b<\/p>\n<p>; \u0427\u0435\u0441\u0442\u043d\u043e \u0441\u043e\u0434\u0440\u0430\u043d\u0430 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442\u0430.\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0430\u0432\u0442\u043e\u0440\u0443<\/p>\n<p> <!--more-->  <\/p>\n<p>read_clock PROC NEAR<\/p>\n<p>out 70h,AL<\/p>\n<p>jmp short $+2<\/p>\n<p>jmp short $+2<\/p>\n<p>jmp short $+2<\/p>\n<p>in AL,71h<\/p>\n<p>ret<\/p>\n<p>read_clock ENDP<\/p>\n<p>;_____________________________________________________________________________<\/p>\n<p>;_&#8212;&#8212;== CLICK \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0438\u043a\u0430\u043d\u044c\u044f.\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e. ==&#8212;&#8212;<\/p>\n<p>click proc near<\/p>\n<p>mov cx, 0002<\/p>\n<p>repc1: ;cli<\/p>\n<p>mov word ptr cs:[clck], 08000h<\/p>\n<p>call simp<\/p>\n<p>mov word ptr cs:[clck], 02000h<\/p>\n<p>call simp<\/p>\n<p>;sti<\/p>\n<p>loop repc1<\/p>\n<p>ret<\/p>\n<p>simp: mov dx, 00C8H<\/p>\n<p>in al, 61H<\/p>\n<p>and al, 0FEH<\/p>\n<p>repc2: or al, 02<\/p>\n<p>out 61H, al<\/p>\n<p>mov cx, cs:[clck]<\/p>\n<p>loop $<\/p>\n<p>and al, 0FDH<\/p>\n<p>out 61H, al<\/p>\n<p>mov cx, cs:[clck]<\/p>\n<p>loop $<\/p>\n<p>dec dx<\/p>\n<p>jne repc2<\/p>\n<p>pop cx<\/p>\n<p>ret<\/p>\n<p>click endp<\/p>\n<p>;_____________________________________________________________________________<\/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>com_time PROC NEAR ;\u0442\u0430\u043a\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0431\u044b\u043b\u0430 \u0432 SPY. \u041d\u043e \u0443\u0436 \u043e\u0447\u0435\u043d\u044c \u0438\u0434\u0435\u044f \u043f\u043e\u043d\u0440\u0430-<\/p>\n<p>;\u0432\u0438\u043b\u0430\u0441\u044c<\/p>\n<p>new_nomber:<\/p>\n<p>mov di,82h<\/p>\n<p>mov dl,[di]<\/p>\n<p>cmp dl,20h ;\u044d\u0442\u043e \u043f\u0440\u043e\u0431\u0435\u043b ?<\/p>\n<p>je new_nomber<\/p>\n<p>cmp dl,&#8217;0&#8242;<\/p>\n<p>jb bad_exit<\/p>\n<p>cmp dl,&#8217;9&#8242;<\/p>\n<p>ja bad_exit<\/p>\n<p>mov ax,[di] ;\u043f\u0435\u0440\u0432\u044b\u0435 2 \u0441\u0438\u043c\u0432\u043e\u043b\u0430<\/p>\n<p>cmp ah,&#8217;:&#8217; ; \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c ?<\/p>\n<p>jne short sec_nomber ; \u041d\u0435\u0442, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u043f\u043e\u0438\u0441\u043a<\/p>\n<p>dec di ;\u0434\u0430, =&gt; \u0441\u0438\u043c\u0432\u043e\u043b \u043e\u0434\u0438\u043d, \u0432\u0437\u044f\u0442\u044c \u0435\u0433\u043e<\/p>\n<p>shl ax,8 ;<\/p>\n<p>sec_nomber:<\/p>\n<p>mov bx,[di+3] ;\u0432\u0437\u044f\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 2 \u0441\u0438\u043c\u0432\u043e\u043b\u0430<\/p>\n<p>cmp bh,0Dh ;\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 &#8212; Enter ?<\/p>\n<p>je short loc_105 ; \u0414\u0430<\/p>\n<p>cmp bh,0 ; \u042d\u0442\u043e 0 ?<\/p>\n<p>je short loc_105 ; \u0414\u0430<\/p>\n<p>cmp bh,20h ; &#8216; &#8216; ?<\/p>\n<p>je short loc_105 ; \u0414\u0430<\/p>\n<p>jmp short loc_106 ;\u043d\u0435\u0442, \u044d\u0442\u043e \u0441\u0438\u043c\u0432\u043e\u043b 0&gt;<\/p>\n<p>loc_105:<\/p>\n<p>shl bx,8 ;\u0441\u0438\u043c\u0432\u043e\u043b \u043e\u0434\u0438\u043d,\u0441\u043e\u0442\u0440\u0435\u043c \u043b\u0438\u0448\u043d\u0435\u0435 \u0438\u0437 BX<\/p>\n<p>loc_106:<\/p>\n<p>xchg al,ah ;\u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0447\u0438\u0441\u043b\u0430, \u043e\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c \u0432 AL<\/p>\n<p>;\u0430 \u0432\u0442\u043e\u0440\u044b\u043c \u0432 AH, \u043c\u0435\u043d\u044f\u0435\u043c\u0441\u044f \u0438\u043c\u0438<\/p>\n<p>xchg bl,bh ;\u0442\u043e \u0436\u0435 \u0438 \u0441 BX, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u043e\u0435 \u0447\u0438\u0441\u043b\u043e<\/p>\n<p>sub al,30h ; &#8216;0&#8217; \u0423\u0431\u0435<\/p>\n<p>sub ah,30h ; &#8216;0&#8217; \u0440\u0435\u043c<\/p>\n<p>sub bl,30h ; &#8216;0&#8217; \u043b\u0438\u0448<\/p>\n<p>sub bh,30h ; &#8216;0&#8217; \u043d\u0435\u0435<\/p>\n<p>shl ah,4 ; \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0432 AX \u0438 BX \u0432\u043c\u0435\u0441\u0442\u043e<\/p>\n<p>shl bh,4 ;Hex \u043a\u043e\u0434\u043e\u0432 \u0431\u044b\u043b\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0447\u0438\u0441\u043b\u0430, \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043a\u043e-<\/p>\n<p>or al,ah ;\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435. \u042d\u0442\u0438 \u0447\u0438\u0441\u043b\u0430 \u043e\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u0432 AL \u0438 BL<\/p>\n<p>or bl,bh ;<\/p>\n<p>mov ah,al ;\u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432 AX \u0432\u0440\u0435\u043c\u044f<\/p>\n<p>mov al,bl<\/p>\n<p>mov ds:tim,ax<\/p>\n<p>end_com_time:<\/p>\n<p>jmp com_continue<\/p>\n<p>bad_exit:<\/p>\n<p>stc ;\u043f\u043b\u043e\u0445\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430, \u0432\u044b\u0439\u0434\u0435\u043c \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0444\u043b\u0430\u0433\u0430<\/p>\n<p>jmp norm_exit<\/p>\n<p>com_continue:<\/p>\n<p>cld ;\u0431\u0443\u0434\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0432\u043f\u0435\u0440\u0435\u0434<\/p>\n<p>mov SI,DI ;\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a<\/p>\n<p>com_cycle:<\/p>\n<p>lodsb<\/p>\n<p>cmp AL,0DH ;\u044d\u0442\u043e ENTER ?<\/p>\n<p>je norm_exit<\/p>\n<p>mov di,ds:count<\/p>\n<p>mov ds:message[di],al<\/p>\n<p>inc ds:count ;\u0441\u0447\u0435\u0442\u0447\u0438\u043a<\/p>\n<p>inc ds:mes_long<\/p>\n<p>jmp com_cycle<\/p>\n<p>norm_exit:<\/p>\n<p>ret<\/p>\n<p>com_time ENDP<\/p>\n<p>;_____________________________________________________________________________<\/p>\n<p>;_&#8212;-== \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b \u0438\u0437 AL \u0441 \u0430\u0442\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c \u0438\u0437 attrib. ==&#8212;-<\/p>\n<p>;\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043a\u0430 \u0438 \u044f \u043e\u0447\u0435\u043d\u044c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d \u0430\u0432\u0442\u043e\u0440\u0443 \u043f\u0440\u043e\u0433\u0438,\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0435\u0435 \u043d\u0430\u0448\u0435\u043b<\/p>\n<p>show_symbol PROC NEAR<\/p>\n<p>mov ES:[DI],AL<\/p>\n<p>inc DI<\/p>\n<p>mov AL,CS:attrib<\/p>\n<p>mov ES:[DI],AL<\/p>\n<p>inc DI<\/p>\n<p>ret<\/p>\n<p>show_symbol ENDP<\/p>\n<p>;_____________________________________________________________________________<\/p>\n<p>;_&#8212;-== \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441 \u0440\u0430\u043c\u043e\u0447\u043a\u043e\u0439 ==&#8212;-<\/p>\n<p>mes_out PROC NEAR<\/p>\n<p>;\u0412\u044b\u0432\u0435\u0441\u0442\u0438 \u0440\u0430\u043c\u043e\u0447\u043a\u0443<\/p>\n<p>mov AX,0b800h ;\u0430\u0434\u0440\u0435\u0441 \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 \u0432 ES<\/p>\n<p>mov ES,AX<\/p>\n<p>mov AL,CS:mes_long<\/p>\n<p>cbw<\/p>\n<p>mov CL,2<\/p>\n<p>div CL<\/p>\n<p>xor AH,AH<\/p>\n<p>mul CL ;\u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u043d\u0435\u0447\u0435\u0442\u043d\u043e\u0433\u043e mes_long<\/p>\n<p>;\u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u043e \u0443\u0433\u043b\u043e\u0432\u0430\u0442\u043e\u0441\u0442\u0435\u0439<\/p>\n<p>mov CS:ev_len,AL<\/p>\n<p>sub CS:cur_pos,AX ;\u043d\u0430\u0447\u0430\u043b\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u0440\u0430\u043c\u043a\u0438 &#8216;+&#8217; : 1680 &#8212; ev_len<\/p>\n<p>; mov AX, ;\u0432 DI<\/p>\n<p>mov DI,CS:cur_pos <\/p>\n<p>; mov SI,CS:savescr<\/p>\n<p>mov AL,&#8217;+&#8217;<\/p>\n<p>call show_symbol<\/p>\n<p>mov AL,CS:mes_long ;\u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u0438\u043d\u0438\u0438<\/p>\n<p>cbw<\/p>\n<p>mov CX,AX ;\u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432<\/p>\n<p>hor_ln:<\/p>\n<p>mov AL,&#8217;-&#8216;<\/p>\n<p>call show_symbol ;&#8212;&#8212;-<\/p>\n<p>add DI,318 ;|<\/p>\n<p>mov AL,&#8217;-&#8216; ;|<\/p>\n<p>call show_symbol ;|<\/p>\n<p>sub DI,320 ;|<\/p>\n<p>loop hor_ln ;&#8212;&#8212;-<\/p>\n<p>mov AL,&#8217;+&#8217;<\/p>\n<p>call show_symbol<\/p>\n<p>mov AX,CS:cur_pos ;\u043b\u0435\u0432\u0430\u044f |<\/p>\n<p>add AX,160<\/p>\n<p>mov DI,AX<\/p>\n<p>mov AL,&#8217;\u00a6&#8217;<\/p>\n<p>call show_symbol<\/p>\n<p>mov AX,CS:mes_off<\/p>\n<p>mov SI,AX ;\u043d\u0430\u0447\u0430\u043b\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 SI<\/p>\n<p>mov cx,cs:count<\/p>\n<p>next_let: ;\u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d<\/p>\n<p>mov al,CS:[SI]<\/p>\n<p>cmp AL,&#8217;$&#8217;<\/p>\n<p>je all_done<\/p>\n<p>call show_symbol<\/p>\n<p>inc SI<\/p>\n<p>loop next_let<\/p>\n<p>all_done:<\/p>\n<p>mov AL,&#8217;\u00a6&#8217; ;\u043f\u0440\u0430\u0432\u0430\u044f<\/p>\n<p>call show_symbol<\/p>\n<p>mov AX,CS:cur_pos<\/p>\n<p>mov DI,AX<\/p>\n<p>add DI,320<\/p>\n<p>mov AL,&#8217;+&#8217;<\/p>\n<p>call show_symbol<\/p>\n<p>mov AL,CS:mes_long<\/p>\n<p>cbw<\/p>\n<p>add DI,AX<\/p>\n<p>add DI,AX<\/p>\n<p>mov AL,&#8217;+&#8217;<\/p>\n<p>call show_symbol<\/p>\n<p>;_______ \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<p>mov CS:cur_pos,1680<\/p>\n<p>ret<\/p>\n<p>mes_out ENDP<\/p>\n<p>;_________<\/p>\n","protected":false},"excerpt":{"rendered":"<p>;_&#8212;&#8212;== \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0447\u0430\u0441\u0430\u043c ==&#8212;&#8212; ; \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 AL: al = 00h &#8212; \u0441\u0435\u043a\u0443\u043d\u0434\u044b ; al = 02h &#8212; \u043c\u0438\u043d\u0443\u0442\u044b ; al = 04h &#8212; \u0447\u0430\u0441\u044b ; \u0427\u0435\u0441\u0442\u043d\u043e \u0441\u043e\u0434\u0440\u0430\u043d\u0430 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442\u0430.\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0430\u0432\u0442\u043e\u0440\u0443<\/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\/7723"}],"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=7723"}],"version-history":[{"count":0,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=\/wp\/v2\/posts\/7723\/revisions"}],"wp:attachment":[{"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7723"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studentpmr.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}