Символы в ответе

Я пытаюсь написать программу, которая способна посчитать это выражение (22/c+3*b)/(36-a*c/3). В ответе она выдает символы и, если очень повезет, неверный ответ. В чем может быть проблема? (пишу на tasm)

.model large
DATA SEGMENT
enterA db 'enter A:$'
enterB db 'enter B:$'
enterC db 'enter C:$'
showresult db 'Result = $'
otst db '', 0Dh,0Ah,'$'
result db '   ','$'
num db '   ','$'
denom db '   ','$'

nameparA label byte
maxlenA db 4
actlenA db ?
namefldA db 4 dup ('$')

nameparC label byte
maxlenС db 4
actlenС db ?
namefldС db 4 dup('$')

nameparB label byte
maxlenB db 4
actlenB db ?
namefldB 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



    mov ax,22
    div nameparC
    cbw
    mov bx,ax
    mov al,3
    mul nameparB
    add bx,ax
    cwd
    mov word ptr num,ax
    mov word ptr num+2,dx

    mov al,nameparC
    mov ah,0
    mov bx,3
    div bx
    mul nameparA
    mov cx,36
    sub cx,ax
    mov word ptr denom,cx
    mov dx,word ptr num+2
    mov ax,word ptr num
       idiv denom
       mov word ptr result,ax




mov ah,09
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 шт):