Hello! Nem tudja vki, hogy ez a két progi miért nem mûködhet?
Ennek az elsõ 100 négyzetszámot kéne kiírnia:
{$N+}
program negyzet;
const n=100;
var a : single;
i,sz : integer;
begin
asm
push di
lea di,a
finit
mov cx, 1
@cimke:
mov si, cx
fld Dword Ptr[si]
fld Dword Ptr[si]
fmul
fadd
inc cx
cmp cx, 100
jne @cimke
fstp Dword Ptr ds:[di]
pop di
end;
writeln('Az elso ',n,' négyzetszám összege asm-el : ',a);
for i:=1 to n do sz:=sz+sqr(i);
writeln('Az elso ',n,' négyzetszám összege: ',sz);
end.
Ennek meg 150-et kéne elosztania 10-el:
{$N+}
program mm_m;
uses crt;
var m : single;
begin
asm
push es
push di
les di,m
finit
mov si,150
fld Dword Ptr[si]
mov si,10
fld Dword Ptr[si]
fdiv
fstp Dword Ptr es:[di]
pop di
pop es
end;
writeln('150 dm= ',m);
end.
Meg tudnátok nézni miért nem jó?
Márk