Wpis z mikrobloga

@Elph: komputer działa na kodzie maszynowym, czyli po prostu konkretna liczba oznacza jakąś instrukcję, to jest na sztynow w procesorze. Co do architektury to są różne warianty, ale zwykle stosuje jakąś wersję architektury von Neumanna, czyli że mamy długą listę ponumerowanych miejsc na liczby (pamięć) i mamy kilka rejestrów (wydzielone miejsca na liczby), między innymi jest wskaźnik na kolejną instrukcję.

Na początku programista wypełnia pamięć odpowiednimi liczbami (niektóre to dane, inne to zakodowane instrukcje) i ustawia rejestr "wskaźnik" na pierwszą instrukcję programu. Komputer po prostu zakłada, że ta komórka pamięci, na którą wskazuje wskaźnik - to musi być instrukcja, więc ją wykonuje i zwykle przesuwa wskaźnik do przodu na następną komórkę pamięci (chyba, że to była instrukcja skoku - to wtedy skacze gdzie trzeba). I znowu ją wykonuje i tak w kółko, aż program się skończy.

Czyli to od piszącego program zależy, czy komputer nie pójdzie w krzaki, i nie skoczy do jakichś danych i nie spróbuje ich
  • Odpowiedz
@oleorl: No raczej :P
@ntskj: Przeklikałam trochę po Wiki ale dalej mi to niewiele wyjaśnia. Rozumiem, że w tej chwili programy pisane są za pomocą kompilatorów, ale skoro one kompilują do pierwotnej postaci, to skąd komputer rozumie tą pierwotną postać? Jak przeniesiono metodę z dziurkowanych płytek na całkowitą tekstową abstrakcję?
  • Odpowiedz
@Elph: a, chodzi ci o to, jak skompilowano pierwszy kompilator :) ? Odpowiedź - napisano go w assemblerze (bardzo uprosczony język programowania, który się praktycznie mapuje 1 do 1 z kodem maszynowym, tylko jest wygodniejszy, bo zamiast

1f 2a 0b 75 10

jest coś w
  • Odpowiedz
@tell_me_more: Ok, ale takie tłumaczenie zakłada, że komputer dysponuje jakąś inteligencją, a przecież on sam sobie nie "zakłada, że to musi być instrukcja", tylko ktoś mu to założenie wcześniej opisał. Pytanie, w jaki sposób? Może sięgam zbyt głęboko, ale interesuje mnie ten pierwotny kształt, jak ktoś do tego doszedł.
  • Odpowiedz
@Elph: to jest zapisane w procesorze na sztywno - w postaci układów cyfrowych (przerzutników, liczników, rejestrów, bramek logicznych OR, XOR, AND, NAND, NOR, NOT, itp). Żywcem w krzemie jest wypalone :)

Jeśli Cię to interesuje, to polecam elektronikę cyfrową, to jest wbrew pozorom bardzo proste, dużo prostsze, niż normalna elektronika analogowa, bo masz klocki lego i nie trzeba się przejmować napięciami i natężeniami itd - tylko układasz klocki. W kilka
tellmemore - @Elph: to jest zapisane w procesorze na sztywno - w postaci układów cyfr...
  • Odpowiedz
@tell_me_more: Dobra, krzem bardziej do mnie przemawia, ale przeanalizuję to sobie jeszcze na trzeźwo :D bo skoro wypalone to i tak musiało istnieć połączenie co do kształtu i efektu jego zastosowania. Ale żeby to zrozumieć to najpierw muszę rozszyfrować te wszystkie magiczne skróty :P
  • Odpowiedz
@Elph: też miałem takie rozkminy, aż teraz mam to na studiach i zaczyna mi się to jakoś obrazować. Ale wytłumaczyć chyba jeszcze tego bym nie umiał :p ale jakbym próbował to jak koledzy wyżej, że po prostu do procesora jest podawana cyfra i ona oznacza jakąś podstawową komendę. Potem został napisany program, który umie zamienić tekst na komendy, które pokolei ma wykonać procesor. Z dysku odczytywane są te komendy i
  • Odpowiedz
@Elph: Rozumiesz jak działają bramki logiczne?
To teraz pomyśl że taki bardzo prosty procesor ma tych bramek kilka i kilka zakodowanych instrukcji (czyli jak wykorzystywać bramki).

Teraz procesor wykonuje program. W programie ma napisane z numer instrukcji z której ma skorzystać, następnie ewentualnie adres danych z pamięci, które ma wziąć do wykonania instrukcji. I tak linijka po linijce.

Oczywiście to jest bardzo uproszczone.
  • Odpowiedz
@Elph: Dorzucę jeszcze swoje trzy grosze: W komputerze wszystko jest ciągiem znaków, a co jest poleceniem zależy od kontekstu i założeń - inna sprawa co komputer będzie w stanie rozumieć, a rozumie rozkazy których lista wyżej została zalinkowana.
Więc w takiej architekturze von Neumanna trzymamy to wszystko razem: w przeglądarce raczej niedaleko od miejsca w którym jest zapisany sposób postępowania po kliknięciu w link są wszystkie avatary i zdjęcia z wykopu - także od czasów kart perforowanych zbyt dużo się nie zmieniło


Więc jeżeli pytasz czy komputer dysponuje inteligencją do rozróżniania to nie dysponuje absolutnie niczym takim - dla niego wszystko jest
  • Odpowiedz
@Elph: Ładnie wytłumaczył to @RSGApps.

Uwaga poniżej stosuję łopatologię:

Na najniższym poziomie procesor składa się z bramek logicznych. Możesz to sobie wyobrazić koncepcyjnie jako zębatki / albo przekładnie, które w zależności od ustawienia wykonują dane zadanie. Na przykład bramka "or" na wyjściu produkuje prąd "1", jeśli na którymś jej wejściu też jest prąd "1", bramka "and" na wyjściu będzie miała "1", jeśli wszystkie jej wejścia mają "1".
I tak korzystając z tych prostych bramek możesz ułożyć bardziej skomplikowane mechanizmy takie
  • Odpowiedz