Курсовая работа: Ассемблер 2
pop AX
ret
SetArrSeg endp
;****************************************************************************
; Процедура вычисления CRC16
;ES - сегмент массива
;DX - адрес начала массива
;BX - длина блока данных
;AX - результат вычислений
;****************************************************************************
CalcCRC proc
push CX ;\
push BX ;- сохранение регистров
push DI ;/
push DX
mov DI,DX ;Загрузка индекса начала массива
mov DX,8
mov CX,BX ;Установка счётчика цикла
shl CX,1 ;\
shl CX,1 ;- CX=CX*8
shl CX,1 ;/
mov AX,65535 ;Очистка регистра результата
mov BX,ES:[DI]
CRNext: loop CRNextTest ;Цикл по словам массива
pop DX
pop DI ;\
pop BX ;-восстановление регистров
pop CX ;/
ret