Сборник по задачам и примерам Assembler



         

Основы - часть 3


:prg09_03.asm - программа вычисления содержимого таблицы :на основе полинома 1021п степени 16.

.data

tabl_16 dw 256 dup (0) :CRC-таблица

len_tabl_16=$-tabl_16

adr_tabl_16 dd tabl_16

polinom dw 1021h

.code

les di,adr_tabl_16

add di.len_tabl_16-2

std :идем назад по таблице

mov ex.255

mov bx.polinom

ml: xor ax.ax

mov ah.cl :индекс в таблице для вычисления CRC

push ex сложенные циклы

mov ex. 8

m2: shl ax.l

jnc m3 :старшие разряды не равны - выполняем сдвиг

: (частное нас не интересует) ;старшие разряды равны - выполняем XOR:

xor ax.bx :ax XOR polinom

m3: loop m2 _^

pop ex

stosw

loop ml

В результате работы этой программы область памяти tabl_16 будет инициализирована таблицей значений, которые могут быть использованы в схеме вычис-- ления значения CRC исходной последовательности (см. Рисунок 9.8).




Содержание  Назад  Вперед