Лабы по МПО / lap_1 / c2
.docifndef ??version
?debug macro
endm
publicdll macro name
public name
endm
endif
?debug V 300h
?debug S "..\..\OBSHY\8_SEME~1\METERIAL\PAS_C2.CPP"
?debug C E972BA8D30282E2E5C2E2E5C4F425348595C385F53454D457E315C+
?debug C 4D4554455249414C5C5041535F43322E435050
?debug C E94019CA181B443A5C424F524C414E44435C494E434C5544455C53+
?debug C 5444494F2E48
?debug C E94019CA181B443A5C424F524C414E44435C494E434C5544455C5F+
?debug C 444546532E48
?debug C E94019CA181C443A5C424F524C414E44435C494E434C5544455C5F+
?debug C 4E46494C452E48
?debug C E94019CA181B443A5C424F524C414E44435C494E434C5544455C5F+
?debug C 4E554C4C2E48
?debug C E94019CA181A443A5C424F524C414E44435C494E434C5544455C4D+
?debug C 4154482E48
_TEXT segment byte public 'CODE'
_TEXT ends
DGROUP group _DATA,_BSS
assume cs:_TEXT,ds:DGROUP
_DATA segment word public 'DATA'
d@ label byte
d@w label word
_DATA ends
_BSS segment word public 'BSS'
b@ label byte
b@w label word
_BSS ends
_TEXT segment byte public 'CODE'
?debug C E801282E2E5C2E2E5C4F425348595C385F53454D+
?debug C 457E315C4D4554455249414C5C5041535F43322E+
?debug C 43505072BA8D30
?debug L 6
assume cs:_TEXT
@func$qdrdt2 proc near
?debug B
push bp
mov bp,sp
push si
push di
?debug C E318000200340F04
?debug C E603646678180A0E0000026678180A0C00000178+
?debug C 0F0A040000
mov si,word ptr [bp+12]
mov di,word ptr [bp+14]
?debug B
?debug L 8
fld qword ptr [bp+4]
fmul qword ptr [bp+4]
fmul qword ptr [bp+4]
fld dword ptr DGROUP:s@
fmul qword ptr [bp+4]
fsub
fld1
fadd
fstp qword ptr [si]
?debug L 9
fld dword ptr DGROUP:s@
fmul qword ptr [bp+4]
fmul qword ptr [bp+4]
fsub dword ptr DGROUP:s@
fstp qword ptr [di]
fwait
?debug L 10
pop di
pop si
pop bp
ret
?debug C E601780F0A040000026678180C06000364667818+
?debug C 0C0700
?debug E
?debug E
@func$qdrdt2 endp
?debug L 14
assume cs:_TEXT
@newton$qd proc near
?debug B
push bp
mov bp,sp
sub sp,44
push si
push di
?debug C E601780F0A040000
?debug B
?debug L 16
fld qword ptr DGROUP:s@+4
fstp qword ptr [bp-8]
?debug L 17
mov di,20
?debug L 22
fwait
mov byte ptr [bp-41],0
?debug L 23
xor si,si
@2@58:
?debug L 26
mov ax,si
inc ax
mov si,ax
?debug L 27
fld qword ptr [bp+4]
fstp qword ptr [bp-40]
?debug L 28
fwait
lea ax,word ptr [bp-24]
push ax
lea ax,word ptr [bp-16]
push ax
fld qword ptr [bp+4]
sub sp,8
fstp qword ptr [bp-60]
fwait
call near ptr @func$qdrdt2
add sp,12
?debug L 29
fld qword ptr [bp-24]
fldz
fcompp
fstsw word ptr [bp-44]
fwait
mov ax,word ptr [bp-44]
sahf
jne short @2@114
?debug L 31
mov byte ptr [bp-41],1
?debug L 32
fld1
fstp qword ptr [bp+4]
?debug L 33
mov ax,7
push ax
mov ax,offset DGROUP:s@+12
push ax
fwait
call near ptr _printf
pop cx
pop cx
?debug L 34
jmp short @2@142
@2@114:
?debug L 37
fld qword ptr [bp-16]
fdiv qword ptr [bp-24]
fstp qword ptr [bp-32]
?debug L 38
fld qword ptr [bp-40]
fsub qword ptr [bp-32]
fstp qword ptr [bp+4]
?debug L 39
fld qword ptr [bp-24]
sub sp,8
fstp qword ptr [bp-56]
fld qword ptr [bp-16]
sub sp,8
fstp qword ptr [bp-64]
fld qword ptr [bp+4]
sub sp,8
fstp qword ptr [bp-72]
mov ax,offset DGROUP:s@+32
push ax
fwait
call near ptr _printf
add sp,26
@2@142:
?debug L 41
cmp byte ptr [bp-41],0
jne short @2@226
cmp si,di
jg short @2@226
fld qword ptr [bp-32]
call near ptr N_FTOL@
push ax
call near ptr _abs
pop cx
push ax
fld qword ptr [bp-8]
fmul qword ptr [bp+4]
call near ptr N_FTOL@
push ax
call near ptr _abs
pop cx
pop dx
cmp dx,ax
jle @@1
jmp @2@58
@@1:
@2@226:
?debug L 42
cmp si,di
jle short @2@282
?debug L 44
push di
mov ax,7
push ax
mov ax,offset DGROUP:s@+53
push ax
call near ptr _printf
add sp,6
?debug L 45
mov byte ptr [bp-41],1
@2@282:
?debug L 47
pop di
pop si
mov sp,bp
pop bp
ret
?debug C E6056572726F720202D7FF000169040406000278+
?debug C 310F02D8FF000264780F02E0FF00036466780F02+
?debug C E8FF000266780F02F0FF00036D61780404070003+
?debug C 746F6C0F02F8FF0001780F0A040000
?debug E
?debug E
@newton$qd endp
?debug L 49
assume cs:_TEXT
_main proc near
?debug B
push bp
mov bp,sp
sub sp,8
?debug B
?debug L 51
fld qword ptr DGROUP:s@+90
fstp qword ptr [bp-8]
?debug L 52
fld qword ptr [bp-8]
sub sp,8
fstp qword ptr [bp-16]
fwait
call near ptr @newton$qd
add sp,8
?debug L 53
mov sp,bp
pop bp
ret
?debug C E601780F02F8FF00
?debug E
?debug E
_main endp
?debug C E9
?debug C FA00000000
_TEXT ends
_DATA segment word public 'DATA'
s@ label byte
db 0
db 0
db '@@'
db 149
db 214
db '&'
db 232
db 11
db '.'
db 17
db '>%cERROR: slope zero'
db 0
db 'x=%f, fx=%f, dfx=%f'
db 10
db 0
db '%cERROR: no convergence in %d loops'
db 10
db 0
db '!'
db 176
db 'rh'
db 145
db 173
db 'E@'
_DATA ends
_TEXT segment byte public 'CODE'
_TEXT ends
extrn __turboFloat:word
public _main
extrn N_FTOL@:far
public @newton$qd
public @func$qdrdt2
extrn _abs:near
extrn _printf:near
_s@ equ s@
?debug C EA0509
?debug C E31900000023010000
?debug C EC055F6D61696E191800
?debug C E31A00000023040500
?debug C EB074E5F46544F4C401A00
?debug C E31B00000023010000
?debug C EC0A406E6577746F6E2471641B1800
?debug C E31C00000023010000
?debug C EC0C4066756E63247164726474321C1800
?debug C E31D00000023040000
?debug C EB045F6162731D00
?debug C E31E0B5F657863657074696F6E6C22001E01
?debug C E31F000200150204
?debug C E32009657863657074696F6E1C001E07
?debug C E32100000023040001
?debug C EB075F7072696E74662100
?debug C E60666706F735F740606000673697A655F740A06+
?debug C 000B5F657863657074696F6E6C1E070009657863+
?debug C 657074696F6E200700
?debug C E20004747970650400046E616D651F0004617267+
?debug C 311000046172673210000672657476616C10C022+
?debug C 000000
?debug C E20004747970650400046E616D651F0004617267+
?debug C 310F0004617267320F000672657476616C0FC01C+
?debug C 000000
end