Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Assembler u pascalu..

[es] :: Pascal / Delphi / Kylix :: Assembler u pascalu..

[ Pregleda: 3563 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Passwd

Član broj: 54624
Poruke: 640
*.block.alestra.net.mx.



Profil

icon Assembler u pascalu..09.09.2005. u 20:25 - pre 226 meseci
Dal je radio netko, i dal ima netko primjere (ne cisti asm vec bas u pascalu), sto vise primjera, to bolje
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
62.108.102.*

Sajt: https://avramovic.info


+46 Profil

icon Re: Assembler u pascalu..09.09.2005. u 21:34 - pre 226 meseci
pa valjda samo blok zapochinjes sa asm a zavrshavash sa end; ... tako je barem u delphiju

a kod je, logicno, isti kao obican asembler
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

Passwd

Član broj: 54624
Poruke: 640
*.block.alestra.net.mx.



Profil

icon Re: Assembler u pascalu..10.09.2005. u 16:56 - pre 226 meseci
neki primjer?
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
*.smin.sezampro.yu.

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: Assembler u pascalu..10.09.2005. u 17:01 - pre 226 meseci
Code:
function IntToHex(Value: Integer; Digits: Integer): string;
//  FmtStr(Result, '%.*x', [Digits, Value]);
asm
        CMP     EDX, 32        // Digits < buffer length?
        JBE     @A1
        XOR     EDX, EDX
@A1:    PUSH    ESI
        MOV     ESI, ESP
        SUB     ESP, 32
        PUSH    ECX            // result ptr
        MOV     ECX, 16        // base 16     EDX = Digits = field width
        CALL    CvtInt
        MOV     EDX, ESI
        POP     EAX            // result ptr
        CALL    System.@LStrFromPCharLen
        ADD     ESP, 32
        POP     ESI
end;
 
Odgovor na temu

Passwd

Član broj: 54624
Poruke: 640
*.block.alestra.net.mx.



Profil

icon Re: Assembler u pascalu..10.09.2005. u 17:54 - pre 226 meseci
jos da mi radi...probao sam 100 primjera+ovaj i uvijek sve puno greskica..dal treba dodavat kakve varijable??
 
Odgovor na temu

Bojan Kopanja
Bojan Kopanja
Senior Web Developer, ZeusSoftware
Stara Pazova

Član broj: 6155
Poruke: 507
80.93.238.*

ICQ: 346697685
Sajt: www.zeussoftware.rs


Profil

icon Re: Assembler u pascalu..10.09.2005. u 19:02 - pre 226 meseci
Evo neceg malo jednostavnijeg ( ovaj put nije onako veliko kao sto sam ti slao pre ):

Code:

program zabiranje_brojeva;
uses crt;
var s1,s2,r: Integer;
begin
  clrscr;
  write('Unesi prvi sabirak: ');
  readln( s1 );
  write( 'Unesi drugi sabirak: ' );
  readln( s2 );
  asm
    mov ax, s1
    add ax, s2
    mov r, ax
  end;
  writeln( 'Rezultat je: ',r );
  readln;
end.


Eto, mada ne znam sta bi hteo da radis sa ovim . Zar nije jednostavnije napisati
Code:
r:=s1+s2
umesto onog asm bloka?!

[Ovu poruku je menjao Strog dana 10.09.2005. u 20:04 GMT+1]
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
*.smin.sezampro.yu.

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: Assembler u pascalu..10.09.2005. u 19:02 - pre 226 meseci
Moras dodati iznad funkcije i ovu.

Code:
procedure CvtInt;
{ IN:
    EAX:  The integer value to be converted to text
    ESI:  Ptr to the right-hand side of the output buffer:  LEA ESI, StrBuf[16]
    ECX:  Base for conversion: 0 for signed decimal, 10 or 16 for unsigned
    EDX:  Precision: zero padded minimum field width
  OUT:
    ESI:  Ptr to start of converted text (not start of buffer)
    ECX:  Length of converted text
}
asm
        OR      CL,CL
        JNZ     @CvtLoop
@C1:    OR      EAX,EAX
        JNS     @C2
        NEG     EAX
        CALL    @C2
        MOV     AL,'-'
        INC     ECX
        DEC     ESI
        MOV     [ESI],AL
        RET
@C2:    MOV     ECX,10

@CvtLoop:
        PUSH    EDX
        PUSH    ESI
@D1:    XOR     EDX,EDX
        DIV     ECX
        DEC     ESI
        ADD     DL,'0'
        CMP     DL,'0'+10
        JB      @D2
        ADD     DL,('A'-'0')-10
@D2:    MOV     [ESI],DL
        OR      EAX,EAX
        JNE     @D1
        POP     ECX
        POP     EDX
        SUB     ECX,ESI
        SUB     EDX,ECX
        JBE     @D5
        ADD     ECX,EDX
        MOV     AL,'0'
        SUB     ESI,EDX
        JMP     @z
@zloop: MOV     [ESI+EDX],AL
@z:     DEC     EDX
        JNZ     @zloop
        MOV     [ESI],AL
@D5:
end;
 
Odgovor na temu

Passwd

Član broj: 54624
Poruke: 640
*.block.alestra.net.mx.



Profil

icon Re: Assembler u pascalu..10.09.2005. u 20:39 - pre 226 meseci
odlicno, radi, super je, samo tako nastavite..

hvala
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
*.bankerinter.net.



+31 Profil

icon Re: Assembler u pascalu..13.09.2005. u 23:17 - pre 226 meseci

evo ti jedan primer koji eliminise prazan prostor u srtingu.
dobar tutorijal mozes da skines na www.about.com

Function StringBezBlanko(String1:String):string;
var
L,StavrnaDuz:Cardinal;
PUlaz,PResult:PChar;
Rez:String;//U slucaju da dodeljujemo vrednost samom sebi korisiomo ga koao result
begin
L:=Length(String1);
SetLength(Result,L);
SetLength(Rez,L);
PUlaz:=PChar(String1);
PResult:=PChar(Rez);
StavrnaDuz:=0;
asm
PUSH ESI //uzimas prostor u memoriji za ulaz (poenter na string)
PUSH EDI // za izlaz
PUSH EBX //brojac

MOV EDI,PResult //Pokazivac na izlazni string
MOV EBX,L //Brojac U For Petlju
MOV ESI,PUlaz

@@Pocetak: CMP EBX,0
JE @@Kraj //ako je L na nulu izlazimo iz petlje

MOV AL,[ESI] // citamo jedan bajt iz stringa
CMP AL,32 // ako je blanko
JE @@Nastavak //sakacemo na deo koda za obradu
INC StavrnaDuz //ako nije 32 pomeramo pokazivac u memoriju za 1
MOV [EDI],AL// upisujemo u izlaz slovo
INC EDI // pomeramo pokazivac izlaznog stringa za 1

@@Nastavak:INC ESI //ako je npr. s[2]=''
DEC EBX

JMP @@Pocetak

@@Kraj: POP EBX //oslobacamo resurse u vezi je sa PUSH
POP ESI
POP EDI
end;
Result:=Copy(Rez,1,StavrnaDuz);
end;
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Assembler u pascalu..

[ Pregleda: 3563 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.