Co nowego na forum?

Nowa domena Newbie 58 minut temu

DnwK dodał komentarz w Studia Warszawa Dzienne/Zaoczne

2 minuty temu Czyli sugerujesz że po WAT będę zarabiał więcej niż po WIT ?

Fantazjatyk dodał komentarz w Życie erotyczne (i nie tylko) programisty

2 minuty temu Jak myślisz, czy warto byłoby napisać system operacyjny działający na JVM?

hollow dodał komentarz w Co junior powinnien umieć?

2 minuty temu Super jak byś wytłumaczył co to NAND'owanie i NOR'owanie.

hollow dodał komentarz w Co junior powinnien umieć?

5 minut temu @HEMIkr: oświecisz mnie do czego jest profesjonalne zastosowanie Javy? :)

Biały Jeleń dodał post w Co junior powinnien umieć?

6 minut temu Nie wiem gdzie to oglądałeś, że programowanie to tylko dodawanie i odejmowanie, bo t...

HEMIkr dodał komentarz w Co junior powinnien umieć?

9 minut temu Programowanie w Javie dla przyjemności . Poznaj podstawy innych jezyków najpierw ora...

Wielki Dzik dodał post w Życie erotyczne (i nie tylko) programisty

14 minut temu Ja nie mam teraz kiepskiego życia! Lubię programowanie, ale seks o wiele bardziej. J...

Trzeźwy Rycerz dodał post w Studia Warszawa Dzienne/Zaoczne

15 minut temu Muszę się w końcu zarejestrować :-) DnwK, ja Ciebie bardzo dobrze rozumiem. Dobrze s...

hollow dodał post w Co junior powinnien umieć?

17 minut temu Up, odświeżę wątek, może ktoś jeszcze napiszę coś merytorycznego

pg2464 dodał komentarz w Studia Warszawa Dzienne/Zaoczne

17 minut temu Proszę Cię, każdy ciągnie do swego, WSTI co to w ogóle jest ? Nie wierzę że jakikolw...

hollow dodał komentarz w Co junior powinnien umieć?

18 minut temu po 1 nie wiesz nawet ile już się nauczyłem, po 2 na pewno nie zajmie mi to na tyle d...

LukeJL dodał post w Dostęp do zmiennej w obiekcie a raczej jego brak.

19 minut temu może nie tyle (nie tylko) o zmiennych lokalnych i globalnych, co o różnych zasięgach...

Złoty Młot dodał post w Co junior powinnien umieć?

25 minut temu Zanim nauczysz się programować pensja programisty będzie wynosić 2 brutto i wtedy za...

loza_szydercow dodał komentarz w Nowe firmy IT w Krakowie

28 minut temu Parę latek to jak pacjent w stanie terminalnym ::D

J0ras dodał post w Formatowanie danych zapisywanych do pliku txt

32 minuty temu hehe, może najpierw zbuduj string, a potem daj string[i] = '+', w miejsca gdzie ma b...

DnwK dodał komentarz w Studia Warszawa Dzienne/Zaoczne

32 minuty temu Możliwe że jest przeciągana nieco na siłę, jednak chciał bym się dowiedzieć ile mogę...

DnwK dodał komentarz w Studia Warszawa Dzienne/Zaoczne

35 minut temu Strona internetowa WIT mówi co innego, podpierając się jakimiś tam badaniami http://...

Patryk27 dodał post w Dostęp do zmiennej w obiekcie a raczej jego brak.

39 minut temu Poczytaj o zmiennych lokalnych i globalnych.

Trzeźwy Rycerz dodał post w Studia Warszawa Dzienne/Zaoczne

42 minuty temu Ale głupia się ta dyskusja zrobiła.

Biały Jeleń dodał post w Życie erotyczne (i nie tylko) programisty

47 minut temu Biały Mleczarz napisał(a): Tylko .jpg i .avi . To nie te czasy, teraz wszędzie mp4,...

Popularne wpisy na mikroblogu

stryku
2017-04-24 21:24

#templejty

  1. Pracuję nad przykładem do ctai v2.0 (ctai - compile time assembly interpreter)
  2. Napisalem kod asm
  3. Nie kompiluje się
  4. Błędy nie mieszczą się w clionowym okienku
  5. Odpalam make z palca z przekierowaniem do out.txt
  6. vim przycina się przy otwieraniu - musi być grubo
  7. ll
  8. Widzę takie coś

Będzie ciekawie dzisiaj

stryku

Komp sam w sobie daje radę, czas to zoptymalizować ;)

J0ras

