logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Assembler - Jaki program do pisania i kompilacji zamiast TASM i TLINK?

kubalos2 23 Lut 2015 10:26 4038 12
REKLAMA
  • #1 14468151
    kubalos2
    Poziom 8  
    Posty: 13
    Witam!

    Postanowiłem że zajmę się również innym językiem niż C++ i spróbuje swoich starań w Assemblerze. No to wiadomo wklepałem w google o jakiś kurs i znalazłem.
    http://assembler.ryszki.prv.pl/
    Jednak nie wiem czy tam jest wszystko aktualne, ponieważ nie można tam pobrać
    kompilatora TASM i TLINK. Czy są jakieś inne dobre programy do pisania w assemblerze ? I czy będą one zgodne z tym co pisano w tym kursie ?
    Z góry dziękuję za odpowiedź i jeśli moje pytania są głupie to przepraszam ale jestem początkujący :)
  • REKLAMA
  • #2 14468263
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 300
    TASM i TLINK są częścią pakietu Borland Turbo Assembler.
    Jeżeli kurs jest o tej wersji assemblera, to raczej ciężko będzie zastosować inny kompilator/IDE.

    Nie chcę studzić Twojego zapału, ale w dniu dzisiejszym, assembler ma dość wąskie zastosowanie. Właściwie poza mikrokontrolerami, nie stosuje się assemblera w programowaniu komputerów.
    Zastanów się, czy znajomość czegoś, co powoli odchodzi w zapomnienie, jest Ci do czegoś potrzebna.
  • #3 14468404
    kubalos2
    Poziom 8  
    Posty: 13
    Czyli jedynym wyjściem jest programowanie w C++. Tylko czy języki programowania inne niż Assembler są bardzo związane z procesorem, zajmują mało miejsca i są szybkie, co umożliwia chyba pisanie wirusów.
    Dopiero co w C++ uczę się pętli i nawet w miarę je umiem i wiem, że przede mną jeszcze długa droga dlatego chciałbym wiedzieć czy C++ to dobry wybór, skoro nie assembler.
    Jestem dopiero początkujący ; /
  • #4 14468576
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 300
    Wszystko zależy od tego, co chcesz programować.
    Każdy język, w którym się dobrze czujesz, może być dobrym narzędziem do pisania programów.
    Jak już ustalisz, jakie aplikacje chcesz tworzyć i w jakim środowisku, to wtedy będzie można coś doradzić.
    Bo tak, uczenie się programowania, aby się uczyć, to trochę bez sensu.
  • REKLAMA
  • #5 14469000
    kinggustav
    Poziom 27  
    Posty: 797
    Pomógł: 93
    Ocena: 93
    Dzisiejsze kompilatory produkują już całkiem optymalny kod. Wystarczy trochę pobawić się opcjami i wychodzi prawie to samo co z assemblera, tylko szybciej i czytelniej. Jeżeli będziesz chciał tworzyć bardzo zaawansowane i swiązane ze sprzętem programiki to assembler może się przydać, w normalnych zastosowaniach raczej zbędny. Do tego pamiętaj, że assembler nie jest jednym językiem. Na każdą maszynę (procesor) jest inny, a niektóre są bardzo od siebie odległe. Do tego dochodzą rżne "narzecza", jak to zaproponowane przez Borlanda (nie wiem czy to się przyjęło). Żeby w tym programować trzeba znać język, sam procesor i jego otoczenie, czyli być też choć trochę elektronikiem.
  • #6 14470407
    krru
    Poziom 33  
    Posty: 1819
    Pomógł: 230
    Ocena: 214
    Dzisiaj jedyne sensowne zastosowanie assemblera to małe wstawki do programów w innych językach. Może to dotyczyć jakiś specyficznych rozkazów dotyczących sprzętu (przełączanie trybów CPU, dostęp do jakiś specjalizowanych rejestrów itp) bądź pewne obliczenia łatwiejsze w assemblerze (np. bardzo duże liczby - w assemblerze jest dostęp do przepełnienia, jakieś specjalne rozkazy do DSP itp). Tak więc assembler to raczej dodatek do zastosowań specjalnych, raczej nikt nie pisze kompletnych programów w tym języku, jedynie pojedyncze procedury. Bez sensu jest uczyć się najpierw assemblera - bo będziesz miał więcej pisania by po prostu wyświetlić wynik niż zajmie reszta programu. Proste porównanie - język C to to kilkanaście instrukcji + biblioteka. Assembler to kilkaset instrukcji i koniecznośc znajomości setek funkcji systemu operacyjnego lub setek rejestrów sprzętowych wszystkiego w komputerze (jak piszesz bez systemu).
  • #7 14472459
    kinggustav
    Poziom 27  
    Posty: 797
    Pomógł: 93
    Ocena: 93
    No nie przesadzajmy, nie jest aż tak źle. Systemu operacyjnego nie musisz znać w całości, bo chyba nikt nie używa wszystkich jego funkcji, przynajmniej świadomie. Inna rzecz, ze jak już zaczniesz coś robić to ci się nie spodoba to co daje SO i zechcesz sam napisać jakiś mały kawałek lepiej, zwykle z powodzeniem. Kilka zastosowań assemblera jednak się znajdzie, co nie zmienia faktu, że normalny programista raczej tego robić nie musi. Jest jeden sens poznania assemblera jakiegoś popularnego procesora: to daje wiedzę jak działa cały komputer. Taka wiedza przydaje się podczas programowania w językach wysokopoziomowych, a jeszcze bardziej, gdy jakiś sprzedawca wciska nam kit na temat oprogramowania. Cudów nie ma, na końcu i tak są rozkazy procesora.
    Jak już chcesz coś pisać w Assemblerze to proponuję używać wstawki assemblerowe z jakiegoś innego języka. Coś jak instrukcja inline w starym dobrym Pascalu Borlanda. Takie podejście zmusza do zadania sobie zawsze pytania: po co?
  • #8 14474666
    Integers
    Poziom 13  
    Posty: 131
    Pomógł: 4
    Zastanawiałem się nad tym czy dokładać swoje 2 grosze ale napisze w ten sposób.. jakiś czas temu poznałem kolegę na forum który zaczynał praktycznie w tym samym czasie co ja przygodę z programowaniem. Zaczął od "darmowej" wersji Delphi bodajże Turbo 5 potem starając się być na bieżąco kupił jeszcze ze dwie po drodze a tanie nie są. Teraz jest właścicielem Delphi 6XE gdzie można pisać również aplikacje na urządzenia mobilne. Ma własną firmę i obroty więc wrzucił w koszty.
    Słowem zamiast ślęczeć na internecie i dłubać na piechotę własny kod korzysta z gotowych komponentów, "naparza" programy i narzeka jak wszyscy że w Polsce jest źle. W wakacje był w Turcji, jeździ w Alpy na narty.

    Jak nie masz rodziny na utrzymaniu i ktoś Cie sponsoruje to baw się w asemblera a i tak po roku pisania stwierdzisz że zmarnowałeś rok czasu. Bo Ty w ciągu roku nie zarobisz tego co ten kolega przez miesiąc.

    Kiedyś jak jeszcze byłem na studiach tłumaczył nam wykładowca od programowania, spróbuję przytoczyć "że próbował robić system do obsługi dysków, bootsektory, tablice, własną obsługę FAT i mówi.. siedziałem przez 2-3 miesiące po pracy, zrobiłem szablon programu.. uruchamiam a mój program widzi tylko kawałek dysku bo dysk jest za duży .. a gdzie jeszcze Fat32 i inne.. dałem sobie spokój."

    W ostatecznym rozrachunku weź pod uwagę, że teraz jest bum na urządzenia mobilne i internet. Zakładam ze znasz język angielski a jak nie znasz to się naucz a potem myśl o programowaniu.

    Przepraszam jeśli wypowiedź jest w zbyt dosadnym tonie ale mówię Ci tak jakby ja chciał żeby mi ktoś kiedyś wytłumaczył. Bo teraz programuję hobbistycznie a kasa której nie zarobiłem.. mogę sobie tylko mieć za złe :]

    Pozdrawiam

    edit:
    W miedzy czasie przemyślałem i dorzucę:

    Co do wstawek asemblera to jak najbardziej ale jeśli programowanie głównie pod Windowsa to zapewne skorzystasz z WinAPI. Jednak jak wcześniej pisałem lepiej sobie zrobić zaplecze, obstawić się silnikami i gotowymi darmowymi rozwiązaniami również do użytku komercyjnego a potem jak już nie będziesz wiedział co z czasem zrobić i z kasą wtedy można się bawić w rzeźbienie ale jeśli będziesz miał gotowce to łatwiej Ci będzie to przerobić na asemblera bo przez deasemblację.
    Wtedy to miało by sens to by była wisienka na torcie. A jak zaczniesz od asemblera to będziesz miał wisienkę a kiszki będą marsza grały.
  • REKLAMA
  • #9 14475136
    kinggustav
    Poziom 27  
    Posty: 797
    Pomógł: 93
    Ocena: 93
    Niby masz rację, ale ... No właśnie. Jak wcześniej pisałem nie widzę sensu pisania dużych programów w assemblerze. Tego nikt nie robi (chyba) i są powody, ze tak jest. Warto natomiast wiedzieć choćby pobieżnie jak to wszystko działa, co jest możliwe, a co nie. Dopóki radykalnie nie zmieni się technologia to ta wiedza jest aktualna. Nie przeszkadza wprowadzenia procesorów 32 bitowych czy 64 bitowych, wiedząc jak działał stary 8086 wiesz już dużo i dużo możesz wywnioskować.
    A ten twój wykładowca był jakiś niecierpliwy. To sie naprawdę daje zrobić, choć dziś to już nie wiem po co. Sam kiedyś zrobiłem kawałek kodu, który był wykorzystywany w gotowym udządzeniu, też okolice dysku i bootowania. Frajda jest jak już działa, gorzej z kasą choć nie narzekałem. Dziś z pewnością nie byłby to już assembler, wtedy niczego innego nie miałem.
    Mogę sobie wyobrazić, że ktoś taki zajmie się programowaniem (albo lepiej budowaniem) urządzeń opartych na mikrokontrolerach (kto wymyślił to słowo) i też zrobi niezłą kasę.
    Z assemblerem jest podobnie jak z aplikacją: można napisać na zamowienie, ale taniej kupić gotową. Więc jak sobie odpowiesz na pytanie "po co" to się ucz albo nie. :-)
  • REKLAMA
  • #10 14475455
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14790
    Pomógł: 659
    Ocena: 12935
    Assemblera nie warto jest się uczyć ze względu na koszty. To samo można napisać w C w mniejszym czasie. Assembler ma tylko specyficzne zastosowania.
    Pomogłem? Kup mi kawę.
  • #11 14475653
    kubalos2
    Poziom 8  
    Posty: 13
    Czyli jedynym wyjściem będzie zostanie przy C++ i zrobić w nim coś sensownego :)
  • #12 14483768
    Hyde911
    Poziom 24  
    Posty: 752
    Pomógł: 57
    Ocena: 18
    Jeśli chcesz spróbować czegoś ciekawego to proponuję zainteresować się jakimś językiem czysto funkcyjnym, np Haskell.

    Tak ja koledzy napisali Assembler wykorzystywany w specyficznych dziedzinach. Ale uczy się go na studiach ponieważ pomaga zrozumieć jak pracuje procesor.
  • #13 14485766
    kubalos2
    Poziom 8  
    Posty: 13
    A tak swoją drogą jak powstają silniki do gier ?
    No bo programiści musieli napisać w jakimś języku ten silnik na którym działała by gra jak np. sławny Frostbite albo CryEngine.

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono temat alternatywnych kompilatorów do TASM i TLINK w kontekście nauki programowania w assemblerze. Użytkownicy zwracają uwagę, że TASM i TLINK są częścią pakietu Borland Turbo Assembler, co może ograniczać możliwość użycia innych narzędzi. Wskazano, że assembler ma wąskie zastosowanie, głównie w programowaniu mikrokontrolerów, a w codziennym programowaniu bardziej efektywne są języki wysokiego poziomu, takie jak C++. Uczestnicy podkreślają, że znajomość assemblera może być przydatna do zrozumienia działania procesora, ale nie jest konieczna do pisania dużych aplikacji. Proponowane są również inne języki, takie jak Haskell, jako alternatywy do nauki programowania.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA