i funkcja Ackermana ?



Widzisz wersję archiwalną tematu "i funkcja Ackermana ?" z forum pl.comp.programming





Marcin - 31 Paź 2004, 03:54

Witam !

Czy widział ktoś może implementację tego algorytmu w Assemblerze ? Bardzo mi
jest to potrzebne na wykład z Podstaw syst. op. Znalazłem w sumie tylko to, ale
komentarze są po niemiecku i nie za bradzo rozumiem, nawet czy to jest to ??

http://www.fh-wedel.de/~bek/asm/uebws03/ueb06c.html

na dodatek potrzebowałbym to w jak najprostszej postaci, a tutaj jak widzę są
jakieś zabezpieczenia stosu itd, a ja potrzebuje sam algorytm na czysto



Damian Sobota - 31 Paź 2004, 07:29

Witam !

Czy widział ktoś może implementację tego algorytmu w Assemblerze ? Bardzo
mi
jest to potrzebne na wykład z Podstaw syst. op. Znalazłem w sumie tylko
to, ale
komentarze są po niemiecku i nie za bradzo rozumiem, nawet czy to jest to
??

http://www.fh-wedel.de/~bek/asm/uebws03/ueb06c.html

na dodatek potrzebowałbym to w jak najprostszej postaci, a tutaj jak widzę

jakieś zabezpieczenia stosu itd, a ja potrzebuje sam algorytm na czysto



Google wypluło mi to:

http://www.nist.gov/dads/HTML/ackermann.html

oraz na jakies stronie znalazłem kod w C:

unsigned int Ack(unsigned int x, unsigned int y)
{
    return (x0) ? Ack(x-1, (y0) ? Ack(x, y-1) : 1 ) : y+1;

}



Zapisanie tego w asmie nie powinno Ci sprawić problemów.

