http://obrazki.elektroda.pl/4029783300_1... Układu SID (6581 stary i 8580 nowy), będącym muzyczną orkiestrą komputera Commodore 64 nie trzeba nikomu przedstawiać – między innymi dzięki jego brzmieniu owa maszyna osiągnęła tak dużą popularność. Warto tylko przypomnieć, że SID ma jedynie trzy kanały, ale umiejętności programistów...
Akumulator to tylko nazwa rejestru. Potrafił akumulować wyniki z ALU i był docelowym rejestrem do której zapisywany był wynik operacji. Obecnie wyniki mogą być zapisane do dowolnego rejestru z pewnej grupy rejestrów, więc nadaje się im po prostu nazwy R0..R31. Jeżeli, któryś z nich dodatkowo spełnia jakąś funkcję to nadaje się mu ekstra nazwę. Nazwa...
Na pewno na pierwszym miejscu jest zestaw instrukcji. Na przykład możliwość łatwego adresowania tablic obiektów o rozmiarze większym niż 1 bajt powiedzmy w ARM, czy w MC68020 i wyższych, lub na przykład wykonywanie operacji na 16 i więcej bitach za pomocą instrukcji operujących na danych ośmiobitowych (dodawanie, odejmowanie, porównanie itd. z propagacją...
Procedura zerowania RAM: [syntax=asm] MOVR0,#8 MOVR1,#247 ZEROWANIE: MOV(at)R0,#0 INCR0 DJNZR1,ZEROWANIE [/syntax] Zmień sobie wartość którą wypełniasz :-) Tylko uwaga na obszary. Zauważ że "oszczędzam" tylko pierwszy bank rejestrów bo tam są umieszczone R0 i R1, które używam do czyszczenia RAM. A instrukcja MOV A,(at)A+DPTR odczytuje do akumulatora...
a) OK -> SFR dokładniej pod adresem E0H (ACC dla 8051) b) NIE -> stała liczba dziesiętna 121 pod adres 00h (czyli do rejestru R0) c) rozumiem, że są tu dwie instrukcje? Pierwsza ładuje liczbę do rejestru a druga zapisuje pod adres wskazywany przez R0 stałą 121. Czyli 121 zapisane pod adresem RAM 0AH (czyli 10 w systemie dziesiętnym) d) to samo co w...
hmmm generalnie to dopiero zaczynam się bawić w uP, ale wg moich informacji wygląda to tak: aby port szregowy spełniał te kryteria należy odpowiedniu ustawić rejestr SCON, czyli potrzebujesz mode 1(Transmisja szeregowa asynchroniczna slów 8-bitowych, przy czym szybkosc ustalana jest programowo) oraz ustawić ren na 0 (wyłączenie nadawania), reszta bitów...
taki sposób deklaracji jest jak najbardziej poprawny, jest nawet pod pewnymi względami lepszy, bo nie deklarujesz adresu każdej zmienej z osobna, więc pomiędzy już zadeklarowane zmienne możesz "wcisnąć" następne bez potrzeby zmiany reszty. W pamięci rozkłada się to tak, że DSEG AT 01H ustawia Ci licznik adresu zmiennych (a właściwie to symboli, bo widzę,...
Jeśli to pierwsze makro to miało być _SFR_ IO _ADDR to wyjaśnienie jest następujące : w plikach nagłówkowych avr-lib wszystkie rejestry specjalne zdefiniowane są adresami w przestrzeni adresowej pamięci. Jak ktoś używa asemblera, to do instrukcji typu in, out, cbi, sbi, ... potrzebne są mu adresy w przestrzeni wejścia-wyjścia i to makro zamienia jedne...
A po co na ISA są przewody SMEMR i SMEMW ? powiększona liczba przewodów adresowych służy do adresowania pamięci na karcie ISA a nie rejestrów IO. sprawdź czy piny SMEMR i SMEMW są podłączone, jak tak to sprawa jest oczywista - rzutowanie na pamięć RAM. [Hm.. 16 bitowych danych nieda sie odczytywać z ramu.. no to niewiem..]
Najlepiej użyć do tego jeden z rejestrów indeksowych (R0, R1). Najpierw ustawiasz sobie adres bufora RAM, w rejestrze np. R0: MOV R0,#50 ;WPISZ DO REJESTRU INDEXOWEGO ADRES RAM W programie obsługi przerwania od szeregowego piszesz: MOV (at)R0,SBUF ;ZAPISZ ODEBRANY BAJT DO RAM INC R0 ;ZWIEKSZ ADRES RAM CJNE R0,#58,PR_GOTOWE ;JESLI TO BYL 8 BAJT, TO GOTOWE...
grko napisał: IMO nieprawda a czy Xmegi przypadkiem nie mapuja przypadkiem eepromu do data memory ? Tak, w tym przypadku można włączyć mapowanie EEPROM do SRAM, co ma też tą zaletę, że można programować EEPROM stronami (co bywa nawet 32x szybsze niż programowanie komórka, po komórce). Wiem, że w niektórych uC występuje interfejs XMEM, który obsługuje...
Witam Mam problem z zaadresowaniem rejestrów TIMER3 w ATMega 162. Piszę obsługę przerwań w asemblerze i każda próba adresowania rejestrów o adresach powyżej 3F kończy się błędem zgłaszanym przez kompilator. jeśli użyję LDS kompilator wyrzuca komunikat "number must be less than 32" jeśli użyję IN kompilator z kolei "number must be less than 64" . Błędy...
Witam wszystkich Dopiero zaczynam programować w języku asemblera (w szkole mam programowanie mikrokontrolerów 8051 w tym języku), wcześniej programowałem w Bascomie. Chcą trochę poćwiczyć asemblera przed zaliczeniem napisałem prosty program który wpisuje do pamięci o danym adresie i do jakiegoś rejestru jakąś liczbę. I mam takie dwa pytania przy zaadresowaniu...
ad. 2. W asmemblerze MC68k :], a co? jak dowolny, to dowolny :] (asm x86 nie znam za bardzo) Założenia: argument funkcji podawany jest przez stos (wskaźnik stosu - rejestr A7, stos rośnie w dół) Wartość (wskaźnik) zwracana jest w rejestrze D0. Reszta rejestrów pozostaje niezmieniona. Za obsługę stosu odpowiada funkcja wywołująca, więc po powrocie z...
bsf STATUS,RP0 movlw b'01010101' (miałem 4 diody na porcie A) movwfTRISA ^ 0x080 ( coś się powinno zapalić ) bcf STATUS,RP0 movlwb'00110011' movwfPORTA A skąd znalazłeś ten kod? Bo to dość dziwny zapis, ale sprowadza się do tego ze wpisujesz W pod adres TRISA (czyli w przybliżeniu coś około 0xA0 ) z operacją xor która zamienia wartość adresu, negując...
88 TCON 89 TMOD zapisujesz w SFR są to rejestry adresowane bitowo i bajtowo, dlatego jest taka zależność podzielności przez 8, podzielne przez 8 możesz adresować bitowo Wydaje mi się, że rejestry SFR adresowane są tylko bezpośrednio, a przy adresowaniu pośrednim powinienem trafić w pamięć RAM
Super, że napisałeś o jaki procesor chodzi... Sądząc z instrukcji o '51. mov to instrukcja przeniesieania wartości z/do pamięci wewnętrnej/rejestrów uC, movx to instrukcja dostępu do zewnętrznej pamięci danych (fizycznie inny układ scalony niż uC), DPTR to 16 bitowy rejestr używany generalnie przy adresowaniu komórek pamięci zewnętrznej, choć można...
Asembler 6502 jest bajecznie prosty i piękny, powinien służyć jako wzór do nauki kodu maszynowego. Cały procesor też jest pięknie zaprojektowany. Tylko 3 rejestry, każdy z trybów adresowania się przydaje do czego innego, podstawowe instrukcje bez dublowania w rodzaju, że jedno można zrobić na 5 sposobów. Prosty dekoder do 6502 można zrobić na jednym...
Z przeszło 4 godzinej lektury dowiedziałem się że programy skompilowane Asm,C lub Bascom'em można 'przenosić' do Mikrokontrolera, ale nie potrafię sobie wyobrazić jak ?, w jaki sposób ? spróbuj sobie wyobrazić mikrokontroler jako stacje dysków..układ taki posiada wszystko co jest potrzebne do wykonywania programu: - oczywiście najważniejsze: niedziałają...
:arrow: Tdv Zgadzam sie ze to powinno inaczej wygladac ale nie zgadzam sie ze jest potrzebny rejestr do zatrzasniecia mlodszej czesci adresu.Jesli wszystko jest dekodowane ze starszej czesci to nie jest to potrzebne natomiast jest potrzebne przemyslenie kiedy i w jakich warunkach urzadzenia zewnetrzne zatrzasna prawidlowo magistrale danych (analiza...
O kurcze, lata świetlne już nie miałem do czynienia z asemblerem dla 68K. :) I zdążyłem zapomnieć o "zakresach rejestrów"... 68K to jest procesor/rdzeń klasy CISC i niektóre instrukcje mają dość rozbudowaną funkcjonalność. Szukając dokumentacji asemblera, szukaj dla całej rodziny MC68K; tu masz przykłady: [url=https://www.google.com/url?sa=t&rct...
Witam Tak prostych makr nie można wymyślić inaczej, całe szczęście że w Polsce nie można czegoś takiego opatentować. Myślę nad napisaniem makr do obsługi górnych rejestrów w większych AVRach. Nie podoba mi się adresowanie tych rejestrów tak samo jak RAMu, trzeba napisać makra na wzór tych co już mamy, a więc: (nie wiem czy literka H w tym miejscu jest...
To wszystko prawda, aczkolwiek wydaje mi się, że różnie to widzą różne kompilatory. Ofszem Acc jest nazwą rejestru SFR i można ją używać jak każdej innej zmiennej czyli w rozkazach z adresowaniem bezpośrednim (direct). Oczywiście jeśli to możliwe to lepiej jest korzystać z rozkazów wykonywanych na akumulatorze. Ale czy każdy kompilator zrozumie inc...
Adres efektywny jest wyliczany z adresu segmentu i offsetu. adres segmentu określa położenie segmentu w pamięci, a offset jest to przesunięcie względem początku segmentu. W przypadku adresowania rzeczywistego, adresy segmentów są przechowywane w rejestrach segmentowych (CS, DS, itd.), a offsety w pozostałych segmentach (CX, DX, ...). W trybie adresowania...
Nie bój sie assemblera. Procesory RISC maja niewiele prostych rozkazów. Platformy Kolega pomylił. W przypadku ARMa ani "niewiele" ani "prostych"; samo określenie ARM mianem RISC też dość dyskusyjne. Asembler ARM początkującego może jedynie wystraszyć. Z tą liczbą rozkazów, to temat faktycznie dyskusyjny. Z80 700 rozkazów i 6502 z 15 wypada gorzej....
Pituś Bajtuś masz rację, po prostu myślałem, że nie trzeba pisać przed adresem "np.", a jednak. Jest to oczywiste, że 0x000 to adres przerwania resetu. Mój błąd. Co do twojego pytani adj_max84, to tak jak powiedział Pituś Bajtuś. Możesz do tego celu użyć etykiety, dawno pod asemblerem nie pisałe i jakoś takie rozwiązanie wyszło mi z głowy ;P. Odnośnie...
wielkie dzięki za odpowiedź...PioTherm... bardzo mi pomogłeś! 1) Chyba pozostanę przy tym drugim rozwiązaniu i zastosuję pamięć sterowaną przez I2C, czyli mam rozumieć że masz na myśli pamięć EEPROM? Nie ukrywam, że jest to moja pierwsza przygoda z mikroprockami, więc Twoja uwaga odnośnie pamięci programu okazała się cenna. 2) Zanim napisałem tutaj...
Jeszcze tylko jedna uwaga co do Przecież przeniesienie trzeba uwzględnić i wstawić do rejestru bo jak nie to przy następnej operacji dodawania bit carry się wyzeruje i stracimy informację... czy może się mylę? Masz rację. Przeniesienie trzeba pamiętać o ile gdzieś dalej (daleko dalej :-)) będziemy robić operacje na wyniku, ale rezerwowanie do tego celu...
ZAD. 1. Przygotować i uruchomić programy w języku asemblera 8051: a) kopiowania N-bajtowego obszaru TABL 1 z pamięci kodu do pamięci wewnętrznej DATA (obszar TABL2), b) kopiowania bit po bicie w pamięci DATA fragmentu danych z obszaru TABL2, a następnie bajt po bajcie i utworzenie obszaru TABL3 c) kopiowania obszaru TABL2 do zewnętrznej pamięci XDATA...
w przypadku 8051 nie znalazlem informacji na temat adresowania indeksowego- zresztą wciąż pytam o możliwość mieszania w pamięci kodu , nie 'jak to zrobić prościej' :) Jestem świadom tego, że wg dokumentacji 'się nie da' Pamiętajmy - 8051 wykorzystuje architekturę harwardzką w kwestii pamięci. Oznacza to, że przestrzeń na kod i przestrzeń danych są...
Może, jesli kolejny raz pokaże sie Autorowi tematu i innym, że pisanie w ASM to wymaga duuużo większej uwagi i pilnowania kodu który normalnie kompilator C/C#/Basic itd. robią za programistę, to przestaną zadawać takie pytania. Pytanie jak to napisać w ASM jest zależne od tego na jaki to jest procesor i na który port bo nie każdy jest w przestrzeni...
A w czym dokładnie masz problem? Do zapisania danych pod adresami odpowiednimi uzyj adresowania pośredniego. Przykładowy algorytm moze wygladac tak: 1.Do jakiegos rejestru wrzuc pierwsza liczbę. 2. Potem odejmuj od niej każdą następną. Ze zbioru. 3. Po kazdym odjeciu sprawdz czy wynik jest ujemny (sprowadza sie do sprawdzenia jednego bitu ). Jesli jest...
Zobacz sobie to https://serwis.avt.pl/files/kurs_c/22_Ku... https://serwis.avt.pl/files/kurs_c/23_Ku... https://serwis.avt.pl/files/kurs_c/24_Ku... https://serwis.avt.pl/files/kurs_c/25_Ku... https://serwis.avt.pl/files/kurs_c/26_Ku... https://serwis.avt.pl/files/kurs_c/27_Ku... https://serwis.avt.pl/files/kurs_c/28_Ku...
Witam, Mam wielką prośbę, jakby ktoś uprzejmy i miły mógł odpowiedzieć jak w asemblerze na procku 16f57 "dostać" się do ramu w banku 1 (30h-3Fh). Chciałbym w tym banku zapisywać i odczytywać dane, lecz wszystkie próby kończą się zapisem lub odczytem rejestrów w banku 0. Próbowałem z adresowaniem pośrednim, ale coś mi słabo wychodzi. Proszę o wskazówki...
Mając procesor 32-bitowy nie będziesz musiał myśleć o bankach i ich przełączaniu, a operacje na adresach będą wykonywane w jednej instrukcji, a nie w 3..8 jak w Xmega. nie rozumiem tego katowania się 8-bitowcami w aplikacjach, w których przestrzeń adresowa musi przekraczać 64 KiB. Weź dowolnego Cortexa - wyjdzie prościej, taniej i ze 20 razy szybciej...
Serio. Uważasz, że chce mi się szukać i domyślać rzeczy, które powinieneś po prostu podać? Nie jestem złośliwy. Jestem po prostu zaskoczony. Karta CF wydaje mi się być czymś tak oczywistym jak tranzystor, bramka NAND albo przerzutnik typu D i zwyczajnie jestem zaskoczony, że takie pytanie padło. :) Poza tym - w poprzednim wpisie dałem link do konkretnego...
DB to pseudoinstrukcja umożliwiająca wstawienie wartości podanej za nią w kod programu. DPTR to 16bitowy rejestr służący głównie do adresowania względnego.
Witam ponownie. Przygotowałem obrazek zmian w schemacie, które rozwiążą problem kresek na ekranie w czasie skrolowania. Między wejście adresów EPROM generatora znaków dodałem zatrzask ośmiobitowy, który zapamiętuje adres mozaiki znaku w czasie gdy procesor ustawia aktywny stan linii !M1, czyli zero logiczne. W tym czasie na szynie adresowej jest adres...
Witam! W muzealnym procku INTEL 80386 jest sześć rejestrów segmentowych: CS - rejestr segmentowy rozkazów stowarzyszony z licznikiem rozkazów SS - rejestr segmentowy stosu, stowarzyszony ze wskaźnikiem stosu DS - rejestr segmentowy danych, stowarzyszony z adresem danych ES - rejestr segmentowy dodatkowy 1 stowarzyszony z adresem danych FS - rejestr...
W programie głównym jest zapisywana wartość do DPTR określająca adres początku tablicy np: movc DPTR,#text1. Nastepnie program skacze do procedury odczytu tej tablicy i wszystko jest w porządku tzn. odczytuje kolejne znaki (do zwiększania adresu służy właśnie R1 'mov A,R1' i potem movc A,(at)A+DPTR). Procedura odczytuje znaki i zapisuje je kolejno w...
Jak dla mnie Twoje pytanie jest mało szczegółowe. Do czego ma być użyty ten DPTR? Poza tym można go traktować jak 2 rejestry DPH i DPL, ale jest już używany więc użycie go do przechowywania wartości w0 - w4 mija się z celem bo jest używany do adresowania pośredniego czyli należało by go zapamiętać. Jedynie można go jeszcze użyć w pętli opóźniającej,...
Już zdążyłem zauważyć, poprawiłem, co trzeba - był błąd w adresowaniu rejestru DDRB, którego adres jest o 1 mniejszy od PORTB, a nie większy, jak było w kodzie - układ działał na samych podciągnięciach, a nie na push-pull, stad obcinanie dolnych fragmentów sinusoidy. Z tego wszystkiego postanowiłem zbudować ten układ dla siebie, przyda się przy naprawie...
Masz na mysli pamiec SRAM? W assemblerze nic nie deklarujesz, a wydajny dostep do fragmentu pamieci w ktorym chcesz umiescic tablice realizujesz przy pomocy adresowania posredniego jednym z rejestrow X, Y, lub Z (zapis z inkrementacja lub dekrementacja). Sam musisz dopilnowac zeby program nie nadpisal tej tablicy jakimis innymi danymi (jak mu nie kazesz...
Spoko, temat byl o poczatkujacych asemblerowcach, a taki raczej nie napisze sobie prodecurek,bo sie glowi nad adresowaniem rejestrowym i zwykla petla w asm.
tablica danych w ROM ma sens wtedy gdy mozna pobierać z niej dane jakoś ją indeksując. Aby cokolwiek pobrac z ROM trzeba go jakoś zaadresować. We wszystkich PIC-ach adresować ROM można przez ProgramCounter, oraz w części PIC-ów istnieją dedykowane rejestry pozwalające zaadresować ROM i odczytac zawartość tak zadresowanej komórki. W tym dugim przypadku...
Asembler, dlatego warto umieszczac strony na granicy rownych adresow, np. 0x8000-0xFFFF, wtedy nadmiar i niedomiar latwo stwierdzic, oczywiscie i tak trzebaby wykonywac porownanie, ale tylko jedno i w dodatku proste (jedna instrukcja), co wydluzy transfer o ok. 25% lub mniej. Mozesz zastosowac XMega, ona ma duza przestrzen adresowa, ale rejestry RAMP...
Ech, zacznij od poczytania o architekturze 8051 no i oczywiście datasheet ADuC842. Ściągnij MIDE-51, jest to darmowe środowisko do programowania procesorów z rdzeniem MCS-51 (8051) zarówno w C (kompilator SDCC) jak i asemblerze. Przykładowych programów poszukaj w necie i na forum (na architekturę 8051). Twój procek ma właśnie rdzeń MCS-51 i od standardowej...
Łomatko. Przecież MCS-51 ma zupełnie inną architekturę niż AVR. Nie tylko chodzi o rejestry, ale także o same rozkazy. MCS-51 dopuszcza pewne operacje bezpośrednio w pamięci, AVR ma architekturę typu load-store. Poczytaj trochę o tym, a nie czekasz na gotowe. Polecam dokumentację pierwszej, lepszej ATmegi (na końcu masz listę rozkazów), koniecznie też...
w avr kom u rka pami en ci to 2 bajty czyli 16 bitóu - podczas pisania programu deklaruj nazwe kom u rki stala: .dw 0X00ff ;deklaracja stalej dwu bajtowej możesz użyć przecinkow i b en dzie tablicz aby m u c czytać kom u rki musisz wyko ż ystać adresowanie indeksowe tylko indeks z ldi zh,high(stala*2+1) ;mnożysz przez dwa i dodaj 1 gdy chodzi owartość...
Witam! Potrzebuję działającego modułu do transmisji danych przez ethernet. Z różnych powodów wybrałem nm7010a, tylko .. nie wiem jak się do niego zabrać. Mam za sobą godziny wertowania stron www, mam naściągane pdfy i dalej nie wiem jak ten moduł uruchomić. Potrzebuję prostej instrukcji co do modułu trzeba po załączeniu przesłać i w jaki sposób żeby...
adresowa rejestr asembler rejestr rejestr stosu asembler
samsung dioda świecić czerwona skrzynia napędu accord automat
moment dokręcania wtryskiwacza spawarka migomat
Brak posuwu drutu w spawarce MIG/MAG - przyczyny Instrukcja serwisowa pilota Rotel RSP-976/RR-969