Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Tekil
-
- Начинающий

-
-
- Сообщения: 1
- Зарегистрирован: 07.09.2003 (Вс) 9:59
Tekil » 07.09.2003 (Вс) 10:09
Помогите переложить на VB приведенный алгоритм с асма.
- Код: Выделить всё
;*****************************************************************************
;* ПРОЦЕДУРА ВЫЧИСЛЕНИЯ 8-БИТНОЙ CRC для MCS51 *
;*****************************************************************************
;Пример использования:
mov CRC,#0 ;Перед вычислением надо обнулять CRC.
mov A,BYTE1 ;Названия байтов к примеру.
call DO_CRC
;В CRC сейчас находится контрольная сумма байта BYTE1.
mov A,BYTE2
call DO_CRC
;В CRC сейчас находится контрольная сумма байтов BYTE1 и BYTE2.
mov A,BYTE3
call DO_CRC
;В CRC сейчас находится контрольная сумма байтов BYTE1, BYTE2, BYTE3.
;И так далее.
;-----------------------------------------------------------------------------
; Контрольная сумма.
CRC DATA 1Bh ;переменная CRC
;-----------------------------------------------------------------------------
; Процедура обновления CRC (циклическая контрольная сумма). Параметр в A.
DO_CRC:
PUSH ACC ;сохранить аккумулятор в стеке
PUSH B ;сохранить B в стеке
PUSH ACC ;сохранить аккумулятор в стеке
MOV B,#8 ;счетчик сдвигов = 8
CRC_LOOP:
XRL A,CRC ;"исключающее ИЛИ" над ACC и предыдущим операндом
RRC A ;крутить вправо на бит через флаг переноса
MOV A,CRC ;получить предыдущее значение CRC
JNC ZERO ;пропустить если был 0
XRL A,#18H ;"исключающее ИЛИ" над ACC и операндом 18H
ZERO:
RRC A ;крутить вправо на бит через флаг переноса
MOV CRC,A ;сохранить текущее значение CRC
POP ACC ;получить предыдущее значение
RR A ;крутить вправо
PUSH ACC ;сохранить результат на стеке
DJNZ B,CRC_LOOP ;повторять 8 раз
POP ACC ;чистка стека
POP B ;восстановить B
POP ACC ;восстановить аккумулятор
RET ;выход
;-----------------------------------------------------------------------------
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 19