Ошибка Operand types do not match - Assembler
Формулировка задачи:
Добрый вечер, помогите исрпавить ошибку в 23 строчке, суть программы заключается в том что я должен сформировать код в регистре CL следющим образом три старших бита я беру из разрядов 6-4 числа numb1, два младших бита делаю еденичными, далее биты 4-2 инвертированные биты 6-4 из числа numb2, остальные биты делаю нулевые
Листинг программы
- .386
- dseg segment use16
- numb1 db 165
- numb2 dw 654
- numb3 db ?
- dseg ends
- cseg segment use16
- assume ds:dseg, cs:cseg
- ;Загрузка регистров-указателей сегментов ds
- m1: mov cx, dseg
- mov ds, cx
- mov al, numb1 ;заносим первое число в al
- mov bx, numb2 ;заносим второе число в bx
- and al, 011100000b ; зануляем ненужные биты в numb1, кроме трех младших
- rol al, 1 ;сдвиг влево на один
- or al, 00000011b
- xor bx, 0000000000111000b ;инвертируем биты 6-4
- and bx, 0000000000111000b ;зануляем ненужные биты в numb2, кроме 6-4
- ror bx, 2
- mov cl, al;
- or cl, bx; складываем bx c cl
- mov ds:numb3, cl ;заносим число
- mov ah, 4ch
- int 21h
- cseg ends
- end m1
Решение задачи: «Ошибка Operand types do not match»
textual
Листинг программы
- or cx, bx
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д