Доброго времени суток. можете помочь разобраться с кодом?напишите комментарии к коду.. что это значит и что делает? с преподавателем договарилась что если расскажу эту задачу и отвечу на вопросы из билета, то он мне 4 поставит на экзамене без решения экзаменационной задачи.. уж очень не хочу терять стипендию из-за этого предмета =(
Код:
.model small
.data
a dd 2.0
b dd 4.0
c dd 2.0
D dd ?
mes1 db 'No roots! $'
temp dd 4.0
temp2 dd 2.0
.stack 256h
.code
;Main PROC
main proc
push @data
pop ds
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
finit
; discriminante
; C++:
; D = sqr(b)-4*a*c
fld b
fmul b
fld a
fld temp
fmul
fld c
fmul
fsubp st(1),st(0)
fst D
; <=>
ftst
fstsw ax
sahf
jc j1
jz j2
; D > 0
; X1 = (-b-sqrt(D))/(2*a)
; X2 = (-b+sqrt(D))/(2*a)
finit
fld temp2
fmul a
fld D
fsqrt
fld b
fchs
fsave temp2[4]
frstor temp2[4]
fsubr
fdivr ; first root
frstor temp2[4]
fadd
fdivr ; second root
jmp ex
; D < 0
; !no roots!
j1: mov ah, 09h
mov dx, offset mes1
int 21h
jmp ex
; D = 0
; X = -b/(2*a)
j2: finit
fld temp2
fmul a
fld b
fdivr
fchs ; root
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ex: mov ax, 04C00h
int 21h
main endp
;end of main
end main