A można było wrzucić problem na forum :D

mar-ek1
2017-04-23 13:11

5 powodów, za które polubiłem JavaScirpt pracując z nim bardziej amatorsko. Mniej technicznie, a bardziej ideologicznie :P Osób twardo stroniących od JSa nie przekonam, ale niezdecydowanych może :D
http://zajacmarek.com/2017/04/5-powodow-ktore-lubie-javascript/

scibi92

No właśnie, przy takiej ilości framerków to już masakra totalna :D

scibi92

W Javie przynajmniej nie muszę uczyć się nowego co pół roku :P Tak samo jak z tymi narzędziami budowania, masakra...

msm
2017-04-20 22:18

Znudzony abstrakcjami w Javie? Uważasz że C to język wysokiego poziomu? Pisanie w asemblerze jest dla Ciebie za proste? Kod maszynowy czytasz jak prozę, a tablicę opkodów znasz lepiej niż tabliczkę mnożenia?

Może czas zejść poziom niżej?

Przez święta stwierdziłem że koniec z tymi silikonowymi abstrakcjami, i czas stworzyć własne (proste) CPU- przy pomocy FPGA.
Na screenie wynik działania prostego programu, zdefiniowanego przez statyczny RAM:

  signal Memory: MemoryStore := (
    0 => X"0302", -- LDL A, 2
    1 => X"0401", -- LDL B, 1
    2 => X"2334", -- ADD A, B
    3 => X"0E02", -- JMP 02
    others => X"0000"
  );

Kilka słów wytłumaczenia:

  1. Wykonywany program to prosta pętla a=2; while (true) { a += 1}
  2. Architektura jest 16bitowa, czyli rejestry mają po 16 bitów. Co ciekawe, technicznie w mojej architekturze bajty też są 16bitowe (najmniejsza adresowalna jednostka pamięci to 16 bitów!)
  3. Format instrukcji jest bardzo prosty, wręcz trywialny: pierwszy nibble to opcode (typ operacji), drugi to rejestr docelowy, pozostały bajt to albo dwa rejestry źródlowe albo stała:
    0 -> LDL A Imm16 (load low 8 bits of register)
    1 -> LDH A Imm16 (load high 8 bits of register)
    2 -> ADD A B C (A = B + C)
    3 -> SUB A B C (A = B - C)
    4 -> MUL A B C (A = B * C)
    5 -> DIV A B C (A = B / C)
    6 -> XOR A B C (A = B ^ C)
    7 -> OR A B C (A = B | C)
    8 -> AND A B C (A = B & C)
    9 -> CMV A B C (if ((C & FLAGS) != 0) { A = B; })
    A -> LDM A B Imm8 (A = RAM[A + C])
    B -> STM A B Imm8 (RAM[A + C] = B)
  4. Instruction pointer to normalny rejestr (o numerze 14) (tak jak w ARM, inaczej niż w x86), więc zapis do rejestru 0xE jest równoważny skokowi. Jeszcze nie zaimplementowane, ale w planach rejestry to:
    0 -> NULL (jak w MIPS - zawsze zero)
    1-13 -> general purpose registers
    14 -> instruction pointer
    15 -> flags
  5. Procesor zajmuje 5 cykli na opcode (patrz na screenie: state, clock): FETCH -> DECODE -> REGREAD -> ARITH -> WRITEBACK. W planach jest skrócenie tego (format instrukcji jest prosty, więc DECODE jest niepotrzebne) i dodanie superskalarności (wykonywanie 2 instrukcji na raz).
  6. Na potrzeby testów stworzylem też własny RAM - ot, magia FPGA (było to zaskakująco proste). Na drugim (prostszym) screenie, wynik testu RAMu.
  7. Jeśli ktoś się nudzi, kod wrzuciłem na githuba: https://github.com/msm-code/msm-processing-unit. Nie jest to najaktualniejsza wersja, ale przynajmneij działa.

Morał: Można niżej niż asembler. Można niżej niż kod maszynowy. ...czy warto? Na pewno napisanie własnego procesora to ciekawe doświadczenie :P. Nie udało mi się go jeszcze wypalić na fizycznej płytce (posiadam takową - programowalną tylko z tego obrzydliwego xilinxa), razem z memory-mapped IO, ale prędzej czy później...

bednarz

Proszę Cie... o 1... nie wyjeżdżaj z tego kraju :)

alagner

@Alag jeszcze kwestia co kto lubi. Ja akurat pracowałem na jednym i drugim i narzędzia Altery zdecydowanie bardziej mi przypasowały.