Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Ну млин агоритм


Автор: dragon-gor 16.3.2005, 14:59
Проблема в генерации серийника.
Присутствуют строки которые я всегда избегал и которые всё таки достали меня.

Вот принципи код генерации:
0043BC17 /$ 55 PUSH EBP
0043BC18 |. 8BEC MOV EBP, ESP
0043BC1A |. 83EC 3C SUB ESP, 3C
0043BC1D |. 56 PUSH ESI
0043BC1E |. 8B45 08 MOV EAX, [DWORD SS:EBP+8]
0043BC21 |. 8A08 MOV CL, [BYTE DS:EAX]
0043BC23 |. 884D F4 MOV [BYTE SS:EBP-C], CL
0043BC26 |. C645 F5 00 MOV [BYTE SS:EBP-B], 0
0043BC2A |. 8B55 08 MOV EDX, [DWORD SS:EBP+8]
0043BC2D |. 8A42 01 MOV AL, [BYTE DS:EDX+1]
0043BC30 |. 8845 E8 MOV [BYTE SS:EBP-18], AL
0043BC33 |. C645 E9 00 MOV [BYTE SS:EBP-17], 0
0043BC37 |. 8B4D 08 MOV ECX, [DWORD SS:EBP+8]
0043BC3A |. 8A51 0E MOV DL, [BYTE DS:ECX+E]
0043BC3D |. 8855 DC MOV [BYTE SS:EBP-24], DL
0043BC40 |. C645 DD 00 MOV [BYTE SS:EBP-23], 0
0043BC44 |. 8B45 08 MOV EAX, [DWORD SS:EBP+8]
0043BC47 |. 8A48 0F MOV CL, [BYTE DS:EAX+F]
0043BC4A |. 884D D0 MOV [BYTE SS:EBP-30], CL
0043BC4D |. C645 D1 00 MOV [BYTE SS:EBP-2F], 0
0043BC51 |. 8B55 08 MOV EDX, [DWORD SS:EBP+8]
0043BC54 |. 8A42 02 MOV AL, [BYTE DS:EDX+2]
0043BC57 |. 8845 C4 MOV [BYTE SS:EBP-3C], AL
0043BC5A |. C645 C5 00 MOV [BYTE SS:EBP-3B], 0
0043BC5E |. 0FBE4D C4 MOVSX ECX, [BYTE SS:EBP-3C]
0043BC62 |. 83F9 24 CMP ECX, 24
0043BC65 |. 74 04 JE SHORT pdf2html.0043BC6B
0043BC67 |. 33C0 XOR EAX, EAX
0043BC69 |. EB 67 JMP SHORT pdf2html.0043BCD2
.........
0043BCD2 |> 5E POP ESI ; pdf2html.0043C475
0043BCD3 |. 8BE5 MOV ESP, EBP
0043BCD5 |. 5D POP EBP
0043BCD6 \. C3 RETN


Хотел бы знать как читаются строки. В некоторых учебниках пишут, что хх[n] это хх + n (Справочная система по языку ассемблера IBM PC к книге Assembler: учебный курс издательство «Питер»), а внекоторых об этом утаивают. И вообще лучше было бы более подробно расписать о реестрах и СМЕЩЕНИЯХ.

Заранее благодарю всех.

Автор: dragon-gor 18.3.2005, 15:56
Ну, плиз, скажите как читать. Я незаставляю алгоритм просчитывать. Просто с этими смещениями непонятно (как иммено обстоят дела в видовсе). smile smile

Автор: Akina 18.3.2005, 16:11
1) Убери смещения
2) Убери коды
3) Используй тег Код Ассемблера

А то ни хрена не понять... а разбираться влом, тебе надо, а не нам...

Автор: oleg1973 18.3.2005, 17:29
думаю что данная тема немнога выходит из правил данного форума

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)