On-line: PSP, tnsr2, гостей 0. Всего: 2 [подробнее..]
АвторСообщение
Администратор




Пост 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


Спасибо: 0 
Профиль
Новых ответов нет


Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 89
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет