Не могу разобраться с циклическим сдвигом влево RCL - Assembler

Узнай цену своей работы

Формулировка задачи:

model  SMALL
        stack  100h
 
        dataseg
MB      db     00000001b,00000001b,00000001b,00000010b,00000001b,00000001b,00000001b,00000001b,00000001b,00000001b
i   db  0
kat       db      00000000b
        codeseg
        startupcode
 
        lea    BX, MB       ; BX - текущий адрес массива MB
        mov    CX, 3       ; CX - счетчик числа итераций
    mov    AL, [BX]     ; считать 1-ый байт массива
BEG:
    add i, 1        ;увеличить счетчик массива на единицу
    mov     AH,[BX]+i    ;записываем второй элемент массива
        xor     AL, AH; исключающее или
    loop BEG
    mov kat,AL ;заноси результат в kat
    rol kat,4;циклический сдвиг влево на 4 бита
    xor kat,AL;исключающее или
    and kat,00001111b;
    
;Конец работы
QUIT:   exitcode  0
        end
в конце цикла Loop BEG результат в al 00000003, все верно, затем я заношу этот результат в переменную kat и делаю циклический сдвиг этой переменной на 4 бита влево, далее делаю иск. или AL и kat и накладываю маску 00001111,в итоге должно получиться 0011, а получается черт пойми что. Суть всех этих действий в том, что я беру первые 4 бита переменной kat и делаю иск. или с последними 4 бита.Я думаю, что через RCLхотел , но выбивает мне ошибку, что я не так написал в этой записи
rcl kat,4    ?

Решение задачи: «Не могу разобраться с циклическим сдвигом влево RCL»

textual
Листинг программы
    .186
    rol kat,4;циклический сдвиг влево на 4 бита

Оцени полезность:

11   голосов , оценка 4.273 из 5