Rev 1639 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1639 | Rev 1652 | ||
---|---|---|---|
Line 4... | Line 4... | ||
4 | ;Checkbox |
4 | ;Checkbox |
Line 5... | Line 5... | ||
5 | 5 | ||
6 | macro use_checkbox_draw |
6 | macro use_checkbox_draw |
7 | { |
7 | { |
8 | check_box_draw: |
8 | check_box_draw: |
9 | pusha ;ñîõðàíèì âñå ðåãèñòðû |
9 | pushad ;ñîõðàíèì âñå ðåãèñòðû |
10 | ; mov edi,dword [esp+36] |
10 | mov ebp,dword [esp+36] ;çàãðóæàåì óêàçàòåëü íà ñòðóêòóðó, óêàçàòåëü ìû ïåðåäàåì â ñòåêå |
11 | ; mov ebx,ch_left_s |
11 | ; mov ebx,ch_left_s |
12 | ; mov ecx,ch_top_s |
12 | ; mov ecx,ch_top_s |
13 | ; mov edx,dword ch_border_color |
13 | ; mov edx,dword ch_border_color |
14 | ; mov eax,13 |
14 | ; mov eax,13 |
15 | ; mcall ;ðèñóåì ðàìêó |
15 | ; mcall ;ðèñóåì ðàìêó |
Line 16... | Line 16... | ||
16 | mcall 13,ch_left_s,ch_top_s,ch_border_color |
16 | mcall 13,ch_left_s,ch_top_s,ch_border_color ;ðèñóåì ðàìêó ÷åê áîêñà, ôàêòè÷åñêè ðèñóåì ïðÿìîóãîëüíèê è çàêðàøèâàåì ôîí âíóòðè öâåòîì ðàìêè áîêñà |
17 | 17 | ||
18 | mov edx,dword ch_color |
18 | mov edx,dword ch_color ;çàãðóæàåì öâåò ôîíà |
19 | add ebx,1 shl 16 - 2 |
19 | add ebx,1 shl 16 - 2 |
Line 20... | Line 20... | ||
20 | add ecx,1 shl 16 - 2 |
20 | add ecx,1 shl 16 - 2 |
21 | mcall ;çàêðàøèâàåì âíóòðåííîñòè ÷åêáîêñà |
21 | mcall ;çàêðàøèâàåì âíóòðåííîñòè ÷åêáîêñà ôîíîì |
22 | 22 | ||
23 | test dword ch_flags,2 ;äîñòàòü çíà÷åíèå áèòà èç ïåðåìåííîé è ïîìåñòèòü â ôëàã CF |
23 | test dword ch_flags,2 ;äîñòàòü çíà÷åíèå áèòà èç ïåðåìåííîé è ïîìåñòèòü â ôëàã CF |
24 | jz @f ;â åñëè CF=1, òî âûïîëíèì ñëåäóþùóþ ïðîöåäóðó èíà÷å ïåðåéòè íà íèæíþþ @@ |
24 | jz @f ;â åñëè CF=1, òî âûïîëíèì ñëåäóþùóþ ïðîöåäóðó èíà÷å ïåðåéòè íà íèæíþþ @@ |
25 | call check_box_draw_ch ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ |
25 | call check_box_draw_ch ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ |
26 | @@: |
26 | @@: |
27 | ;---------------------------- |
27 | ;---------------------------- |
- | 28 | ;ðàñ÷åò êóäà áóäåò ïðîèçâåäåí âûâîä òåêñòà |
|
- | 29 | ;---------------------------- |
|
- | 30 | ; mov ebx,dword ch_left_s ;çàãðóçèòü çíà÷åíèå (õ shl 16 + äëèííà) äëÿ ÷åê áîêñà |
|
- | 31 | ; add ebx,dword ch_text_margin ;äîáàâèì ðàçìåð ñòîðîíû è ðàññòîÿíèå íà êîòîðîì íà÷íåòñÿ âûâîä òåêñòà |
|
- | 32 | ; shl ebx,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
|
- | 33 | ; add ebx,dword ch_left_s ;cêîððåêòèðóåì ïîçèöèþ Õ. Ò.å. ñåé÷àñ â âåðõíåé ÷àñòè ebx ó íàñ òî÷êà íà÷àëà âûâîäà òåêñòà ïî Õ |
|
- | 34 | ||
- | 35 | ; mov eax,word ch_top_s ;çàãðóçèì çíà÷åíèå ïî (y shl 16 + äëèííà) äëÿ ÷åê áîêñà |
|
28 | ;ðàñ÷åò êóäà áóäåò ïðîèçâåäåí âûâîä òåêñòà |
36 | ; shl eax,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
- | 37 | ; add eax,dword ch_top_s ;cêîððåêòèðóåì ïîçèöèþ Õ. Ò.å. ñåé÷àñ â âåðõíåé ÷àñòè ebx ó íàñ òî÷êà íà÷àëà âûâîäà òåêñòà ïî Y |
|
- | 38 | ||
29 | ;---------------------------- |
39 | ; Îïòèìèçàöèÿ äëÿ ÖÏ |
- | 40 | mov ebx,dword ch_left_s ;çàãðóçèòü çíà÷åíèå (õ shl 16 + äëèííà) äëÿ ÷åê áîêñà |
|
30 | mov ebx,ch_left ;çàãðóçèòü çíà÷åíèå õ äëÿ ÷åê áîêñà |
41 | mov eax,dword ch_top_s ;çàãðóçèì çíà÷åíèå ïî (y shl 16 + äëèííà) äëÿ ÷åê áîêñà |
31 | add ebx,dword ch_size |
42 | add ebx,dword ch_text_margin ;äîáàâèì ðàçìåð ñòîðîíû è ðàññòîÿíèå íà êîòîðîì íà÷íåòñÿ âûâîä òåêñòà |
32 | add ebx,dword ch_text_margin ;äîáàâèòü ðàçìåð ñòîðîíû è ðàññòîÿíèå íà êîòîðîì íà÷íåòñÿ âûâîä òåêñòà |
43 | shl eax,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
33 | shl ebx,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
44 | shl ebx,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
34 | mov bx,word ch_top ;çàãðóçèì çíà÷åíèå ïî y |
45 | add eax,dword ch_top_s ;cêîððåêòèðóåì ïîçèöèþ Õ. Ò.å. ñåé÷àñ â âåðõíåé ÷àñòè ebx ó íàñ òî÷êà íà÷àëà âûâîäà òåêñòà ïî Y |
Line -... | Line 46... | ||
- | 46 | add ebx,dword ch_left_s ;cêîððåêòèðóåì ïîçèöèþ Õ. Ò.å. ñåé÷àñ â âåðõíåé ÷àñòè ebx ó íàñ òî÷êà íà÷àëà âûâîäà òåêñòà ïî Õ |
|
35 | add ebx,ch_size |
47 | shr eax,16 ;äëÿ y ïîìåñòèì â ìëàäøóþ ÷àñòü |
36 | mov ecx,dword ch_text_color ;çàãðóçèì öâåò íàäïèñè + flags |
- | |
37 | sub ebx,7 ;äîáàâèì çíà÷åíèå äëèíû ñòîðîíû -9+2 |
48 | mov bx,ax ;âíåñåì ñìåùåíèå äëÿ y |
38 | 49 | ||
39 | mov edx,dword ch_text_ptr ;óêàæåì àäðåñ îò êóäà íóæíî âûâîäèòü ñòðîêó |
50 | mov ecx,dword ch_text_color ;çàãðóçèì öâåò íàäïèñè + flags |
40 | mov esi,dword ch_text_length |
51 | mov edx,dword ch_text_ptr ;óêàæåì àäðåñ îò êóäà íóæíî âûâîäèòü ñòðîêó |
Line 41... | Line 52... | ||
41 | mov eax,4 ;âíåñåì â eax çíà÷åíèå âûâîäà íàäïèñè íà êàíâó |
52 | mov eax,4 ;âíåñåì â eax çíà÷åíèå âûâîäà íàäïèñè íà êàíâó |
42 | mcall ;Âûâîä |
53 | mcall ;Âûâîä |
43 | popa ;âîññòàíîâèòü çíà÷åíèÿ ðåãèñòðîâ èç ñòåêà |
54 | popad ;âîññòàíîâèòü çíà÷åíèÿ ðåãèñòðîâ èç ñòåêà |
44 | ret 4 ;âûéäåì èç ïðîöåäóðû |
55 | ret 4 ;âûéäåì èç ïðîöåäóðû è óäàëèì èç ñòåêà óêàçàòåëü íà ñòðóêòóðó (4 áàéòà) |
45 | 56 | ||
46 | check_box_clear_ch: ;î÷èñòêà ÷åê áîêñà |
57 | check_box_clear_ch: ;î÷èñòêà ÷åê áîêñà |
47 | mov edx,dword ch_color ;öâåò âíóòðè ÷åê áîêñà |
58 | mov edx,dword ch_color ;öâåò âíóòðè ÷åê áîêñà |
48 | jmp @f ;áåçóñëîâíûé ïðûæîê íà íèæíþþ ìåòêó @@ |
59 | jmp @f ;áåçóñëîâíûé ïðûæîê íà íèæíþþ ìåòêó @@ |
49 | check_box_draw_ch: ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ |
60 | check_box_draw_ch: ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ |
50 | mov edx,dword ch_border_color ;çàãðóçèòü öâåò |
61 | mov edx,dword ch_border_color ;çàãðóçèòü öâåò |
51 | @@: |
62 | @@: |
52 | movzx ebx,word ch_left ;çàãðóçèòü êîîðäèíàòó ïî õ |
63 | ; movzx ebx,word ch_left ;çàãðóçèòü êîîðäèíàòó ïî õ |
53 | mov eax,dword ch_size |
64 | ; mov eax,dword ch_size |
54 | mov di,ax |
65 | ; mov di,ax |
55 | shr eax,2 |
66 | ; shr eax,2 |
56 | push ax |
67 | ; push ax |
57 | 68 | ; |
|
58 | push ax |
69 | ; push ax |
59 | add ebx,eax |
70 | ; add ebx,eax |
60 | shl ebx,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
71 | ; shl ebx,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
61 | pop ax |
72 | ; pop ax |
62 | lea eax,[eax*2] |
73 | ; lea eax,[eax*2] |
63 | sub bp,ax ;ñîõðàíèì ðåãèñòð bx â ðåãèñòðå óêàçàòåëÿ áàçû |
74 | ; sub bp,ax ;ñîõðàíèì ðåãèñòð bx â ðåãèñòðå óêàçàòåëÿ áàçû |
64 | mov bx,bp |
75 | ; mov bx,bp |
65 | 76 | ||
66 | movzx ecx,word ch_top ;çàãðóçèòü êîîðäèíàòó ïî ó |
77 | ; movzx ecx,word ch_top ;çàãðóçèòü êîîðäèíàòó ïî ó |
67 | pop ax |
78 | ; pop ax |
- | 79 | ; add cx,ax |
|
- | 80 | ; shl ecx,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
|
- | 81 | ; mov cx,bp ;çàãðóçèì çíà÷åíèÿ ðåãèñòðà óêàçàòåëÿ áàçû â cx |
|
- | 82 | ; mov eax,13 ;â eax - çíà÷åíèÿ ôóíêöèè äëÿ âûâîäà ïîëîñû ò.å. ïî ñóòè ïðÿìîóãîëüíèêà, êîòîðûé îòîáðàæàåò âêëþ÷åííûé êîìïîíåíò ÷åê áîêñ |
|
68 | add cx,ax |
83 | ; mcall ;âûâîä |
- | 84 | ||
- | 85 | mov ebx,dword ch_left_s |
|
69 | shl ecx,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
86 | mov ecx,dword ch_top_s |
Line 70... | Line 87... | ||
70 | mov cx,bp ;çàãðóçèì çíà÷åíèÿ ðåãèñòðà óêàçàòåëÿ áàçû â cx |
87 | add ebx,1 shl 16 - 4 |
71 | mov eax,13 ;â eax - çíà÷åíèÿ ôóíêöèè äëÿ âûâîäà ïîëîñû ò.å. ïî ñóòè ïðÿìîóãîëüíèêà, êîòîðûé îòîáðàæàåò âêëþ÷åííûé êîìïîíåíò ÷åê áîêñ |
88 | add ecx,1 shl 16 - 4 |
Line 72... | Line 89... | ||
72 | mcall ;âûâîä |
89 | mcall 13 |
73 | ret ;âûéòè èç ïðîöåäóðû |
90 | ret |
- | 91 | } |
|
74 | } |
92 | |
75 | 93 | ||
76 | 94 | macro use_checkbox_mouse |
|
77 | macro use_checkbox_mouse |
- | |
78 | { |
95 | { |
79 | - | ||
80 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
96 | |
81 | ;Îáðàáîò÷èê mouse |
97 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
82 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
98 | ;Îáðàáîò÷èê mouse |
83 | check_box_mouse: ;îáðàáîòêà ìûøè |
99 | ; Ïðè ïîïàäàíèè ìûøêè + íàæàòà êëàâèøà â îáëàñòü checkbox ñîñòîÿíèå áîêñà äîëæíî ìåíÿòñÿ àêòèâíûé - íå àêòèâíûé. |
84 | pusha |
100 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
- | 101 | check_box_mouse: ;îáðàáîòêà ìûøè |
|
- | 102 | pushad |
|
- | 103 | mov ebp,dword [esp+36] ;çàãðóæàåì óêàçàòåëü íà ñòðóêòóðó, óêàçàòåëü ìû ïåðåäàåì â ñòåêå |
|
- | 104 | mcall 37,2 ;ïðîâåðÿåì ñîñòîÿíèå êëàâèø ìûøêè. Áûëî ëè ñîáûòèå íàæàòàÿ êëàâèøà íà ìûøêå. |
|
- | 105 | test eax,eax ;ïðîâåðêà åñëè ó íàñ â eax=0, òî óñòàíîâèì ôëàã è âûéäåì |
|
- | 106 | jnz @f ;ïåðåéòè íà íèæíþþ ìåòêó @@, åñëè â eax íå 0. |
|
- | 107 | ; and dword ch_flags,eax ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà íóëåâîå. |
|
- | 108 | jmp .check_box_mouse_end ;îáðàáîòêà çàêîí÷èëàñü |
|
- | 109 | ; Äà ñîáûòèå: íàæàòèå êëàâèøè ìûøêè ïðîèçîøëî. |
|
- | 110 | @@: |
|
- | 111 | mcall 37,1 ;ïîëó÷èòü êîîðäèíàòû êóðñîðà îòíîñèòåëüíî îêíà |
|
- | 112 | ;íà âûõîäå â eax x shl 16 + y |
|
- | 113 | ;ñðàâíåíèå âåðõíåé òî÷êè ïî Y |
|
- | 114 | mov ecx,dword ch_top_s ;y shl 16 +äëèííà ïî y |
|
- | 115 | mov ebx,ecx |
|
- | 116 | shr ebx,16 ;bx = êîîðäèíàòà ïî y |
|
- | 117 | cmp ax,bx |
|
- | 118 | jb .check_box_mouse_end ;óêàçàòåëü ìûøêè ìåíüøå íà÷àëüíîé êîîðäèíàòû ïî y ÷åì êîîðäèíàòà ïî Y ó áîêñà |
|
- | 119 | ;ñðàâíåíèå íèæíåé òî÷êè ïî Y |
|
- | 120 | add cx,bx ;ñëîæèì äëèííó ïî y è êîîðäèíàòó âåðõíåé òî÷êè ïî y ïîëè÷èì êîîðäèíàòó íèæíåé òî÷êè ïî Y |
|
- | 121 | cmp ax,cx |
|
- | 122 | ja .check_box_mouse_end ;óêàçàòåëü ìûøêè áîëüøå êîíå÷íîé êîîðäèíàòû ïî y ÷åì êîîðäèíàòà ïî Y ó áîêñà |
|
- | 123 | ;ñðàâíåíèå ïî íà÷àëüíîé òî÷êå Õ |
|
- | 124 | mov ecx,dword ch_left_s ;çàãðóçèòü çíà÷åíèå (õ shl 16 + äëèííà) äëÿ ÷åê áîêñà |
|
- | 125 | mov ebx,ecx |
|
85 | mov edi,dword [esp+36] |
126 | shr ebx,16 ;bx = êîîðäèíàòà ïî X |
- | 127 | cmp ax,bx |
|
- | 128 | jb .check_box_mouse_end ;óêàçàòåëü ìûøêè ìåíüøå íà÷àëüíîé êîîðäèíàòû ïî X ÷åì êîîðäèíàòà ïî X ó áîêñà |
|
- | 129 | ;ñðàâíåíèå êîíå÷íîé òî÷êè ïî X |
|
- | 130 | add bx,cx ;ñëîæèì äëèííó ïî y è êîîðäèíàòó âåðõíåé òî÷êè ïî y ïîëè÷èì êîîðäèíàòó íèæíåé òî÷êè ïî Y |
|
86 | mov eax,37 ;áóäåì ÷òî òî äåëàòü åñëè ó íàñ ÷òî - íèòü íàæàòî |
131 | add ebx,dword ch_text_margin ;äîáàâèì ðàçìåð ñòîðîíû è ðàññòîÿíèå íà êîòîðîì íà÷íåòñÿ âûâîä òåêñòà |
- | 132 | mov ecx,dword ch_text_ptr ;óêàæåì àäðåñ ñòðîêè ñ òåðìèíèðóåùèì 0 |
|
- | 133 | push eax |
|
- | 134 | ||
- | 135 | ;ïîäñ÷åò äëèííû ñòðîêè è óâåëè÷åíèå ïðÿìîãîëüíèêà â êîòîðîì ñðàáàòûâàåò ùåë÷îê ìûøêè |
|
- | 136 | lodsb |
|
- | 137 | test al,al |
|
- | 138 | jz .ex_loop |
|
- | 139 | @@: |
|
- | 140 | add bx,6 ;øèðèíà ñèìâîëà |
|
- | 141 | lodsb |
|
- | 142 | test al,al |
|
- | 143 | jnz @b |
|
- | 144 | .ex_loop: |
|
- | 145 | pop eax |
|
- | 146 | cmp ax,bx |
|
- | 147 | ja .check_box_mouse_end ;óêàçàòåëü ìûøêè áîëüøå êîíå÷íîé êîîðäèíàòû ïî y ÷åì êîîðäèíàòà ïî Y ó áîêñà |
|
- | 148 | ;åñëè âñå ïðîâåðêè áûëè óñïåøíî ïðîéäåíû ìû îáÿçàíû ïîìåíÿòü ñîñòîÿíèå áîêñà |
|
- | 149 | btc dword ch_flags,2 ;ïåðåíîñ 2-ãî áèòà â cf è èíâåðñèÿ åãî |
|
- | 150 | jc .enable_box ;åñëè CF=1 òî îòîáðàçèì âêëþ÷åííûé áîêñ è âûéäåì |
|
87 | mov ebx,2 ;âíåñòè â ðåãèñòð çíà÷åíèå 2 |
151 | push dword .check_box_mouse_end ;ôîêóñ -ïîêóñ, âåðíåìñÿ ïîñëå âûçîâà check_box_clear_ch íà ìåòêó check_box_mouse_end |
88 | mcall ;ïðîâåðêà íå íàæàë ëè ïîëüçîâàòåëü êíîïêó ìûøêè |
152 | jmp check_box_clear_ch ;âûêëþ÷èòü ÷åê áîêñ ò.å. íà ìåñòå çàêðàøåííîãî ïðÿìîóãîëüíèêà îòîáðàçèòü öâåò ôîíà. |
89 | test eax,eax ;ïðîâåðêà åñëè ó íàñ â eax=0, òî óñòàíîâèì ôëàã è âûéäåì |
153 | |
90 | jnz @f ;ïåðåéòè íà íèæíþþ ìåòêó @@ |
154 | .enable_box: |
91 | btr dword ch_flags,2 ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà íóëåâîå. |
155 | call check_box_draw_ch ;îòîáðàçèòü âêëþ÷åííûé ÷åê áîêñ |
92 | jmp check_box_mouse_end |
156 | |
93 | 157 | ||
94 | @@: |
158 | |
Line 95... | Line 159... | ||
95 | bts dword ch_flags,2 ;ïðîâåðêà ôëàãà ò.å. ïåðåíîñ â cf çíà÷åíèå áèòà è óñòàíîâêà áèòà â ñîñòîÿíèå âêëþ÷åíî |
159 | ; bts dword ch_flags,2 ;ïðîâåðêà ôëàãà ò.å. ïåðåíîñ â cf çíà÷åíèå áèòà è óñòàíîâêà áèòà â ñîñòîÿíèå âêëþ÷åíî |
96 | jc check_box_mouse_end ;åñëè CF=1 òî ïåðåéòè â êîíåö ò.å. ýòî âûõîä |
160 | ; jc check_box_mouse_end ;åñëè CF=1 òî ïåðåéòè â êîíåö ò.å. ýòî âûõîä |
97 | mov esi,dword ch_text_length ;çàãðóçèòü êîë-âî ñèìâîëîâ â òåêñòîâîé ñòðîêå |
161 | ; mov esi,dword ch_text_length ;çàãðóçèòü êîë-âî ñèìâîëîâ â òåêñòîâîé ñòðîêå |
98 | ;Óìíîæåíèå íà 6 Áûñòðîå óìíîæåíèå ìîæíî âîñïîëüçîâàòüñÿ ëþáûì ìç ìåòîäîâ, íî íà ñòàðûõ Ïðîöåññîðàõ (386,486,P1)áûñòðåå áóäåò ñ èíñòðóêöèåé Lea |
162 | ;Óìíîæåíèå íà 6 Áûñòðîå óìíîæåíèå ìîæíî âîñïîëüçîâàòüñÿ ëþáûì ìç ìåòîäîâ, íî íà ñòàðûõ Ïðîöåññîðàõ (386,486,P1)áûñòðåå áóäåò ñ èíñòðóêöèåé Lea |
99 | lea esi,[eax*3] |
163 | ; lea esi,[eax*3] |
100 | shl esi,1 |
164 | ; shl esi,1 |
101 | ; imul esi,6 ; èëè ìîæíî è òàê óìíîæèòü íà 6 |
165 | ; imul esi,6 ; èëè ìîæíî è òàê óìíîæèòü íà 6 |
102 | add esi,dword ch_text_margin ;äîáàâèòü 3 - ðàññòîÿíèå îò ÷åê áîêñà äî íàäïèñè |
166 | ; add esi,dword ch_text_margin ;äîáàâèòü 3 - ðàññòîÿíèå îò ÷åê áîêñà äî íàäïèñè |
103 | 167 | ||
104 | mov eax,37 ;ïîëó÷èì êîîðäèíàòû ìûøêè |
168 | ; mov eax,37 ;ïîëó÷èì êîîðäèíàòû ìûøêè |
105 | mov ebx,1 ;äîáàâèòü 1 |
169 | ; mov ebx,1 ;äîáàâèòü 1 |
106 | mcall ;ïîëó÷èòü êîîðäèíàòû êóðñîðà îòíîñèòåëüíî îêíà |
170 | ; mcall ;ïîëó÷èòü êîîðäèíàòû êóðñîðà îòíîñèòåëüíî îêíà |
107 | 171 | ||
108 | movzx ebx,word ch_top ;çàãðóçèòü â bx çíà÷åíèå êîîðäèíàòû ó |
172 | ; movzx ebx,word ch_top ;çàãðóçèòü â bx çíà÷åíèå êîîðäèíàòû ó |
109 | cmp ax,bx ;ñðàâíèòü ñ ñ êîîðäèíàòîé êóðñîðà |
173 | ; cmp ax,bx ;ñðàâíèòü ñ ñ êîîðäèíàòîé êóðñîðà |
110 | jl check_box_mouse_end ;SF <> OF åñëè ìåíüøå |
174 | ; jl check_box_mouse_end ;SF <> OF åñëè ìåíüøå |
111 | add ebx,dword ch_size ;äîáàâèòü ðàçìåð |
175 | ; add ebx,dword ch_size ;äîáàâèòü ðàçìåð |
112 | cmp ax,bx ;ñðàâíèòü |
176 | ; cmp ax,bx ;ñðàâíèòü |
113 | jg check_box_mouse_end ;ZF = 0 è SF = OF åñëè áîëüøå |
177 | ; jg check_box_mouse_end ;ZF = 0 è SF = OF åñëè áîëüøå |
Line 114... | Line 178... | ||
114 | 178 | ||
115 | shr eax,16 ;ðàçäåëèì íà 65536 èëè ïðîñòî ñäâèíåì áèòû íà 16 çíà÷åíèé |
179 | ; shr eax,16 ;ðàçäåëèì íà 65536 èëè ïðîñòî ñäâèíåì áèòû íà 16 çíà÷åíèé |
Line 116... | Line 180... | ||
116 | movzx ebx,word ch_left ;ïðîèçâåäåì àíàëîãè÷íîå ñðàâíåíèå |
180 | ; movzx ebx,word ch_left ;ïðîèçâåäåì àíàëîãè÷íîå ñðàâíåíèå |
117 | cmp ax,bx ;ñðàâíèòü ðåãèñòðû |
181 | ; cmp ax,bx ;ñðàâíèòü ðåãèñòðû |
118 | jl check_box_mouse_end ;åñëè ìåíüøå |
182 | ; jl check_box_mouse_end ;åñëè ìåíüøå |
119 | add ebx,dword ch_size ;äîáàâèòü äëèíó ñòîðîíû ïðÿìîóãîëüíèêà |
183 | ; add ebx,dword ch_size ;äîáàâèòü äëèíó ñòîðîíû ïðÿìîóãîëüíèêà |
120 | add ebx,esi ;Ó÷åñòü â çíà÷åíèè ïî õ åùå è äëèíó íàäïèñè ê ÷åêáîêñó |
184 | ; add ebx,esi ;Ó÷åñòü â çíà÷åíèè ïî õ åùå è äëèíó íàäïèñè ê ÷åêáîêñó |
121 | cmp ax,bx ;ñòðàâíèòü ðåãèñòðû |
185 | ; cmp ax,bx ;ñòðàâíèòü ðåãèñòðû |
122 | jg check_box_mouse_end ;åñëè áîëüøå |
186 | ; jg check_box_mouse_end ;åñëè áîëüøå |
123 | 187 | ||
124 | bts dword ch_flags,1 ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà 1. |
188 | ; bts dword ch_flags,1 ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà 1. |
125 | jc @f ;CF=1 òî ïåðåéòè íà íèæíþþ @@ |
189 | ; jc @f ;CF=1 òî ïåðåéòè íà íèæíþþ @@ |
126 | 190 |