|
| Администратор
|
Пост N: 433
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.12.06 20:29. Заголовок: Для Владимира Григорьева
Владимир, помогите пожалуйста разобраться с алгоритмом формирования контрольной суммы Нужно пеереписать этот алгоритм на С. Хочется чтобы было точно так как в клиппере А тоо я что-то совсем форму потерял, не могу понять Вот дизассемблированный текст .387 PUBLIC FILECHECK EXTRN GET_SP:BYTE EXTRN SHAREMODE:BYTE EXTRN DOSCALL:BYTE EXTRN MEMP_BUF:BYTE EXTRN MEMP_OFF:BYTE EXTRN DOSCALL_2:BYTE EXTRN B_NLP_PUR:BYTE EXTRN BACK_ERR_NUM_PUR:BYTE TGROUP GROUP _NTOOL _NTOOL SEGMENT WORD PUBLIC USE16 'CODE' ASSUME CS:TGROUP, DS:DGROUP, SS:DGROUP FILECHECK: push ds push si push bp xor ax,ax mov bp,ax mov di,ax inc ax call near ptr GET_SP mov cl,0 or cl,byte ptr cs:SHAREMODE mov ds,dx mov dx,ax mov ax,cx mov ah,3dH call near ptr DOSCALL jb L$6 mov bx,ax call near ptr MEMP_BUF L$1: mov cx,200H lds dx,dword ptr cs:MEMP_OFF mov ah,3fH call near ptr DOSCALL jb L$5 or ax,ax je L$4 add di,ax mov cx,ax dec cx mov si,word ptr cs:MEMP_OFF je L$3 xor ax,ax nop L$2: add ax,word ptr [si] inc si dec cx jne L$2 add bp,ax mov ah,byte ptr [si] L$3: lodsb add ax,bp mov bp,ax mul di add bp,ax jne L$1 inc bp jmp L$1 L$4: mov ah,3eH call near ptr DOSCALL_2 mov ax,bp pop bp pop si pop ds mov dx,di call near ptr B_NLP_PUR retf L$5: mov ah,3eH call near ptr DOSCALL_2 L$6: pop bp pop si pop ds jmp near ptr BACK_ERR_NUM_PUR _NTOOL ENDS END
|