Ввод чисел на TASM

Мне необходимо реализовать расчет этого выражения (22/c+3*b)/(36-a*c/3), на ассемблере. С вводом и выводом я немного разобрался, но мне не понятно каким образом производятся вычисления.

.model large
DATA SEGMENT
enterA db 'enter A:$'
enterB db 'enter B:$'
enterC db 'enter C:$'
showchisl db 'Chisl = $'
showznam db 'Znam = $'
showresult db 'Result = $'
otst db '', 0Dh,0Ah,'$'
chisl db '   ','$'
znam db '   ','$'
result db '   ','$'
nameparA label byte
maxlenA db 4
actlenA db ?
namefldA db 4 dup ('$')

nameparB label byte
maxlenB db 4
actlenB db ?
namefldB db 4 dup('$')

nameparC label byte
maxlenC db 4
actlenC db ?
namefldC db 4 dup('$')

DATA ENDS
STK SEGMENT STACK
db 256 dup('')
STK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STK
START:
mov ax,Data
mov DS,AX

lea dx,enterA
mov ah,09
int 21h

lea dx,nameparA
mov ah,0ah
int 21h

lea dx,otst
mov ah,09
int 21h

lea dx,enterB
mov ah,09
int 21h

lea dx,nameparB
mov ah,0ah
int 21h

lea dx,otst
mov ah,09
int 21h

lea dx,enterC
mov ah,09
int 21h

lea dx,nameparC
mov ah,0ah
int 21h

lea dx,otst
mov ah,09
int 21h
;____________CHISCLITEL____________
    mov ax,22
    idiv namefldC
    mov bl,al
    mov ax,3
    imul namefldB
    mov cx,ax
    mov al,bl
    cbw
    add ax,cx
    cwd
    mov word ptr [chisl],ax
    mov word ptr [chisl]+2,dx

lea dx,showchisl
mov ah,09
int 21h

lea dx,chisl
int 21h

lea dx,otst
int 21h
;____________ZNAMENATEL___________
    mov bx,36
    mov al,namefldC
    cbw
    mov cl,3
    idiv cl
    cbw
    imul namefldA
    sub bx,ax
    mov znam,bx
    mov dx,word ptr [chisl]+2
    mov ax,word ptr [chisl]
lea dx,showznam
mov ah,09
int 21h

lea dx,znam
int 21h

lea dx otst
int 21h
;___________RESULT______________
    idiv [znam]
    mov [result],ax

lea dx,showresult
int 21h

lea dx,result
int 21h

lea dx,otst
int 21h





mov ah,4ch
int 21h

ret
code ends
end

Ответы (0 шт):