I w ogóle przeszukaj Google pod hasłem Ackerman('s) Function.


seeman...@o2.pl - 31 Paź 2004, 09:39

Google wypluło mi to:

http://www.nist.gov/dads/HTML/ackermann.html

oraz na jakies stronie znalazłem kod w C:

unsigned int Ack(unsigned int x, unsigned int y)
{
    return (x0) ? Ack(x-1, (y0) ? Ack(x, y-1) : 1 ) : y+1;
}

Zapisanie tego w asmie nie powinno Ci sprawić problemów.

I w ogóle przeszukaj Google pod hasłem Ackerman('s) Function.



Inplementację w C znam dobrze, jednak o asmie nie mam pojęcia :( więc jest


Damian Sobota - 31 Paź 2004, 10:00

| Google wypluło mi to:

| http://www.nist.gov/dads/HTML/ackermann.html

| oraz na jakies stronie znalazłem kod w C:

| unsigned int Ack(unsigned int x, unsigned int y)
| {
|     return (x0) ? Ack(x-1, (y0) ? Ack(x, y-1) : 1 ) : y+1;
| }

| Zapisanie tego w asmie nie powinno Ci sprawić problemów.

| I w ogóle przeszukaj Google pod hasłem Ackerman('s) Function.

Inplementację w C znam dobrze, jednak o asmie nie mam pojęcia :( więc jest



Wydaje mi się, że do implementacji tej funkcji w assemblerze nie potrzeba
żadnej zaawansowanej wiedzy. Wystarczy tylko kilka instrukcji, np. call,
mov, j** (warunki), ret, pop, push itp.

Znajdź jakiś kurs asma (w google jest tego pełno, również po polsku), a
poradzisz sobie. To nie jest trudne.



Łukasz Nowicki - 31 Paź 2004, 11:02

Czy widział ktoś może implementację tego algorytmu w Assemblerze ?



Ackermann Proc  Near C, m:dword, n:dword

          Inc  eAx

          Dec     eCx
          invoke  Ackermann, eCx, 1

          Dec     Cx
          invoke  Ackermann, m, eCx
          Mov     eCx, m
          Dec     eCx
          invoke  Ackermann, eCx, eAx

          Ret
Ackermann Endp

Dla wywołania np. Ackermann(3,2), należy: invoke  Ackermann, 3, 2


Piotr Wyderski - 31 Paź 2004, 11:14


Inplementację w C znam dobrze, jednak o asmie nie mam pojęcia :( więc jest



Tak, kompilator: gcc -S

    Pozdrawiam
    Piotr Wyderski


Damian Sobota - 31 Paź 2004, 11:58



| Inplementację w C znam dobrze, jednak o asmie nie mam pojęcia :( więc
jest

Tak, kompilator: gcc -S



To może od razu ostrzec kolegę, że to i tak nie będzie asm pod Intele?


Piotr Wyderski - 31 Paź 2004, 12:05


To może od razu ostrzec kolegę, że to i tak nie będzie asm pod Intele?



A pod co? :-)

    Pozdrawiam
    Piotr Wyderski


Marcin - 31 Paź 2004, 15:27

| Czy widział ktoś może implementację tego algorytmu w Assemblerze ?

Ackermann Proc  Near C, m:dword, n:dword

          Inc  eAx

          Dec     eCx
          invoke  Ackermann, eCx, 1

          Dec     Cx
          invoke  Ackermann, m, eCx
          Mov     eCx, m
          Dec     eCx
          invoke  Ackermann, eCx, eAx

          Ret
Ackermann Endp

Dla wywołania np. Ackermann(3,2), należy: invoke  Ackermann, 3, 2



Dzięki :) A invoke to coś takiego jak Call ??


Damian Sobota - 1 Lis 2004, 07:23



| To może od razu ostrzec kolegę, że to i tak nie będzie asm pod Intele?

A pod co? :-)



Czepiasz się słówek :). Wiesz dobrze, że chodziło mi, że to nie jest asm w
składni Intelowskiej, tylko AT&T.


Piotr Wyderski - 1 Lis 2004, 07:59


Wiesz dobrze, że chodziło mi



Nie, nie wiem dobrze, nie siedze w Twojej glowie.

że to nie jest asm w składni Intelowskiej, tylko AT&T.



No i co z tego, skoro ta ostatnia jest nawet lepsza?
I -- jak zauwazyles -- jest to tylko skladnia; asembler
tak czy inaczej bedzie na rodzine IA-32...

    Pozdrawiam
    Piotr Wyderski


Damian Sobota - 1 Lis 2004, 11:17






A to już kwestia gustu. OT.

I -- jak zauwazyles -- jest to tylko skladnia; asembler
tak czy inaczej bedzie na rodzine IA-32...



Dobrze. Ale mam do Ciebie, Piotrze, pytanie (bo widzę, że jesteś chyba
najlepiej zorientowany w tych kwestiach na grupie). Mianowicie, czy znasz
jakieś dobre opracowanie, powiedzmy swoiste wprowadzenie, które pozwoliłoby
mi na zorientowanie się ogólnie w architekturach, assemblerach etc.? Tak
żeby ta tematyka nie była już dla mnie jak za mgłą :). Nie musi być w języku
polskim, może być po angielsku (dobrze by było, gdyby to była pozycja
książkowa, chociaż strona internetowa też nie zaszkodzi).


Piotr Wyderski - 1 Lis 2004, 12:07


Mianowicie, czy znasz jakieś dobre opracowanie, powiedzmy
swoiste wprowadzenie, które pozwoliłoby mi na zorientowanie
się ogólnie w architekturach, assemblerach etc.?



To zalezy czego konkretnie bys sie chcial dowiedziec: jakie sie formalnie
rozroznia architektury komputerow, jak sie projektuje strukture wewnetrzna
danego ukladu w zaleznosci od jego przewidywanych zastosowan, jak sie
analizuje istniejace systemy -- to wszystko sie miesci w Twoim pytaniu,
a sa to zupelnie rozne rzeczy. Do kazdego z nich moge Ci podac troche
literatury, ale takie ogolne wprowadzenie, to beda:

1. Biernat J., "Architektura komputerow" -- znajdziesz w niej sporo
na temat budowy wewnetrznej maszyn cyfrowych opisane w dosc
ogolny sposob.

2.  Flores I., "Arytmetyka maszyn cyfrowych" -- ta ksiazka jest
poswiecona implementacji jednostek arytmetyczno-logicznych,
jest bardzo szczegolowa -- sztuczki, kruczki i inne sprytne chwyty.

3. Jest bardzo dobry, stary skrypt Politechniki Wroclawskiej,
ale nie moge sobie teraz przypomniec jego tytulu, w czwartek
rzuce okiem na polke.

Jesli interesuje Cie dosc szczegolowe wprowadzenie do rzeczywiscie
istniejacych architektur rownoleglych, to polecam dwie ksiazki Horda:

1. "Parallel Supercomputing in SIMD Architectures",
2. "Parallel Supercomputing in MIMD Architectures".

Te ksiazki mi sie tak na szybko przyszly na mysl, jesli chodzi
o dosc klasyczne architektury sprzetowe. Jesli interesuja Cie
rowneiz mniej klasyczne (np. komputery macierzowe i wektorowe),
albo zupelnie nieklasyczne (jak komputery przeplywowe, gdzie
praktycznie nie istnieje cos takiego, jak program w klasycznym
rozumieniu), to tez by sie cos ciekawego znalazlo.

BTW, asembler to rzecz wtorna wzgledem architektury; jesli
bedziesz znal architekture, to sie szybko nauczysz jej jezyka
wewnetrznego, w przeciwna strone to niestety nie dziala tak
wydajnie. Dlatego skup sie raczej na budowie wewnatrznej
danego ukladu, a asembler zawsze zostawiaj sobie na koniec.

    Pozdrawiam
    Piotr Wyderski

C, zmienna w funkcji 'system()'
LNK2019 error: Typ Wyliczeniowy 'enum' dla funkcji klasy C++ pod VS2005
ES:BX w funkcji EXEC przerwania 21h (asembler x86)
C++, wskazniki do funkcji skladowej innej klasy, pytanie
  • mapa geologiczna sudetow
  • 11 12 03 vilno cacib 400
  • rejestracja strony www
  • prasa w stargardzie szczecinskim
  • download;swords;and;sandals;2
  • co to poomocy
  • sitemap 9
  • ogromne czlonki
  • wwwdzwonki polifoniczne za 1
  • Katalog wypowiedzi z for internetowych ^^ Strona Główna