Ошибка Operand types do not match - Assembler

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

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

Добрый вечер, помогите исрпавить ошибку в 23 строчке, суть программы заключается в том что я должен сформировать код в регистре CL следющим образом три старших бита я беру из разрядов 6-4 числа numb1, два младших бита делаю еденичными, далее биты 4-2 инвертированные биты 6-4 из числа numb2, остальные биты делаю нулевые
Листинг программы
  1. .386
  2. dseg segment use16
  3. numb1 db 165
  4. numb2 dw 654
  5. numb3 db ?
  6. dseg ends
  7. cseg segment use16
  8. assume ds:dseg, cs:cseg
  9. ;Загрузка регистров-указателей сегментов ds
  10. m1: mov cx, dseg
  11. mov ds, cx
  12. mov al, numb1 ;заносим первое число в al
  13. mov bx, numb2 ;заносим второе число в bx
  14. and al, 011100000b ; зануляем ненужные биты в numb1, кроме трех младших
  15. rol al, 1 ;сдвиг влево на один
  16. or al, 00000011b
  17. xor bx, 0000000000111000b ;инвертируем биты 6-4
  18. and bx, 0000000000111000b ;зануляем ненужные биты в numb2, кроме 6-4
  19. ror bx, 2
  20. mov cl, al;
  21. or cl, bx; складываем bx c cl
  22. mov ds:numb3, cl ;заносим число
  23. mov ah, 4ch
  24. int 21h
  25. cseg ends
  26. end m1

Решение задачи: «Ошибка Operand types do not match»

textual
Листинг программы
  1. or cx, bx

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

12   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы