Lécci, Lécci tanícsatok meg programozni
  • Aquli
    #148
    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