одногрупник просил помощи... Code (Text): format pe gui 4.0 include 'win32ax.inc' section '' code executable import readable writable library kernel32,'kernel32.dll',\ user32,'user32.dll' include 'api\kernel32.inc' include 'api\user32.inc' entry $ invoke DialogBoxParamA,0,IDD_DLG1,0,dlg1,0 invoke ExitProcess,eax proc dlg1 .wnd,.msg,.wparam,.lparam mov eax,[.msg] .if eax=WM_CLOSE invoke EndDialog,[.wnd],eax .elseif eax=WM_COMMAND mov eax,[.wparam] .if eax=BN_CLICKED shl 16 + IDC_BTN1 invoke GetDlgItemTextA,[.wnd],IDC_TXT1,text1,text1.-text1 call code1 invoke SetDlgItemTextA,[.wnd],IDC_TXT2,text2 .elseif eax=BN_CLICKED shl 16 + IDC_BTN2 invoke GetDlgItemTextA,[.wnd],IDC_TXT2,text2,text2.-text2 call code2 .if CARRY? sub ebx,text2-1 push ebx dec ebx push ebx invoke SendDlgItemMessageA,[.wnd],IDC_TXT2,EM_SETSEL;,ebx,ebx+1 invoke MessageBoxA,[.wnd],'шо то було :)',0,MB_ICONASTERISK jmp .retz .endif invoke SetDlgItemTextA,[.wnd],IDC_TXT1,text1 .endif .endif .retz: sub eax,eax ret endp code1: cld mov edi,text2 mov ebx,text1-1 .loop:inc ebx movzx eax,byte[ebx] cmp al,0 jne .nz stosb ret 0 .nz: lea eax,[table+eax*8] mov ecx,[eax] mov esi,[eax+4] rep movsb jmp .loop code2: ;hlt cld mov edi,text1 mov ebx,text2 .loop:cmp byte[ebx],0 jne .nz mov byte[edi],0 ret 0 .nz: mov eax,table mov edx,eax .find_biggest_key: add edx,8 cmp edx,table+256*8 ja .keys_inspected mov ecx,[edx] cmp ecx,[eax] jna .find_biggest_key lea esi,[ebx+ecx] cmp esi,text2. jae .find_biggest_key sub esi,ecx push edi mov edi,[edx+4] repe cmpsb pop edi jne .find_biggest_key mov eax,edx jmp .find_biggest_key .keys_inspected: cmp eax,table ja .found_biggest_key stc ret 0 .found_biggest_key: add ebx,[eax] sub eax,table shr eax,3 stosb jmp .loop table: macro _[strings]{ common local cell,last$ cell=table rq 256 forward last$=$ db strings store qword last$ shl 32 + $-last$ at cell cell=cell+8 } _\ '' ,\;000 '' ,\;001 '' ,\;002 '' ,\;003 '' ,\;004 '' ,\;005 '' ,\;006 '' ,\;007 '' ,\;008 '' ,\;009 10 ,\;010 '' ,\;011 '' ,\;012 13 ,\;013 '' ,\;014 '' ,\;015 '' ,\;016 '' ,\;017 '' ,\;018 '' ,\;019 '' ,\;020 '' ,\;021 '' ,\;022 '' ,\;023 '' ,\;024 '' ,\;025 '' ,\;026 '' ,\;027 '' ,\;028 '' ,\;029 '' ,\;030 '' ,\;031 ' ' ,\;032 = ' ' '--..-- ' ,\;033 = '!' '.-..-. ' ,\;034 = '"' '' ,\;035 = '#' '' ,\;036 = '$' '' ,\;037 = '%' '' ,\;038 = '&' '.----. ' ,\;039 = ''' '' ,\;040 = '(' '' ,\;041 = ')' '' ,\;042 = '*' '' ,\;043 = '+' '.-.-.- ' ,\;044 = ',' '-....- ' ,\;045 = '-' '...... ' ,\;046 = '.' '-..-. ' ,\;047 = '/' '----- ' ,\;048 = '0' '.---- ' ,\;049 = '1' '..--- ' ,\;050 = '2' '...-- ' ,\;051 = '3' '....- ' ,\;052 = '4' '..... ' ,\;053 = '5' '-.... ' ,\;054 = '6' '--... ' ,\;055 = '7' '---.. ' ,\;056 = '8' '----. ' ,\;057 = '9' '---... ' ,\;058 = ':' '-.-.-. ' ,\;059 = ';' '' ,\;060 = '<' '' ,\;061 = '=' '' ,\;062 = '>' '..--.. ' ,\;063 = '?' '.--.-. ' ,\;064 = '@' '.- ' ,\;065 = 'A' '-... ' ,\;066 = 'B' '-.-. ' ,\;067 = 'C' '-.. ' ,\;068 = 'D' '. ' ,\;069 = 'E' '..-. ' ,\;070 = 'F' '--. ' ,\;071 = 'G' '.... ' ,\;072 = 'H' '.. ' ,\;073 = 'I' '.--- ' ,\;074 = 'J' '-.- ' ,\;075 = 'K' '.-.. ' ,\;076 = 'L' '-- ' ,\;077 = 'M' '-. ' ,\;078 = 'N' '--- ' ,\;079 = 'O' '.--. ' ,\;080 = 'P' '--.- ' ,\;081 = 'Q' '.-. ' ,\;082 = 'R' '... ' ,\;083 = 'S' '- ' ,\;084 = 'T' '..- ' ,\;085 = 'U' '...- ' ,\;086 = 'V' '.-- ' ,\;087 = 'W' '-..- ' ,\;088 = 'X' '-.-- ' ,\;089 = 'Y' '--.. ' ,\;090 = 'Z' '' ,\;091 = '[' '' ,\;092 = '\' '' ,\;093 = ']' '' ,\;094 = '^' '' ,\;095 = '_' '' ,\;096 = '`' '.- ' ,\;097 = 'a' '-... ' ,\;098 = 'b' '-.-. ' ,\;099 = 'c' '-.. ' ,\;100 = 'd' '. ' ,\;101 = 'e' '..-. ' ,\;102 = 'f' '--. ' ,\;103 = 'g' '.... ' ,\;104 = 'h' '.. ' ,\;105 = 'i' '.--- ' ,\;106 = 'j' '-.- ' ,\;107 = 'k' '.-.. ' ,\;108 = 'l' '-- ' ,\;109 = 'm' '-. ' ,\;110 = 'n' '--- ' ,\;111 = 'o' '.--. ' ,\;112 = 'p' '--.- ' ,\;113 = 'q' '.-. ' ,\;114 = 'r' '... ' ,\;115 = 's' '- ' ,\;116 = 't' '..- ' ,\;117 = 'u' '...- ' ,\;118 = 'v' '.-- ' ,\;119 = 'w' '-..- ' ,\;120 = 'x' '-.-- ' ,\;121 = 'y' '--.. ' ,\;122 = 'z' '' ,\;123 = '{' '' ,\;124 = '|' '' ,\;125 = '}' '' ,\;126 = '~' '' ,\;127 = '' '' ,\;128 = 'Ђ' '' ,\;129 = 'Ѓ' '' ,\;130 = '‚' '' ,\;131 = 'ѓ' '' ,\;132 = '„' '' ,\;133 = '…' '' ,\;134 = '†' '' ,\;135 = '‡' '' ,\;136 = '?' '' ,\;137 = '‰' '' ,\;138 = 'Љ' '' ,\;139 = '‹' '' ,\;140 = 'Њ' '' ,\;141 = 'Ќ' '' ,\;142 = 'Ћ' '' ,\;143 = 'Џ' '' ,\;144 = 'ђ' '' ,\;145 = '‘' '' ,\;146 = '’' '' ,\;147 = '“' '' ,\;148 = '”' '' ,\;149 = '•' '' ,\;150 = '–' '' ,\;151 = '—' '' ,\;152 = '˜' '' ,\;153 = '™' '' ,\;154 = 'љ' '' ,\;155 = '›' '' ,\;156 = 'њ' '' ,\;157 = 'ќ' '' ,\;158 = 'ћ' '' ,\;159 = 'џ' '' ,\;160 = ' ' '' ,\;161 = 'Ў' '' ,\;162 = 'ў' '' ,\;163 = 'Ј' '' ,\;164 = '¤' '' ,\;165 = 'Ґ' '' ,\;166 = '¦' '' ,\;167 = '§' '' ,\;168 = 'Ё' '' ,\;169 = '©' '' ,\;170 = 'Є' '' ,\;171 = '«' '' ,\;172 = '¬' '' ,\;173 = '' '' ,\;174 = '®' '' ,\;175 = 'Ї' '' ,\;176 = '°' '' ,\;177 = '±' '.. ' ,\;178 = 'І' '.. ' ,\;179 = 'і' '' ,\;180 = 'ґ' '' ,\;181 = 'µ' '' ,\;182 = '¶' '' ,\;183 = '·' '' ,\;184 = 'ё' '' ,\;185 = '№' '' ,\;186 = 'є' '' ,\;187 = '»' '' ,\;188 = 'ј' '' ,\;189 = 'Ѕ' '' ,\;190 = 'ѕ' '' ,\;191 = 'ї' '.- ' ,\;192 = 'А' '-... ' ,\;193 = 'Б' '.-- ' ,\;194 = 'В' '--. ' ,\;195 = 'Г' '-.. ' ,\;196 = 'Д' '. ' ,\;197 = 'Е' '...- ' ,\;198 = 'Ж' '--.. ' ,\;199 = 'З' '.. ' ,\;200 = 'И' '.--- ' ,\;201 = 'Й' '-.- ' ,\;202 = 'К' '.-.. ' ,\;203 = 'Л' '-- ' ,\;204 = 'М' '-. ' ,\;205 = 'Н' '--- ' ,\;206 = 'О' '.--. ' ,\;207 = 'П' '.-. ' ,\;208 = 'Р' '... ' ,\;209 = 'С' '- ' ,\;210 = 'Т' '..- ' ,\;211 = 'У' '..-. ' ,\;212 = 'Ф' '.... ' ,\;213 = 'Х' '-.-. ' ,\;214 = 'Ц' '---. ' ,\;215 = 'Ч' '---- ' ,\;216 = 'Ш' '--.- ' ,\;217 = 'Щ' '--.-- ' ,\;218 = 'Ъ' '-.-- ' ,\;219 = 'Ы' '-..- ' ,\;220 = 'Ь' '..-.. ' ,\;221 = 'Э' '..-- ' ,\;222 = 'Ю' '.-.- ' ,\;223 = 'Я' '.- ' ,\;224 = 'а' '-... ' ,\;225 = 'б' '.-- ' ,\;226 = 'в' '--. ' ,\;227 = 'г' '-.. ' ,\;228 = 'д' '. ' ,\;229 = 'е' '...- ' ,\;230 = 'ж' '--.. ' ,\;231 = 'з' '.. ' ,\;232 = 'и' '.--- ' ,\;233 = 'й' '-.- ' ,\;234 = 'к' '.-.. ' ,\;235 = 'л' '-- ' ,\;236 = 'м' '-. ' ,\;237 = 'н' '--- ' ,\;238 = 'о' '.--. ' ,\;239 = 'п' '.-. ' ,\;240 = 'р' '... ' ,\;241 = 'с' '- ' ,\;242 = 'т' '..- ' ,\;243 = 'у' '..-. ' ,\;244 = 'ф' '.... ' ,\;245 = 'х' '-.-. ' ,\;246 = 'ц' '---. ' ,\;247 = 'ч' '---- ' ,\;248 = 'ш' '--.- ' ,\;249 = 'щ' '--.-- ' ,\;250 = 'ъ' '-.-- ' ,\;251 = 'ы' '-..- ' ,\;252 = 'ь' '..-.. ' ,\;253 = 'э' '..-- ' ,\;254 = 'ю' '.-.- ' ;255 = 'я' purge _ display 13,10,'заготовка:' repeat 255 display 13,10," '' ,\;", %/100+'0', (%/10) mod 10 +'0', % mod 10 + '0' if %>=' ' display " = '",%,"'" end if end repeat text1 rb 4096 .: text2: rb (text1.-text1)*10 .: section '' resource readable IDD_DLG1 = 0 IDC_TXT1 = 1 IDC_TXT2 = 2 IDC_BTN1 = 3 IDC_BTN2 = 4 directory RT_DIALOG,dialogs resource dialogs,\ IDD_DLG1,0,idd_dlg1 dialog idd_dlg1,'MORZE',40,40,344,202,WS_CAPTION+WS_SYSMENU+WS_MINIMIZEBOX,,,'courier new',8 dialogitem 'edit' ,'' ,IDC_TXT1 ,4,8,288,90 , ES_MULTILINE+ES_WANTRETURN+WS_BORDER+WS_CHILD+WS_TABSTOP+WS_VSCROLL+WS_VISIBLE dialogitem 'edit' ,'' ,IDC_TXT2 ,4,101,288,90 ,ES_NOHIDESEL+ES_MULTILINE+ES_WANTRETURN+WS_BORDER+WS_CHILD+WS_TABSTOP+WS_VSCROLL+WS_VISIBLE dialogitem 'button' ,'>>' ,IDC_BTN1 ,296,73,43,25 ,WS_CHILD+WS_TABSTOP+WS_VISIBLE dialogitem 'button' ,'<<' ,IDC_BTN2 ,296,104,43,25 ,WS_CHILD+WS_TABSTOP+WS_VISIBLE enddialog
шо цэ? unsigned morze[256] = { // ... }; int a2morze(char a, char* out, int out_len){ unsigned i, m; m = morze[a & 0xff]; for(i = 0; m != 0 && out_len > 0; m >>= 1, out_len--, i++, out++) *out = m & 1 ? '-' : '.'; *out = 0; return i; }