Ошибка 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д