Ошибка при компиляции: 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
Решение задачи: «Ошибка при компиляции: Operand types do not match»
textual
Листинг программы
- mov bx, 0
- mov bl, Set_x
Объяснение кода листинга программы
- Переменная
bx
устанавливается равной 0. - Переменная
bl
устанавливается равнойSet_x
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д