w którym miejscu ma to być dopisane? wydaje mi się, że nie ma takego rozkazu
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...
No to trzeba zajrzeć do ksiażki, te programu są tak krótkie że zajmują zaledwie kilka instrukcji, do tego wykorzystują całkiem elementarne możliwości niektórych rozkazów.
to czym się różnią eax od ebx??? Kolejnością wykonania z tago co mi wytłumaczyli więc wnioskuje że są dalsze litery alfabetu między e i x ale chyba jestem w błędzie No i są, ale rejestrów jest tylko 4 ;) Do tego EAX od EBX różnią się optymalnością rozkazów, niektóre rozkazy specjalnie traktują niektóre rejestry.
Turbo Debbuger != Turbo Assembler :/
Acha. To zrób w assemblerze. Albo na tablicach. Nie ma takiej operacji w BASCOMie ani w assemblerze AVR, '51 i innych. Taka operacja to tak zwany "motylek" ale naprawdę nie słyszałem o prcesorze który by miał taki rozkaz. Może jakieś procesory DSP. Albo assembler albo tablicowanie. Wiesz o co mi chodzi z tymi tablicami?
Witam, aktualnie na pracowni wałkujemy DSM-51 i jest dla mnie sporo niewiadomych i prosiłbym o wyjaśnienie/pomoc. Do rzeczy, pierwsza sprawa; - sterowanie diodą i brzęczykiem, korzystałem z poniższego kodu: LEDEQUP1.7 BUZZER EQU P1.7 LJMPSTART ORG100H START: LOOP: CPLLED CPLBUZZER MOVA,#10;czekaj czas 10*100ms=1s LCALL DELAY_100MS LJMPLOOP Opis: definicja...
Nie bardzo rozumiem twój problem. Nie możesz po prostu użyć rozkazu: BST Albo zamaskować nieużywane bity za pomocą np. ORI , ANDI
Z tymi sterownikami nie maiłem do czynienia ale początek opisu wskazuje, że służą do obsługi code page - czyli zestawu znaków (np polskie litery) Co do programowania kontrolera przerwań to znalazłem taki papier: http://sirius.cs.put.poznan.pl/~inf94333... Trzeba pamiętać, że dostęp do rejestrów HW jest przez rozkazy assemblera in/out i nie jest...
Nie wiem czy to ważne ale 8-bitowce były programowane w maszynowym bezpośrednio wszystkie. Asm to nic innego jak bezpośrednie komendy procesora. Tu się nie zgadzam - język maszynowy jest dwójkowy i tak pisałem na laboratorium proste programy na Mera 305 (procesor Momik 8b). Pisałem to chyba nie precyzyjne słowo - wprowadzałem do pamięci. Na klawiszach...
Żeby nie narzekać na asemblera ;), muszę uświeadomić : Nowoczesne asemblery są bardziej zaawansowane, przy zachowaniu możliwości pisania poszczególnych rozkazów procesora. Oto przykład "Hello Word" w Flat Assembler : include '%fasminc%/win32axp.inc' .code start: invoke MessageBox, 0, 'Hello World!!!', 'Welcome Window', MB_OK OR MB_ICONINFORMATION...
Każda rodzina procesorów ma inny kompilator ASM ponieważ w każdej rodzinie występują różne instrukcje. Np. dla AVR jest to AVRStudio. Jeżeli zależy Ci na uniwersalności to polecam C, albo łatwiejszy Basic (kompilator dostępny dla AVR, '51 (Bascom) i PIC ). Pamiętaj tylko że assembler to język niskiego poziomu operujący na rozkazach masynowych procesora...
Musisz wygenerować rozkaz assemblera WDR, czyli ten sam co w innych AVRach. W AVR-libc jest to wdt_reset(). W Codevision poszukaj w helpie.
albo różne pokrętne działania 6502. 6502 ma trochę rozkazów niepublikowanych. Na C-64 był monitor, dissassembler, a nawet Assembler interpretujący te rozkazy. 62C02, używany w "Szmatari", rozkazy niepublikowane miał zastąpione rozkazem NOP. Ciekawą cechą 6502 było dodawanie 1 cyklu maszynowego gdy PC przekraczał stronę (256 bajtów). W C-64, auto uruchomienie...
są komendy takie jak FMUL i FMULS ale kompletnie nie wiem jak ich używać, chociaż to jeszcze-bo mam ze dwa przykłady, ale jak odczytywać to nie mam pojęcia. według książki w tych komendach liczby są traktowane jako dziesietne z przecinkiem miedzy 7 i 6 bitem, ale co to znaczy tego już nie piszą (bo niby 00000010 to oznacza 0,2? czy cos innego i wtedy...
w tym wypadku oznacza adres pod którym znajduje się rozkaz. Zatem DJNZ R2,$ powoduje powtarzanie tego rozkazu aż R2 się nie wyzeruje.
A ja jeszcze dodam, aby podejrzeć sobie wypluwany kod z asemblera, jakiś program z jednym rozkazem (wcale nie ma działać), potem zmienić rozkaz na inny (lub rejestr) i porównać z poprzednim wynikowy plik exe. Zobaczysz, że zmieniają się pewne bajty, a te zmiany to właśnie oznaczenia rozkazów i rejestrów. Assembler robi coś takiego (upraszczam, to nie...
A listę rozkazów kolega ma?
Ściągnij notkę katalogową do rodziny ADSP-21xx. Jak nie znajdziesz, to tu masz kompletną :] Jest tam wsio o rozkazach.
Programów za ciebie nie napiszę ale dam podpowiedzi :) Załączam liste rozkazów dla 8051 (jakbyś jej jeszcze nie miał) są tam opisane cykle, ilość bajtów, składnia, argumenty itp, skorzystaj z niej i spróbuj sam rozwiązać problem :) Ad1 wykorzystaj rozkazy CPL, NOP oraz SJMP Ad2 tu nie jest sprecyzowane czy dioda ma przesuwać się cały czas w jedną stronę...
Nie jesteś na dobrej drodze. Zrób sobie przykład na piechotę (na papierze) i jak się wynik zgodzi to ubierz to w rozkazy. Na razie nie widze algorytmu który chcesz zastosowac do mnożenia. I jeśli będziesz umieszczał program do analizy na forum, to bardzo dokładnie opisz każdy rozkaz do czego służy (co robi)
Witam Jak wiesz już do czego służy podprogram wait_key to teraz popatrz na rozkaz assemblera cjne (kolega romsik chyba Ci to już napisał) Pozdrawiam
Witam! Jeśli już piszesz w kodzie maszynowym, to tak dla formalności przypominam, że przy skokach względnych adres docelowy jest obliczany z uwzględnieniem bieżącego stanu licznika rozkazów czyli adres rozkazu skoku względnego plus 2. Pozdrawiam KG
Jeśli masz do dyspozycji tylko ALU (na to wskazuje spis rozkazów) to po prostu musisz symulować działania na liczbie zmiennoprzecinkowej.
" MAm,y ksiazke z rozkazami " Domyślam się że chodzi o assembler. Jeśli ("..niewiemy..") jeśli niewiecie jak napisac program to radze zacząć od Bascom 8051 (w google znalazłem: http://www.umax.prv.pl/ dział Bascom8051)
przeczytaj to: http://www.cilinder.be/docs/next/NeXTSte... i wiele innych.
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,...
(at)foofoo Ja też w tym roku przesiadłem się z PIC16C84 na AT90S2313. W pierwszej chwili to miałem mętlik w głowie. PIC-e miały bardzo prostą listę rozkazów i assembler był rozbrajająco prosty. Tylko dwa mnemoniki skoków warunkowych - btfsc i btfss . W AVR-ach jest tych skoków zatrzęsienie. Bez spisu wszystkich rozkazów nie siadam do pisania. W assemblerze...
Od bajtu CB zaczynają się wszystkie rozkazy Z-80 dotyczące operacji na bitach: ustawianie (SET), zerowanie (RES), testowanie (BIT) oraz przesywanie bitów (RR,RL,SR,SL i pochodne). Bajt DD dotyczy operacji na rejestrach IX, a FD na rejestrach IY. Stąd operacje na bitach rejestrów IX rozpoczynają się od DD CB, a na bitach rejestrów IY rozpoczynają się...
Assembler? ale przecie on tak wiele ukrywa, nauczy się kto asemblera i nie będzie miał pojęcia o budowie (nie liście) rozkazów mikroprocesora, jak cudownie kształtuje cierpliwość i staranność, Panowi tylko kod maszynowy i ósemkowe kodowanie.
Widziałem gdzieś tam (chyba w bibliotece peryferyjnej STM32 albo w CMSIS dla STM32), no ale co z nimi? Mój startup robi z grubsza to samo, dodatkowo korzysta z dwóch stosów i jest krótszy (tego typu pętle, nie wiedzieć czemu, zawsze kompilują się do wieeeeeeeelu rozkazów assemblera, choć wystarczy te kilka które jest u mnie). 4\/3!!
ORG 100H to jest dyrektywa, że kod po niej ma się zaczynać się od tego nowego adresu, a nie rozkaz procesora... Myślę, że jak o pogooglasz pod hasłem "assembler directives", to się trochę rozjaśni... EDIT: Pogłębiłem i rozjaśniłem wypowiedź...
O zgrozo. A myślałem że kompilator jest dla mnie a nie ja dla kompilatora. No i właśnie tak jest - kompilator jest dla Ciebie. Ty każesz mu skompilować błędny (nie w sensie składniowym) program, a on to robi, choć program nie działa (; Zresztą jak widać po kodzie nawet w tym przypadku jego działanie jest niechlujne. Tak, strasznie... Biorąc pod uwagę...
Nawet przyspieszenie kodu, jakie daje pisanie w asm jest mocno wątpliwe. Dzisiejsze procesory posiadają rózne cache, potoki, rdzenie itp. Natomiast kompilatory C posiadają optymalizację. Naprawdę trzeba znać na wylot daną architerkturę by napisać w asmie kod lepszy niż wygeneruje kompilator z włączoną optymalizacją. A i tak w gre wchodzi przyspieszenie...
Taki program mógłby wyglądać tak: Mnożna: rejestr E Mnożnik: rejestr A Wynik: rejestr HL LD HL,0000 ;inicjacja wyniku LD B,08 ;licznik pętli LD D,00 ;zerowanie bardziej znaczącego bajtu DE NXBIT ADD HL,HL ;przesunięcie wyniku w lewo RLA ;sprawdzenie cyfry monożnika JR NC, FIN ;opuszczenie zera ADD HL,DE ;dodanie mnoznej FIN DJNZ NXBIT ;powrót do początku...
Witam. Moim skromnym zdaniem dobrze jest poczytać karty katalogowe danego sprzętu. Np.: (uC) http://www.atmel.com/dyn/products/produc... http://www.atmel.com/dyn/products/produc... http://www.atmel.com/dyn/products/produc... KK czujników nie podam, bo jeszcze nie korzystałem. Sam zacząłem zabawę...
To jak napisano pierwszy program który mógł obsługiwać klawiaturę, dysk ekran pamieć itd. ? Najpierw napisano projekt (długopisem) na papierze. Potem zakodowano (ręcznie! na szczęście procesory miały prostsze rozkazy, niż jakiś Pentium) i wydziurkowano na kartach, albo na taśmie papierowej - i trzeba było tak wydziurkować jakiś działający system (nie...
AVR-y mają rozdzieloną przestrzeń adresową pamięci programu i pamięci danych. Adres np. 0x100 istnieje zarówno dla pamięci RAM i jak i dla pamięci FLASH. Ale, oczywiście, jest to adres fizycznie innej pamięci. Jeżeli chcesz załadować dane z pamięci FLASH musisz użyć rozkazu lpm. Pozostałe rozkazy (lds, ld) ładują dane z pamięci RAM.
Rzeczywiście, użycie rozkazów: ldi i out jak na Assembler przystało rozwiązało problem. Tak to jest, jak się człowiek rozpędzi i zapomni... Jednak pojawił się inny problem. Podobny, jednak w linijkach:[syntax=avrasm]ldi R16, (1<<OCIE0A) | (1<<TOIE0) out TIMSK, R16[/syntax] kompilator twierdzi, że: Error1Undefined symbol: TIMSK Czy tym razem...
Troche poprawilem, nie wiem tylko czy jesli jest: 1)przerwanie: . . . LJMP gdziestam RETI Jeżeli takie coś wykonujesz to musisz to "gdziestam" zakończyć rozkazem RETI Lepiej to "gdziestam" wywołać LCALL ale to musisz pamiętać że musi się kończyć ta procedura rozkazem RET i wtedy będzie to OK!
powiedz czy działa... Jak masz jakieś gg to zagadaj ;) Masz tu ciągle trzy niewiadome: 1. Czy wyświetlacz jest dobry? 2. Czy jest dobrze podłączony? 3. Czy go dobrze oprogramowałeś? Naprawdę, radzę użyć jakikolwiek kompilator języka wysokiego poziomu do AVR z wbudowaną w program obsługą LCD. W AVRStudio można potem podglądać rozkazy Assemblera i przyglądać...
Wygląda na to, że wszystko działa :D Gratuluję. Jedynie komentarze i formatowanie kodu jest bardzo złe :| Skoro Twój program już działa to mogę udostępnić swój. Za punkty, bo w kodzie praktycznie każda linijka posiada komentarz, wszystko zostało w nich wyjaśnione. Jak już wcześniej w temacie pisałem u mnie jest tylko jedna funkcja "searchstr", a to...
Czy pod adresem 0x012 ($012) masz wpisany rozkaz skoku do procedury przerwania (np.: jmp TC0OVF)?
Nie, masz zapisać plik w idzie jako plik dif (różnicę pomiędzy oryginalnym a zmodyfikowanym plikiem) a nie asm. Później otwierasz edytorem szesnastkowym twój plik który wgrywałeś do urządzenia, zmieniasz go na podstawie pliku dif i zapisujesz jako .hex (czy jak miałeś w oryginale) Identycznie postępuje lena (tylko używa do tego automatu), patrz na pierwsze...
Języków programowania jest cała masa i mają różne przeznaczenie. Najbardziej podstawowym jest język maszynowy, czyli język konkretnego procesora, przystępną dla człowieka formą reprezentacji tego języka jest assembler, dalej operuje się bezpośrednio na rozkazach procesora ale zamiast ich kodów binarnych można się posługiwać wygodniejszymi mnemonikami,...
daro2012, zmień do testów ustawienie w opcjach projektu dla Unsupported Instruction z Error na Warning (> Toolchain >AVR Assembler > General).
Na pewno masz: http://obrazki.elektroda.pl/3055062900_1... Wychodziłoby tutaj, że jedna linia Twojego kodu zajmuje mniej niż 2 bajty, więc w przypadku ARM Cortex jedna linia kodu przekłada się na mniej niż jeden rozkaz assemblera. Przyznasz że jest to dosyć dziwne... Też jestem w stanie absolutnego podziwu. Taki projekt (18.000l) i 32k....
At90S2313 to procesor 8-bitowy wiec wszystkie rejestry (oprócz licznika rozkazów i jeszcze jakiegos ktorego niepamietam) są 8 bitowe, równiez organizacja pamieci danych jest 8-bitowa więc jesli chcesz posługiwac się słowem 16-bitowym to musisz go sobie podzielić na dwie częsci i przechowywać w oddzielnych rejestrach ( lub komorkach pamięci Sram) .
Tu: TIMSK |= _BV(TOIE0); włączasz przerwanie. Tylko gdzie to przerwanie niby jest? Nie ma przerwania, więc wektor będzie wskazywał na "uniwersalny łapacz nieistniejących przerwań", który resetuje układ. Pozatym TCCR0=0x03; //pres TCCR0|=_BV(WGM00); TCCR0|=_BV(WGM01); //Fast PWM TCCR0|=_BV(COM01); TCCR0&=~_BV(COM00); //Fast...
Czasami rozkazy LPM,SPM dzialają z rejestrami ZL,ZH (R30,R31) ld r30,.... ld r31.......... LPM lub LPM r16,Z
Dodajesz rozmiar wszystkich zmiennych pomiędzy i ci wychodzi adres z. Nie znam NASM, więc nie wiem czy jakoś te adresy może optymalizować, te, których używałem tak nie robiły (a może to tylko ja tego nie włączyłem), bo wolę sam mieć pełną kontrolę jak już schodzę na niski poziom. Skok warunkowy wykonuje się zwykle w zależności od ustawionej flagi procesora....
...Mam pytanie jak przeniesc komende lookup (z bascoma) na assembler? To zależy z ilu elementów maksymalnie może składać się tablica i jaki jest rozmiar jednego elementu. Np. dla tablicy o wielkości max 256 elementów umieszczonej w pamięci programu i rozmiar elementu to 1 bajt: mov a,numer_elementu mov dptr,adres_pierwszego_elementu ; (początek...
Witam Chciałem się dowiedzieć jaki jest rozkaz w assemblerze AVR do attiny2313, żeby podzielić 2 liczby przez siebie? I czy można rejestry czy trzeba a i b? Wiem, że jest rozkaz DIV, ale do AVR nigdzie go nie widziałem. Z góry dziękuję za odpowiedź :) Pozdrawiam
Ale ... to nie jest żaden prawdziwy assembler. :-) To jakiś język wymyślony na potrzeby nauki programowania. Musiałbyś podać pełną listę rozkazów, napisać co one robią i jaka jest "budowa" maszyny do tego języka. Bez tego może ci pomóc tylko ktoś, kto był na tych samych zajęciach.
równie dobrze możesz w bascomie wkleić rozkazy assemblera, ale na początku dopisz $asm a na końcu $end asm, reszta należy już do kompilatora. Jeśli wyskoczy Ci jakiś błąd, to na 90% będzie dotyczył etykiet (czyli nazwy części programu np. loop: albo koniec: albo start:) po takiej etykiecie może być tylko dwukropek, następny rozkaz asemblera powinien...
a wiesz co to sa mnemoniki, rozkazy, stosy, pamięć, język maszynowy, bity bajty rotacje i te inne sprawy?? Assembler to czysta kombinacja z podstawowymi algorytmami. Samych algorytmów nie znajdziesz w książce typowej o procesorach, to zadanie dla książek programistycznych. Każdy procesor programuje sie inaczej ma inny zasób słów a nie wiem czy dostaniesz...
Bo Const to stała a Ty potrzebujesz czegoś jak DB albo PROGMEM. Czyli danych umieszczonych w pamięci. A stała niekoniecznie będzie tam umieszczona. Stała może być np. wbudowana w rozkaz assemblera (akurat nie tutaj ale inaczej to może być). Zrób raczej tak: Dim Atmega As String Dim Attiny As String Atmega = "Atmega" Attiny = "Attiny"...
Tyle że cbi i sbi to rozkazy w assemblerze które zajmują 2 bajty i wykonają się w jednym cyklu, a np. kod: ADCSR = ADCSR | (1<<ADSC) Niekoniecznie. Ale zależy to jeszcze od inteligencji kompilatora.
Z tym LPM to różnie bywa. Samo LPM bez parametru zadziała na pewno i kompilator też przyjmie. Nowe LPM z dowolnym rejestrem to dobra sprawa ale ja z tego nie korzystam, nie chcę niespodzianek. ??????? OMG!!! Sugerujesz że Atmel tak sobie powrzucał rozkazy na listę nie sprawdzając ich działania? Zalecam na wszelki wypadek nie korzystać z większej liczby...
Tak, takim rozkazem jest w assemblerze AND, w C operator &.
Ok ,a czy nie da sie odrazu zapisac sprawdzania przycisku pomijajac zaladowanie stanu portu do akumulatora ?? np : sprawdz: // petla sprawdania przyciskow P0-P7 jnb P2.0,wys0 // jesli P2.0 jest 0 skok do wysw0 jnb P2.1,wys1 jnb P2.2,wys2 . . . itd (...) Można sprawdzać stan linii portu 2 w ten sposób, nie trzeba wykorzystywać akumulatora. mov acc,...
IloscRamu dd 0 . . . mov IloscRamu, eax Tak zapiszesz do zmiennej. Co do pytania o sprawdzenie ilości ramu chyba był specjalny rozkaz do odczytywania konfiguracji sprzętowej. ALe głowy nie dam. Chyba, żeby się dało jakoś odwołać do biosu. [EDIT] http://www.osdev.org/osfaq2/index.php/Ho... Tutaj jest cały...
asm cortexa-m3 jest naprawdę prosty. wystarczy się zapoznać z dokumentacją, którą producent rdzenia udostępnia. Ja pisałem całe funkcje w tym asmie, bo inline assembler nie jest obslugiwany w keilu dla rozkazów thumb2 (nie wiem czemu, czasami byloby wygodnie). Często jednak jest tak, że kod C wygenerowany przez kompilator jest jednak lepszy niż to,...
Algorytm jest dość prosty, wygląda jak mnożenie pisemne. Potrzebujesz dwóch pętli, zewnętrzna wybiera kolejne cyfry mnożnika, a wewnętrzna mnożnej. Kolejne cyfry wyniku (ma nie więcej cyfr niż suma długości mnożnej i mnożnika) wyznaczasz ze wzoru: x=a[i]*b[j]+przeniesienie jeśli x>9 to { przeniesienie=x/10 x=x mod 10} potem oczywiscie musisz sumować...
Błąd jest tutaj: (at)Bach: invoke lstrlen, ADDR BachMsg invoke send, cSocket, ADDR BachMsg, eax, 0 (at)OpenCD: invoke mciSendString, ADDR openCD, 0, 0, 0 Jeśli serwer otrzyma rozkaz 'bach' to wykona go, ale po wykonaniu przejdzie do procedury obsługi następnego rozkazu. Trzeba przez (at)OpenCD, ja bym spróbował dopisać "jmp (at)ToLargeCmd" przez...
to że asembler ma niewiele rozkazów zailczane jest do zalet a nie do wad. Już o tym pisałem. Owszem. „zaliczane jest” :D Ale skoro piszą że mała ilość rozkazów jest zaletą, to chodzi im o to że mała ilość rozkazów jest zaletą. A nie o coś innego. I na pewno nie o to że ten assembler jest dobry. Dobry assembler jeżeli rzeczywiście jest dobry...
A powiedzcie mi, na te lata a'la "makra assemblera" sie wplata w tę sama dokumentację rzeczywistych rozkazów maszynowych, to jest OK ? ???
Jeśli już, to nie trzy stronicowa tabelka zbiorcza, tylko pełna dokumentacja: Atmel AVR 8-bit Instruction Set Przepraszam, nie wszystkie mikro konrolery posiadają takie rejestry jak RAMPZ , RAMPY itd. W temacie jest mowa o ATmega8 , więc piszę jedynie o tym typie MK. Sugerujesz uczyć się assemblera bez szczegółowej dokumentacji, dając jedynie 3 strony...
hmm asemblery to bardzo szeroka gama różnych dziwnych "nakładek" niektóre stoją tak naprawde bardzo wysoko. pamiętacie może asembler z Commodore 64 (8502, 6510, 6502) rożnił sie na moje oko dość bardzo od asemblera powiedzmy do procesorów mcs-51 - nie było w nim czegoś takiego jak nazywanie linii programu wsyzstko trzeba było liczyć - przynajmniej tak...
Trochę inny argument spotkałem w jakimś artykule że pomiary poboru prądu potwierdzają średnio dwukrotnie niższe jego zużycie na wykonanie tego samego zadania przez program napisany w asm a w C. Z rozkazami typu sleep C radzi sobie różnie. To moze mieć znaczenie w locie na Marsa. N.
Nawet gdyby same porty GPIO się wyrobiły, to nie wyrobi się cała reszta. Skoro chcesz wykonywać odczyt z częstotliwością 40MHz, to masz mniej więcej 4 takty zegara na wykonanie wszystkiego. W super-extremalnym przypadku pętla która by to realizowała ma 4 rozkazy assemblera: 1. odczyt GPIO do rejestru 2. zapis z rejestru do RAM z postinkrementacją wskaźnika...
Jak dodać np, do komórki pamięci 2000 zawartość akumulatora? Wiem tylko że jedną z części tego rozkazu to: MOVX (at)DPTR,A A jak brzmi druga bo nie mam pojęcia choć szukałem.
Nie zetknąłem się z tą książką ale po zagadnieniach które wypisane były na stronie wygląda interesująco. Co do książek do nauki assemblera... z tym akurat jest problem. Assembler to nic innego jak mnemoniki instrukcji mające odzwierciedlenie w kodzie maszynowym. Każdy procesor czy mikrokontroler posiada swój własny zestaw rozkazów a więc i mnemoniki...
czytaj bootstrap z 5 urz. w kanale 24(*30) , a więc np. z 5 dysku. Program ładujący można uruchamiać z dowolnego urządzenia, pod warunkiem iż był on tam uprzednio zapisany. W przypadku dysków MFM, podział powierzchni dyskowej zależał od firmy montującej te urz. w Odrze. Ja miałem emulację 8 dysków po 8Mb. Na jednym z dysków zainstalowałem bibliotekę...
To i ja coś dorzucę od siebie :D Na początku znajomości z assemblerem AVR , miałem kłopoty z sbi,cbi,in,out więc się wkurzyłem i wyszło mi takie coś ;) .macro setb .if (at)0>RAMEND || (at)1>7 .error "parameter(s) out of range" .elif (at)0 < 0x20 sbi (at)0,(at)1 .elif (at)0>0x1F && (at)0<0x40 in r16,(at)0 ori...
sprzętowo te układu rónią się tylko resetem i możliwe by było przystosowanie płytki (schematu) do tego procka. większy program jest jednak z programem. jeżeli jest on skompilowany to nie da się go wgrać. jeżeli to assembler to też cięko choć jest to możliwe (inna lista rozkazów) jeżeli program jest napisany w jeżyku wyższego poziomu to jestes w komfortowej...
Prawda, niemniej zaawansowane makroasemblery też coś optymalizują wstępnie (jak tmf zauważył skoki, albo nawet kolejność rozkazów jeśli w danym fragmencie nie jest krytyczna, a lepiej wykorzysta potok). Inna sprawa, że z tego co kojarzę assembler AVR takich możliwości nie posiada (bo i potok prawie żaden więc nie ma zbyt wielkiego pola do popisu). I...
Jeśli dla ciebie "kom ę dy" ( komendy ) czyli rozkazy procesora wyglądają jednakowo, to nie rozumiesz asemblera. Moga wyglądać podobnie, ale odpowiednie ich zestawienie ze sobą i odpowiednia kolejność dopiero powodują, że procesor robi dokładnie to co powinien. Jeśli tak naprawdę chcesz poznać asembler, to powinieneś się przyzwyczaić, ze tu nie bedzie...
Witam, Borykam się z zamieszczeniem pewnych wartości pod konkretny wskazany adres i to bez znaczenia czy ma to być xdata, data czy code. Dla środowisk RC-51 istnieje swobodne umieszczanie zmiennych lub stałych w pamieci, oto przykład: at 0x20 data char zmienna1; //umieszcza w pamięci RAM pod adresem 0x20 zmienną Niestety ta dyrektywa nie jest rozpoznawalna...
MOV DPTR, #TAB ; i od tego momentu nie wiem co sie dzieje i po co do DPTR ładowany jest początek adresu tablicy. MOV A, #0 ; czy ktoś mógłby wyjaśnić troszke idee działania zerowanie akumulatora A MOVC A,(at)A+DPTR ; tego programu wpis do akumulatora A danej z komórki pamięci programu o adresie A+DPTR JMP $ skacz sam do siebie tutaj procek w zasadzie...
ldi ZH,high(tablica_cyf<<1) ldi ZL,low(tablica_cyf<<1) lpm r16,Z ładuje do rejestru r16 pierwszą wartość (cyf_0) możesz zastosować zamiast rozkazu "lpm r16,Z" rozkaz lpm "r16,Z+" który automatycznie zwiększy o jeden wskaźnik Z - kolejnym odczytem instrukcją lpm będzie cyf_1 pozdrawiam prokopcio
RISC nie poznaje się po długości listy instrukcji, (...) Ogólnie RISC to jest procesor, który nie bardzo nadaje się do programowania przez człowieka w asemblerze - i pod tym względem ARM jest bardzo RISC. ;) Z RISC to poznałem assembler PPC i ColdFire (kiedy to było?). Zasadniczo RISC ma niewiele prostych rozkazów (ale dużo trybów adresowania). To...
to trochę zależy pod jaki mikrokontroler piszesz!! i czy liczby "dodawane" sa zapisane z "korekcją dziesiętną" ogólnie: w dodawaniu postepujesz podobnie jak w dodawaniu "pod kreską" tylko że dodajesz liczby z zakresu 0..255, czyli poszczególne bajty, tzn. jak dodajesz dwie liczby jednobajtowe to maksymalny wynik moze być zapisany w 9 bajtach (8 bajtów...
Na 98% programujecie mikrokontrolery z tzw. rodziny '51, an 100% w ich języku maszynowym, tzw. assemblerze. Jest to najbardziej skomplikowany język, ale też daje najwięcej możliwości. Złe wieści: język którego się uczysz jest możliwy do stosowania tylko w mikrokontrolerach z tej rodziny (czyli '51), np. w popularnych AVR będzie już inny (inne rozkazy...
:arrow: zumek Wiem, że potrafi to wygenerować kompilator assemblera. Listing z mojego poprzedniego postu to CYTAT z wypowiedzi kolegi jony15 . A moje pytanie wynikło stąd, że też ten kompilator wydał mi się kiepski, i chciałem się dowiedzieć jaka to wersja. Sorry za nieprecyzyjne pytanie. Ja używam (a raczej używałem, teraz jeśli już piszę na '51, to...
Za stary assembler, weź sobie nowszą wersję skombinuj, albo zastosuj doraźnie w postaci wpisania hexa tzn. 0F 31. Z tego co pamiętam to mimo że środowisko działania programów 16-bitowe to po dodaniu minimum .386 na początku można było operować na 32bitowych rejestrach np. EAX itp. Uważam jednak że to za stara wersja assemblera.
1. GNU ARM to najzwyklejsza paczka taka jak CodeSourcery, WinARM czy Yagarto, więc po co tego używać i po co to w ogóle roztrząsać? 2. CodeSourcery Lite jest darmowe. Jeśli nie jest wystarczająco darmowe, to wystarczy ściągnąć sobie źródła GCC i skompilować samemu [; Jest to możliwe, skrypty z Codesourcery to znacząco ułatwiają. 3. Niczym 4. Bo kompilujesz...
1. Ogólnie liczysz dobrze, ale procesor nie wyrobi się w 160-ciu cyklach (a dokłądniej mówiąc to liczysz trochę źle bo własnie nie uwzględniasz czasu potrzebnego na obsługę przerwania). Nie uzyskasz czasu 10us, nawet dla kwarca 16MHz. Musiał byś to napisać w assemblerze i użyć dyrektywy Nosave. 2. Nie. Jeżeli coś zadeklarujesz w programie to ta rzecz...
Pisałem na szybko, sprawdź czy wszsytkie warunki działają poprawnie. Testpin: PUSH r30 ' zapamiętaj R30:R31 PUSH r31 PUSH r16 ' zapamiętaj _temp1 PUSH r26 ' zapamiętaj X PUSH r27 Loadadr Poz , X ' adres zmiennej POZ do rej X (funkcja BASCOMa) LD r30, X+ ' załaduj zawartość zmiennej do pary R30:R31 LD r31, X 'If pind.3 = 1 Then SBIS...
W dokumentacji jest lista rozkazów i rejestrów z której można korzystać. Ten dokument raczej cały czas ci będzie potrzebny.
Tzw "dziwne mnemoniki" nabierają głębszego znaczenia i łatwiej wchodzą w pamięć, jeżeli rozwinąć skróty, z których są utworzone. Są to po prostu akronimy angielskich oznaczeń na działanie danego rozkazu.
sam program w asm trudny nie jest wlasnie chodzi mi o samo odwolanie sie do portu lpt hmmm moglbys podlinkowac tamto zrodelko w c++?? moze uda mi sie wydobyc z niego odpowiednie rozkazy w asm do obslugi tego potu
Po co komuś wpychać na siłę coś o co w ogóle nie prosi? Jak ktoś będzie chciał naprawić silnik w samochodzie przy pomocy młotka i dłutka to rozumiem że udzielisz mu informacji o tym jak to zrobić, bo przecież nie pytał się o żadne profesjonalne metody regeneracji swojego bolidu, a może akurat masz do czynienia z "sześćdziesięciolatkiem"? Każdy ma swój...
Ściągnij sobie rozkazy asemblera http://www.edw.com.pl/index.php?module=C... Asembler- język maszynowy... i spróbuj napisać jeszcze raz bo jak narazie to nie widać tu twojej pracy własnej.
ja wszystko pisze w asmie juz porzucilem na szczescie bascoma. ale wstawki kiedys stosowalem. ale powracajac do pytania kolegi bo jak do tej powy nikt nie odpowiedzial wiec tak mozna bezposrednio stosowac rozkazy asmowe w bascomie ale lepiej uzyc deklaracji : $asm tu program w asmie $end asm
Witam, zmagam się z napisaniem programu, który będzie sterował motorem za pomocą klawiatury, cyfry odpowiadają liczbie obrotów, zaś gwiazdka i krzyżyk za kierunek obrotów. Wyobrażam sobie napisanie tego porogramu w nastepujący sposób. Pierwsza część programu wyszukuje, czy któryś z klawiszy został wciśniety, druga część to pętla, w której jeżeli gwiazdka...
Jeśli zaznaczysz .386 to będziesz mógł korzystać z rozkazów procesora 386. Nawet jeśli nie wykorzystasz jakiś specyficznych rozkazów 386 a zaznaczysz że chcesz kod pod 386 to czasem pewne instrukcje zostaną zamienione na szybsze odpowiedniki procesora 386 więc program nie będzie kompatybilny z procesorami 286. Przykład to rozkaz: shl al,3 w wersje 386...
Nadszedł czas na assembler i przerabiając po kolei rozkazy jak na razie znalazłem 2 które działają dla mnie niejasno. 1.Jaki powinien być wynik tej operacji. ldi r24,$FE ldi r25,$03 adc r24,r25 W symulacji w Avr Studio otrzymuje wynik 01 ale przecież powinno być 02 ponieważ dodawana jest również flaga C(przepełnienie). Avr studio pokazuje że flaga C...
... chciałabym jedynie uzyskać odpowiedz na pytanie, czy bezpośrednie czytanie i zapis do i rejestrów XMegi może ją uszkodzić. Czy C, czy Assembler, czy BASCOM wszystkie operują na rejestrach. Jak więc miałyby uszkodzić mikrokontroler? ... C mnie już nie interesuje. Przesiadka z BASCOM na Assembler jest krokiem odważnym i chwalebnym. Jednakże uparte...
bez urazy, kolego olekewaagata, zanim zaczniesz kogoś pouczać przeczytaj tekst ze zrozumieniem! ;)) Autor wątku miał problem z propagowaniem przeniesienia - moja odpowiedź dotyczy DOKŁADNIE zalecenia, jaką instrukcją uwzględnia się przeniesienie. A podany przeze mnie przykład dotyczy sumowania, z jakim ma problem autor - czyli dokładnie liczby _16bit_...
rozkazy komputerowe rozkazy operowania assembler darmowy assembler
emulator android ploter wycinania akumulator tesco
zelmer aquawelt zelmer aquawelt
Adaptacja czujnika ciśnienia w Seat Leon 2.0 TDI 2017 Pilot nie wyłącza telewizora - diagnostyka i rozwiązania