x-kom hosting

[Asembler] Poczatek przygody

Collatzo
utworzono
utworzono (edytowane)

Witam,
chciałem zacząć przygodę z asemblerem. Znalazłem często polecany link: http://rudy.mif.pg.gda.pl/~bogdro/ oraz czytam Wikibooks. Mam dosyć specyficzny problem. A mianowicie ściągnąłem sobie NASMa i zastanawiam się jak go w ogóle używać... Co zrobić aby móc wprowadzać kod programu itd.

Dodatkowo jeżeli znacie jakieś dobre książki traktujące od podstaw kurs ASM, to bym prosił o tytuły itp. W przyszłości chciałbym go wykorzystywać go do programowania mikroprocesorów itp., ale na razie interesuje mnie zapoznanie się z samymi podstawami języka.


Od razu zaznaczam, że nie oczekuję tekstów typu "człowieku po co się uczysz tego badziewia".

antos
komentarz
komentarz

Jeżeli chciałbyś się nauczyć Asemblera i wykorzystywać go do programowania mikroprocesorów/mikrokontrolerów to polecam zacząć od programowania na rodzinie MCS-51, a na sam początek starawego już 8051. Tylko, żeby dobrze programować w asemblerze trzeba znać architekturę wewnętrzną danego mikroprocesora.
Trzeba wiedzieć jakie rejestry w nim siedzą pod jakimi adresami.

Na początek proponuję książkę braci Gałka "Podstawy programowania mikro-kontrolera 8051. Pracownia systemów mikroprocesorowych na bazie DSM-51"
DSM 51 to nic innego jak Dydaktyczny system mikroprocesorowy. Produkt firmy MicroMade, czyli 8051 opakowany w ładną obudowę z dodatkowymi pierdołami, żeby tego za szybko nie zepsuć. Niestety jest dość drogi, a podręcznik można dostać bez problemu. Dlatego zamiast kupować cały DSM to radziłbym użyć symulatora o swojskiej nazwie Jagoda.

  • Dobra wypowiedź 1
Collatzo
komentarz
komentarz

Dzięki wielkie za odp. Już ściągnąłem Jagodę. Ten ekran co pojawia się zaraz po uruchomieniu, to już jest miejsce na pisanie kodu (niewymagana jest konfiguracja sprzętowa, na której chce programować itp.)?

W najbliższym czasie lecę do biblioteki i biorę książkę Gałków :)

antos
komentarz
komentarz

Trochę od złej strony bierzesz się za to programowanie. Najpierw książkę by Ci się przydało przeczytać, a dopiero potem programować. Bo obecnie jeszcze na pewno niewiele wiesz o architekturze 8051. Książki (a właściwie podręcznika) nie dostaniesz w bibliotece, ponieważ jest to typowy podręcznik wykorzystywany do uczenia w Technikum i na Studiach. Swoją drogą bardzo dobrze napisany.
Na razie poczytaj to: http://lodd.p.lodz.pl/kwbd/mikrokontroler.htm żebyś wiedział przynajmniej na jakie rozkazy reaguje owy kontroler.

Obsługa Jagody jest banalna.
Jak już ją uruchomisz to dajesz plik >nowy
I otworzy Ci się zwykły edytor tekstu.
Zaraz po uruchomieniu pokazuje się okienko z nazwiskami twórców itp. Klikasz OK i pokaże Ci się program właściwy. Na początek będziesz miał otwarte różne okna (klawiatura matrycowa, klawiatura sekwencyjna, wyświetlacz 7-segmentowy, wyświetlacz ciekłokrystaliczny) a jak klikniesz plik>nowy to Ci się dodatkowo otworzy prosty edytor tekstu.

Na próbę żebyś widział jak mniej-więcej to działa i jaka jest składnia kodu napiszę Ci prosty program który będzie zapalał i gasił diodę.


DIODA EQU P1.7
ORG 0000H
AJMP START
ORG 100H
START:
CLR DIODA
MOV A,#10
LCALL DELAY_100MS
SETB DIODA
MOV A,#10
LCALL DELAY_100MS
AJMP START

Wkleisz to do tego edytora, a następnie klikniesz Uruchom>uruchom

  • Dobra wypowiedź 1
Collatzo
komentarz
komentarz (edytowane)

