eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingasm/c grrrrreatRe: asm/c grrrrreat
  • Data: 2011-11-06 08:53:00
    Temat: Re: asm/c grrrrreat
    Od: "Bogdan (bogdro)" <b...@p...gazeta.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 05.11.2011 20:43, fir pisze:
    > jestem zadowolony (pewnie do czasu az natkne sie na jakas
    > przeszkode) bo udalo mi sie napisac proste add w sse
    > i dziala, tylko mam pewne watpliwosci co do sposobu
    > przekazywania parametrow
    >
    > ;implementacja "int __cdecl asm_add_float4vectors_sse(float4* a, float4* b,
    > float4* ret);"
    >
    > asm_add_float4vectors_sse:
    >
    > enter 0,0
    >
    > mov eax,[ebp+8] ; first argument
    > mov ebx,[ebp+12] ; second argument
    > mov ecx,[ebp+16] ; third argument
    >
    > movups xmm0, [eax]
    > movups xmm1, [ebx]
    > addps xmm0, xmm1
    > movups [ecx], xmm0
    >
    > leave
    > ret
    >
    > czy powinno sie uzywac __cdecl - i czy to wogole jest poprawnie?

    Skoro używasz kompilatora C, to domyślnie konwencja wywołania jest
    dla języka C, więc nie trzeba pisać "__cdecl". Ale nie zaszkodzi.
    Co do kodu - funkcjonalnie wygląda poprawnie, ale może "nie dogadać"
    się z programem pisanym w C. Musisz zachować i przywrócić zawartość
    rejestru EBX lub skorzystać z takiego, który wolno zamazać, np. EDX.
    Poczytaj o konwencjach wywołań ("calling conventions").
    Pewnie dałoby się też wnętrze funkcji skompresować do 3 instrukcji:

    movups xmm0, [eax]
    addps xmm0, [ebx]
    movups [ecx], xmm0

    Ale to kwestia optymalizacji, a nie funkcjonalności.

    --
    Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS)
    Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
    Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
    www.Xiph.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

  • 06.11.11 10:05

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: