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

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

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

Появилась вот такая вот ошибка - Operand types do not match. Не знаю как исправить. Само задание Вычислить произведение numb1 и numb2. В произведении по-менять местами значения старших тетрад (полубайтов) из младшего байта и старшего байта. Затем сформировать код в двухбайтном регистре следующим образом: биты 15-13 сделать единичными, биты 12-6 —взять из соответствующих разрядов numb2, остальные биты нулевые.
.386
dseg segment use16
    numb1 db 7
    numb2 dw 25
dseg ends
 
eseg segment use16
        ea dw   ?
        eb dw   ?       
eseg ends
        
cseg segment use16
assume ds:dseg, cs:cseg, es:eseg
 
m1:
    mov cx,dseg
    mov ds,cx
    mov cx,eseg
    mov es,cx
    
    ;Выполняю умножение
    mov bx,numb1
    mov ax,numb2
    mul bx
    
    ;Выполняю перемещение из BH в BL и наоборот
    xor dx, dx ;обнулил
    mov dh,bl
    xor bl, bl ;обнулил
    mov bl,bh
    xor bh, bh ;обнулил
    mov bh,dh
    ;занесем в новый регистр
    mov es:eb, bx
    
    ; биты 15-13 делаем в 1, 12-6 из numb2, остальные в 0   
    xor cx, cx
    mov cx, ds: numb2
    and cl,11000000b
    or ch ,11100000b
    mov es:ea, cx
    ;Завершаем программу 
    mov ah, 4ch
    int 21h
    cseg ends
    end m1

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

textual
Листинг программы
    ;выполняем умножение
    mov bh,0
    mov bl,numb1
    mov ax,numb2
    mul bx
    
    mov bx,ax
    
    ;делаем первый обмен
    and bh,00001111b
    and bl,11110000b
    xor bh,bl
    
    ;делаем второй обмен
    and ah,11110000b
    and al,00001111b
    xor al,ah
    
    ;соединяем воедино два байта в регистре ax 
    mov ah,bh
    
    ;занесем в новый регистр
    mov es:eb,ax

Объяснение кода листинга программы

Список не более 20 элементов:

  1. Выполняем умножение
  2. Делаем первый обмен
  3. Делаем второй обмен
  4. Соединяем воедино два байта в регистре ax
  5. Занесем в новый регистр

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


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

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

7   голосов , оценка 4.286 из 5