Символы в ответе
Я пытаюсь написать программу, которая способна посчитать это выражение (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