[quote name='antos' date='01 maj 2010 - 13:00' timestamp='1272711763' post='1018325']
Trochę od złej strony bierzesz się za to programowanie. Najpierw książkę by Ci się przydało przeczytać, a dopiero potem programować. Bo obecnie jeszcze na pewno niewiele wiesz o architekturze 8051. Książki (a właściwie podręcznika) nie dostaniesz w bibliotece, ponieważ jest to typowy podręcznik wykorzystywany do uczenia w Technikum i na Studiach. Swoją drogą bardzo dobrze napisany.[/quote]
Pewnie masz rację. Czy w tej poleconej przez Ciebie książce jest to dokładnie opisane czy powinienem się dodatkowo zapoznać z inną literaturą o tym traktującą? Tak się składa, że jestem studentem, ale nie mam tego na studiach, więc samemu chciałem się nauczyć, a książeczka w bibliotece leży i (na mnie) czeka :P Wolę wersje papierowe książek, bo czytanie z monitora jest uciążliwe.

[quote name='antos' date='01 maj 2010 - 13:00' timestamp='1272711763' post='1018325']Na próbę żebyś widział jak mniej-więcej to działa i jaka jest składnia kodu napiszę Ci prosty program który będzie zapalał i gasił diodę. [/quote]
Działa, dzięki. Po prostu nie miałem domyślnie wyświetlonej diody i innych przyrządów, ale na szczęście poziom skomplikowania obsługi jest na tyle niski, że nie powinienem mieć z tym problemów (no i jest rozbudowana pomoc).

antos
komentarz
komentarz

Nie ma tam informacji jakoby należało się zapoznać z inną literaturą.
Pierwszy rozdział książki traktuje ogólnie o mikroprocesorach i o strukturze DSM, bo normalnie 8051 to zwykły układ scalony do którego trzeba sobie samemu wszystko podłączyć, a DSM to 8051 z podłączonymi bajerami żeby człowiek się sam nie musiał męczyć z projektowaniem i składaniem tego wszystkiego. Następnie książka jest podzielona na kilkanaście lekcji. Każda lekcja traktuje o innym zagadnieniu i na przykładzie pokazuje jak to wykorzystywać. Niestety nie wiem jak by to wyglądało gdybym był zielony i dostał tą książkę do ręki, bo cykl nauczania w technikum przewidział, że najpierw cały rok się uczyłem w teorii o architekturze 8051, a dopiero po tym nauczyli mnie programować, więc dużo z tego mi odeszło, bo już wiedziałem co i jak działa w tym uC.
Ja bym jednak najpierw radził poczytać co nieco o tym uC. Tylko, że w necie są same suche rzeczy z których początkujący nie wyciągnie nic, a podręcznika do układów mikroprocesorowych nie miałem. Z tym, że ja się o tym uczyłem bardziej od strony elektronicznej. Poszukaj necie, na pewno coś znajdziesz.

rafalluz
komentarz
komentarz

Kompletny zestaw instrukcji do 8051:

http://www.win.tue.nl/~aeb/comp/8051/set8051.html#51mov

Akurat miałem pod ręką. Na bazie tego pisałem symulator swego czasu. Bardzo prosty z prościutkim "debuggerem". Jak chcesz, mogę udostępnić.

antos
komentarz
komentarz

Tylko, że lista rozkazów nie przyda się gdy się nie zna chociaż pobieżnie architektury danego uC. No i zapomniałbym o świętości jeżeli chodzi o programowanie w asemblerze - 4 tryby adresowania, które trzeba umieć przez sen wymienić.

@rafał

Co do symulatora, to ja chętnie przetestuję

  • 1 miesiąc później...
Collatzo
komentarz
komentarz (edytowane)

Ze względu na niedobór czasu, nie miałem okazji dokładnie się zapoznać z asm, a w międzyczasie zmieniłem system operacyjny. Postanowiłem odświeżyć trochę wątek, gdyż mam pytania. Czy istnieje coś podobnego do 'Jagody', tyle że do AVR-ów? Fajnie by było gdyby było pod Linux-a, ewentualnie windowsowego, to spróbuję sobie puścić na Wine lub uruchomię windę. Dużo szukałem i pomyślnie udało mi się odpalić VMLAB, jednak obsługuje to wyłącznie język C.


I jeszcze pytanie odnośnie książki: "AVR i ARM7. Programowanie mikrokontrolerów dla każdego" (tu przykładowy opis: http://merlin.pl/AVR-i-ARM7-Programowanie-mikrokontrolerow-dla-kazdego_Pawel-Borkowski/browse/product/1,780188.html ) Jak myślicie czy będzie to pomocna pozycja na początek? No i w opisie widzę, że zawiera ona wiele języków tj, asemblera, C, Bascoma i Pascala. Zastanawia mnie czy jeżeli coś jest do wszystkiego, to czy nie jest do niczego?

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.