Ошибка при компиляции: Operand types do not match - Assembler

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

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

MODEL SMALL
STACK 100h     
DATASEG
    Question DB 10,13,'Close program? - [Y/N]$'
   Set_X   DB       13,10,'X = $'
   Result   DB       13,10,'Y = $'
   error_ db "incorrect number$"
   buff    db 6,7 Dup(?)   
 
CODESEG                    
start:
   mov      ax,@Data
    mov                ds,ax             ; ?????????? ??????? DS ????? ?????, ??? ??? ???????? ?? ??????? ?????
    mov                dx,OFFSET Set_X                    ; ????????? ?? ????????????-?????????
    mov                ah,09h                                    ; ??????? DOS ?????? ???????
    int       21h                 
 
;************************************************************************************
 
;********* ?????????? ????? ? ?????????? ? ???????????? ???? ? ??????? ???????? ************
 
;********????????? ? ???????? AX*********
 
;************************************************************************************
    mov    ah,0ah
    xor     di,di
    mov    dx,offset buff                            ; ?????? ??????
    int       21h                                          ; ???????? ???????
    mov    dl,0ah
    mov    ah,02
    int       21h                                          ; ???????? ??????? ???????
 ; ?????????? ????? ??????
    mov    si,offset buff+2                                     ; ????? ?????? ??????? ???????
    cmp    byte ptr [si],"-"                                    ; ???? ?????? ?????? ?????
    jnz      ii1
    mov    di,1                                          ; ???????????? ??????
    inc      si                                              ; ? ?????????? ????
ii1:
    xor     ax,ax
    mov    bx,10                                      
ii2:
    mov    cl,[si]                                       ; ????? ?????? ? ??????
    cmp    cl,0dh                                                  ; ??????????? ?? ??? ?? ????????
    jz        endin
; ???? ?????? ?? ????????, ?? ??????????? ???? ?? ????????????
 
    cmp    cl,'0'                                         ; ???? ???????? ???????? ?????? <0
    jl         er
    cmp    cl,'9'                                         ; ???? ???????? ???????? ?????? >9
    ja        er
    sub     cl,'0'                                         ; ?????? ? ??????? ?????
    mul     bx                                            ; ???????????? ?? 10
    add     ax,cx                                        ; ??????? ?? ?????
    inc      si                                              ; ????????? ?? ????????? ??????
    jmp     ii2                                            ; ??????????
er:   ; ???? ???? ???????, ?? ???????? ???????????? ??? ?? ? ????????
 
    mov    dx, offset error_
    mov    ah,09
    int       21h
    int       20h
   ; ??? ??????? ? ?????? ????????? ????? ??????????? ? ax
 
endin:
    cmp    di,1                                          ; ???? ???????????? ?????????, ??
    jnz      ii3
    neg     ax                                            ; ????? ????? ?????????
ii3:
 
;************************************************************************************
 
;**************** ?????????? ??????? ?????????? ? ????????????? ????? ********************

mov ax, 4
mov bx, Set_x
sub ax, bx ;4 - x
mov cx, 5 ;(4 - x) / 5
div cx
mul bx ; ((4 - x) / 5)^2
mul bx ; ((4 - x) / 5)^3
add ax, 1 ; ((4 - x) / 5)^3 + 1
    mov      dx,OFFSET Result       ; ?????? ??
    mov      ah,09h            ; ??????? DOS ?????? ????????????
    int        21h                  ; ??????? ?????????? ????????????
    xchg     cx,ax
 
;************************************************************************************
 
;************* ??????? ??????? ???????????? ????? ? ??????? ? ?????? ?? ?? ????? ************
 
;************************************************************************************
 
; ??????????? ????? ?? ????
   test      ax, ax
   jns       oi1
; ???? ???? ???'????, ???????? ????? ? ???????? ???? ??????.
   mov     cx, ax
   mov                 ah, 02h
   mov                 dl, '-'
   int        21h
   mov     ax, cx
   neg     ax
; ????????? ???? ?????? ??????? ? CX.
oi1: 
    xor   cx, cx
    mov     bx, 10             ; ?????? ??. 10 ??? ?????????? ? ?.?.
oi2:
    xor  dx,dx
    div     bx
; ?????? ????? ?? ?????? ??. ? ??????? ???????? ??????? ?????.
 
; ??????? ???????? ?? ???????, ???? ????????? ?? ? ????.
    push    dx
    inc     cx
; ? ? ??????? ?????????? ?? ? ????, ?????????? ??? ????? ???????
; ????? ??????, ???? ?? ?????????? ????, ?? ???????, ?? ????
; ????? ???? ????.
    test    ax, ax
    jnz     oi2
; ????? ?????????? ?? ??????.
    mov                ah, 02h
oi3:
    pop     dx
; ?????? ??????? ?????, ?????????? ?? ? ?????? ? ????????.
    add                 dl, '0'
    int       21h
; ????????? ????? ??????? ?????, ??????? ???? ??????????.
    loop    oi3
;************************************************************************************
 
;************ ?????????? ??????? ???????????? ????? ? ??????? ? ?????? ?? ?? ????? ***********
 
;************************************************************************************
mov dx,OFFSET Question
mov ah,09h
int 21h 
mov ah,01h
int 21h 
 
cmp al,'y'
jz closethatshit
jmp start
 
closethatshit:
    mov                ah,04ch                       ; ??????? DOS ?????????? ????????
    int       21h                  ; ????????? ????????
end start
ошибка: (76) Operand types do not match

Решение задачи: «Ошибка при компиляции: Operand types do not match»

textual
Листинг программы
mov bx, 0
mov bl, Set_x

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

  1. Переменная bx устанавливается равной 0.
  2. Переменная bl устанавливается равной Set_x.

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


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

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

14   голосов , оценка 3.929 из 5
Похожие ответы