Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых) |
eXeL@B —› Программирование —› Объясните кусок кода на асме |
Посл.ответ | Сообщение |
|
Создано: 21 мая 2006 02:24 · Личное сообщение · #1 Есть программа-тестовая оболочка. Написана на Delphi. Выдает по очереди 30 вопросов на которые надо ответить (checkbox'ы). Я вроде нашел в программе участок, который проверяет (вроде бы - цикл по 30 перед выдачей результата), но увы не могу понять. CODE:004599B7 mov edx, esi CODE:004599B9 mov eax, [ebp+var_4] CODE:004599BC call sub_45A5D4 CODE:004599C1 mov ebx, eax CODE:004599C3 mov eax, ebx CODE:004599C5 add eax, eax CODE:004599C7 mov edx, ds:dword_45EC40 CODE:004599CD movzx eax, byte ptr [edx+eax*8+8] CODE:004599D2 mov [ebp+var_90], eax CODE:004599D8 fild [ebp+var_90] CODE:004599DE fadd [ebp+var_28] CODE:004599E1 fstp [ebp+var_28] CODE:004599E4 wait CODE:004599E5 inc esi //сколько раз цикл выполнился CODE:004599E6 dec [ebp+var_44] //сколько осталось проходов цикла CODE:004599E9 jnz short loc_4599B7 CODE:0045A5D4 sub_45A5D4 proc near ; CODE XREF: sub_4596C8+2F4p CODE:0045A5D4 ; sub_4596C8+339p ... CODE:0045A5D4 push ebx CODE:0045A5D5 push esi CODE:0045A5D6 push edi CODE:0045A5D7 xor esi, esi CODE:0045A5D9 mov ecx, ds:dword_45EC48 CODE:0045A5DF test ecx, ecx CODE:0045A5E1 jle short loc_45A5FE CODE:0045A5E3 mov eax, 1 CODE:0045A5E8 CODE:0045A5E8 loc_45A5E8: ; CODE XREF: sub_45A5D4+28j CODE:0045A5E8 mov ebx, eax CODE:0045A5EA add ebx, ebx CODE:0045A5EC mov edi, ds:dword_45EC40 CODE:0045A5F2 cmp edx, [edi+ebx*8+0Ch] CODE:0045A5F6 jnz short loc_45A5FA CODE:0045A5F8 mov esi, eax CODE:0045A5FA CODE:0045A5FA loc_45A5FA: ; CODE XREF: sub_45A5D4+22j CODE:0045A5FA inc eax CODE:0045A5FB dec ecx CODE:0045A5FC jnz short loc_45A5E8 CODE:0045A5FE CODE:0045A5FE loc_45A5FE: ; CODE XREF: sub_45A5D4+Dj CODE:0045A5FE mov eax, esi CODE:0045A600 pop edi CODE:0045A601 pop esi CODE:0045A602 pop ebx CODE:0045A603 retn CODE:0045A603 sub_45A5D4 endp |
|
Создано: 21 мая 2006 09:55 · Личное сообщение · #2 |
|
Создано: 21 мая 2006 10:30 · Личное сообщение · #3 |
|
Создано: 21 мая 2006 11:26 · Личное сообщение · #4 |
|
Создано: 21 мая 2006 16:38 · Поправил: rep0A · Личное сообщение · #5 INCH Вот примерно так это будет выглядить на си: int a = ?;
|
|
Создано: 21 мая 2006 22:34 · Личное сообщение · #6 |
eXeL@B —› Программирование —› Объясните кусок кода на асме |