Rev 109 | Rev 485 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 109 | Rev 317 | ||
---|---|---|---|
Line -... | Line 1... | ||
- | 1 | ;; hex2dec2bin 0.2 by Alexei Ershov ;; |
|
- | 2 | ;; 16.11.2006 ;; |
|
- | 3 | ||
1 | use32 ; âêëþ÷èòü 32-áèòíûé ðåæèì àññåìáëåðà |
4 | use32 ; âêëþ÷èòü 32-áèòíûé ðåæèì àññåìáëåðà |
2 | org 0x0 ; àäðåñàöèÿ ñ íóëÿ |
5 | org 0x0 ; àäðåñàöèÿ ñ íóëÿ |
Line 3... | Line 6... | ||
3 | 6 | ||
4 | db 'MENUET01' ; 8-áàéòíûé èäåíòèôèêàòîð MenuetOS |
7 | db 'MENUET01' ; 8-áàéòíûé èäåíòèôèêàòîð MenuetOS |
Line 8... | Line 11... | ||
8 | dd 0x1000 ; êîëè÷åñòâî ïàìÿòè |
11 | dd 0x1000 ; êîëè÷åñòâî ïàìÿòè |
9 | dd 0x1000 ; àäðåñ âåðøèíû ñòýêà |
12 | dd 0x1000 ; àäðåñ âåðøèíû ñòýêà |
10 | dd 0x0 ; àäðåñ áóôåðà äëÿ ïàðàìåòðîâ (íå èñïîëüçóåòñÿ) |
13 | dd 0x0 ; àäðåñ áóôåðà äëÿ ïàðàìåòðîâ (íå èñïîëüçóåòñÿ) |
11 | dd 0x0 ; çàðåçåðâèðîâàíî |
14 | dd 0x0 ; çàðåçåðâèðîâàíî |
Line 12... | Line -... | ||
12 | - | ||
13 | include 'lang.inc' |
15 | |
Line 14... | Line 16... | ||
14 | include 'macros.inc' ; ìàêðîñû îáëåã÷àþò æèçíü àññåìáëåðùèêîâ! |
16 | include 'MACROS.INC' ; ìàêðîñû îáëåã÷àþò æèçíü àññåìáëåðùèêîâ! |
15 | 17 | ||
Line 107... | Line 109... | ||
107 | xchg eax, ecx |
109 | xchg eax, ecx |
108 | dec edi |
110 | dec edi |
109 | jmp next_digit |
111 | jmp next_digit |
Line 110... | Line 112... | ||
110 | 112 | ||
- | 113 | .done: |
|
- | 114 | mov [num], eax ; ñîõðàíÿåì ââåäåííîå ÷èñëî |
|
- | 115 | xor eax, eax |
|
- | 116 | mov al, ' ' |
|
111 | .done: |
117 | mov edi, string1 |
112 | mov [num], eax |
- | |
- | 118 | mov [index], edi |
|
- | 119 | mov ecx, string1_end-string1 |
|
113 | 120 | rep stosb ; ñòèðàåì ââåäåííóþ ñòðîêó |
|
Line 114... | Line 121... | ||
114 | jmp red |
121 | jmp red |
Line 115... | Line 122... | ||
115 | 122 | ||
116 | ;--------------------------------------------------------------------- |
123 | ;--------------------------------------------------------------------- |
117 | 124 | ||
- | 125 | button: |
|
- | 126 | mcall 17 ; 17 - ïîëó÷èòü èäåíòèôèêàòîð íàæàòîé êíîïêè |
|
- | 127 | cmp ah, 1 ; åñëè ÍÅ íàæàòà êíîïêà ñ íîìåðîì 1, |
|
- | 128 | jne @f |
|
- | 129 | mcall -1 |
|
118 | button: |
130 | @@: |
- | 131 | cmp ah, 2 |
|
119 | mcall 17 ; 17 - ïîëó÷èòü èäåíòèôèêàòîð íàæàòîé êíîïêè |
132 | jne @f |
- | 133 | shl [num], 1 |
|
120 | cmp ah, 1 ; åñëè ÍÅ íàæàòà êíîïêà ñ íîìåðîì 1, |
134 | jmp red |
- | 135 | @@: |
|
- | 136 | cmp ah, 3 |
|
- | 137 | jne @f |
|
- | 138 | shr [num], 1 |
|
- | 139 | jmp red |
|
121 | jne still ; âåðíóòüñÿ |
140 | @@: |
- | 141 | cmp ah, 4 |
|
Line -... | Line 142... | ||
- | 142 | jne still |
|
122 | 143 | sar [num], 1 |
|
- | 144 | jmp red |
|
123 | .exit: |
145 | |
124 | mcall -1 ; èíà÷å êîíåö ïðîãðàììû |
146 | ;------------------------------------------------ |
125 | - | ||
126 | draw_window: |
- | |
127 | mcall 12, 1 |
- | |
128 | mcall 0, 200*65536+300, 200*65536+120, 0x02AABBCC, 0x805080D0, 0x005080D0 |
- | |
129 | mcall 4, 8*65536+8, 0x10DDEEFF, header, header_e - header |
- | |
130 | mcall , 15*65536+100, 0, numstr, 7 |
- | |
Line -... | Line 147... | ||
- | 147 | draw_window: |
|
- | 148 | ;------------------------------------------------ |
|
- | 149 | mcall 12, 1 |
|
- | 150 | mcall 0, 200*65536+300, 200*65536+175, 0x13AABBCC,,header |
|
Line -... | Line 151... | ||
- | 151 | ||
- | 152 | mcall 8, 15 *65536+ 38, 90*65536+ 15, 2, 0x6688DD ; êíîïêà shl |
|
- | 153 | mcall , ,110*65536+ 15, , ; êíîïêà sal |
|
131 | mcall , 15*65536+72, , hexstr, 4 |
154 | mcall , (300-53)*65536+ 38, 90*65536+ 15, 3, ; êíîïêà shr |
- | 155 | mcall , ,110*65536+ 15, 4, ; êíîïêà sar |
|
132 | mcall , 15*65536+44, , decstr, |
156 | |
- | 157 | mcall 4, 15*65536+30, 0x80000000, binstr, |
|
- | 158 | mcall , 15*65536+44, , decstr, |
|
- | 159 | mcall , 15*65536+58, ,sdecstr, |
|
- | 160 | mcall , 15*65536+72, , hexstr, |
|
133 | mcall , 15*65536+30, , binstr, |
161 | mcall , 15*65536+150, , numstr, |
Line 134... | Line 162... | ||
134 | mcall , 15*65536+58, ,sdecstr, 10 |
162 | |
135 | - | ||
136 | 163 | mcall , 25*65536+93,0x10000000,shlstr,3 |
|
137 | mcall 8, (300-19)*65536+ 12, 5*65536+ 12, 1, 0x6688DD |
- | |
138 | 164 | mcall , (300-43)*65536+93, , shrstr, |
|
139 | mov ecx, [num] |
165 | mcall , 25*65536+113, , salstr, |
140 | 166 | mcall , (300-43)*65536+113, , sarstr, |
|
141 | mcall 47, 8*65536+256,,240*65536+72,0 ; 16-íàÿ |
167 | mov ecx, [num] |
142 | 168 | ||
143 | mcall , 10*65536, ,228*65536+44, ; 10-íàÿ |
169 | mcall 47, 8*65536+256,,240*65536+72,0 ; 16-íàÿ |
144 | 170 | mcall , 10*65536, ,228*65536+44, ; 10-íàÿ |
|
145 | mcall , 8*65536+512,,240*65536+30, ; 2-íàÿ |
171 | mcall , 8*65536+512,,240*65536+30, ; 2-íàÿ |
146 | ror ecx, 8 |
172 | ror ecx, 8 |
147 | mcall , 8*65536+512,,(240-56)*65536+30, |
173 | mcall , ,,(240-56)*65536+30, |
148 | ror ecx, 8 |
174 | ror ecx, 8 |
149 | mcall , 8*65536+512,,(240-56*2)*65536+30, |
175 | mcall , ,,(240-56*2)*65536+30, |
150 | ror ecx, 8 |
176 | ror ecx, 8 |
151 | mcall , 8*65536+512,,(240-56*3)*65536+30, |
177 | mcall , ,,(240-56*3)*65536+30, |
152 | ror ecx, 8 |
178 | ror ecx, 8 |
- | 179 | mov [minus], '+' |
|
153 | mov byte [minus], '+' |
180 | jnc @f |
154 | jnc @f |
- | |
155 | mov byte [minus], '-' |
- | |
156 | neg ecx |
181 | mov [minus], '-' |
Line 157... | Line 182... | ||
157 | @@: |
182 | neg ecx |
Line 158... | Line 183... | ||
158 | mcall , 10*65536,,228*65536+58, ; 10-íàÿ ñî çíàêîì |
183 | @@: |
159 | mcall 4, 222*65536+58, 0, minus, 1 |
184 | mcall , 10*65536,,228*65536+58, ; 10-íàÿ ñî çíàêîì |
160 | call Draw_String |
185 | mcall 4, 222*65536+58, 0, minus, 1 |
161 | - | ||
162 | - | ||
163 | mcall 12, 2 ; ôóíêöèÿ 12: ñîîáùèòü ÎÑ îá îòðèñîâêå îêíà |
- | |
164 | - | ||
165 | ret |
- | |
Line 166... | Line -... | ||
166 | - | ||
167 | ;------------------------------------------------- |
186 | mcall 38, 15*65536+300-15, 137*65536+137, 0x006688DD |
168 | Draw_String: |
- | |
169 | ;------------------------------------------------- |
187 | call Draw_String |
170 | mov eax, 13 |
- | |
171 | mov ebx, 60*65536+ 6*33 |
- | |
172 | mov ecx, 100*65536+ 9 |
188 | mcall 12, 2 ; ôóíêöèÿ 12: ñîîáùèòü ÎÑ îá îòðèñîâêå îêíà |
Line 173... | Line 189... | ||
173 | mov edx, 0x02AABBCC |
189 | |
174 | int 0x40 |
190 | ret |
175 | 191 | ||
Line 221... | Line 237... | ||
221 | string1_end: |
237 | string1_end: |
222 | index dd string1 |
238 | index dd string1 |
223 | num dd 0 |
239 | num dd 0 |
Line 224... | Line 240... | ||
224 | 240 | ||
225 | - | ||
226 | header db 'hex2dec2bin' |
241 | |
227 | header_e: |
242 | header db 'hex2dec2bin 0.2',0 |
228 | minus db '-' |
243 | minus db '-' |
229 | numstr db 'Number:' |
244 | numstr db 'Number:',0 |
230 | hexstr db 'hex:' |
245 | hexstr db 'hex:',0 |
231 | binstr db 'bin:' |
246 | binstr db 'bin:',0 |
- | 247 | decstr db 'dec:',0 |
|
- | 248 | sdecstr db 'signed dec:',0 |
|
- | 249 | shlstr db 'shl' |
|
- | 250 | salstr db 'sal' |
|
Line 232... | Line 251... | ||
232 | decstr db 'dec:' |
251 | shrstr db 'shr' |