Problem staje się prosty gdy możemy się posłużyć określeniem ogólnym "czas", jednak gdy mamy osobno minuty i godziny - jest inaczej. Procki nie operują na pojęciach ogólnych , tylko na liczbach i zapewniam Cię , że porównywanie liczb(nawet wielobajtowych) jest prostrze niż np. ich dzielenie. Więc może skupmy się jedynie na sposobie porównania dwóch...
Żeby nie było - optymalizacja też może wchodzić w grę. Nowoczesne kompilatory potrafią (czasami) rekurencję zamienić na pętlę, ale nie należy zbytnio na tym polegać bo to ruletka. Jak chcesz sprawdzić czy tak się stało dla drugiego przypadku to trzeba porównać asemblery
Mam napisać "ubogi" kod na uC sam7 w języku asembler. Czy programowanie w tym języku dla ARM jest podobne do AVR ??? I czy jest jakiś darmowe środowisko do pisania ???
Zawsze dobrze porównać z kompilatorem jak się uczy - łatwiej wyłapać własne błedy Proponuje zajrzyj do linka - porównaj https://godbolt.org/g/9HKgiD
Nie w 8051 nie ma takowych. Sa to dodatki kompilatora jezyka w ktorym piszesz. Pewnie jest to asembler, wiec podaj nazwe kompilatora asemblera to pogoglamy.
Hmm, co ciekawe pod win2k ten programik działa dobrze. Mam tylko jeszcze jedno zastrzeżenie, wywołujesz funkcje SetDlgItemText dając jej jako argument bliżej nieokreślony łańcuch znaków, jeśli ten łańcuch nie będzie miał gdzieś w treści znaku o kodzie zero to program poleci dalej po adresach aż napotka znak o kodzie zero. Rozumując dalej, może zajść...
W czym programować najlepiej w asemblerze, jeżeli masz zamiar robić w przyszłości poważne projekty! To chyba jakieś żarty :D Kto poważny dzisiaj poważne projekty pisze w asemblerze? Kto się w takim olbrzymim kodzie połapie? Kto po przerwie będzie wiedział "co robił ten fragmencik kodu"? Kto w prosty sposób przeprowadzi obliczenia zmiennoprzecinkowe...
witam, 1. Modele mikroprocesorów różnią się np ilością pamieci wewnętrznej, ilością portów, częstotliwością wewnętrznego taktowania. Porównaj sobie np Attiny2313 i np Atmega8 2. Mozesz wybrać kilka jeżyków programowania (wyższego lub niższego rzędu) C, asembler, Bascom. Ale nie możemy tutaj zapomnieć o procesorach z rodziny 8051 które mają własny język....
Witam Właśnie jestem w trakcie przerabiania wszystkich możliwych makr związanych z portami AVR na wzór makr Atmela. Może ktoś wie jak w makrach sprawdzać brak parametru? Jeżeli chodzi o zmianę bitu lub bitów to oba makra się przydadzą, o wiele wygodniej będzie stosować wg potrzeb raz jedeo raz drugie makro. Myślę że makra używające R16, powinny mieć...
sektory są po 52 bajtów Literówka ;) Sektor ma 512 bajtów... Jeśli chcesz zoptymalizować pętlę jeszcze bardziej, to zamiast for-ować od 0 do max, for-uj od max do zera. Co obrót pętli zaoszczędza się jedną instrukcję, porównaj sobie w obu przypadkach asembler wygenerowany przez kompilator.
Deklaracja dla attiny4313 różni się wartościami bo układ ma dwa razy więcej ram , flash i eeprom ,ale o to nie musisz pytać wystarczy że porównasz pdfy attiny2313 i attiny 4313.
To musisz sobie sam ustalić. Wszystko zależy ile danych przesyłasz i od protokołu transmisji (nie mylić ze stadardem poziomów napięć RS232). Jeżeli jest to kilka bajtów możesz liczyć te bajty i jak naliczysz ile przyszło to musisz wiedzieć ile miało przyjsć, porównać i odpowiednio zareagować. Ostatni bajt to przeważnie jakis specyficzny kod np: (ETX...
cmp R1,20 je etykieta A co to jest?? :) Może miało być tak ? cjne R1,#020h,etykieta ..... ..... .... .... .... etykieta: cjne - porównaj i skocz jak nierówne :)
A może 'inta' to zmienna 4-bajtowa? Skok do etykiety 'koniec' nastąpi gdy obie części DWORD są równe zero. Pzdr
Mam problem. Chce podejrzeć jak wygląda program po skompilowaniu. Program jest banalny, coś w stylu : #include <iostream.h> using namespace std; int main(void) { int a, ii, jj; i tu parę insrukcji return 0; } Czy znacie jakiś disasembler, który mi pokaże w asemblerze tego fragmentu i tu parę insrukcji Jak to będę umiał zrobić, to porównam później...
a porównaj tylko nie z 16 i 32, tylko innymi wartościami, względnie z 255
Nie rozumiem tego hejtu na Arduino. Jest złe bo co? Serio nie rozumiesz czy tylko tak piszesz? Ja widzę dwa źródła znienawidzenia arduino przez elektroników z dłuższym doświadczeniem: - techniczny - arduino narzuca pewien sposób myślenia o programie, czyli np programista piszący od wielu lat w asm czy C czuje się ograniczony i mimo że posiada dużą...
Podziwiam, zwłaszcza z tego powodu iż dotyka to asemblera x86, który to w wydaniu 8086/80286 jest szczególnie przykrym doznaniem. ;) Przykrym doznaniem? Bardzo fajny assembler, na pewno lepszy od RISCowego 6502... Jedyne czego tak naprawdę brakowało w asemblerze 6502 (i jego pociotek) to mnożenia. Oprócz tego ów asembler był całkiem fajną zabawką,...
Masz problem z drganiem styków przełącznika. Możesz go wyeliminować programowo, np. porównaj dwa razy dokonany odczyt PD7 i uznaj że jest prawidłowy jeśli 2x się potwierdził (przy naciskaniu i zwolnieniu) możesz jeszcze dodać małą pętlę w której kilka razy sprawdzisz stan tego wejścia, a za prawidłowy uznasz dopiero gdy kilkukrotny odczyt da taki sam...
Jeszcze spytam o taki sposób, który jednak nie wiem czy jest do zrezalizowania. Chodzi o to np czy mogę odwołać się do 0 bitu AL? Przecież jeżeli bit 0 będzie 0 to jest to liczba parzysta, a jak 1 to nieparzysta. Jeśli tak można to jak to zapisać ( czyli odwołać się do tego bitu i porównać go np z 1) Prosiłbym jeśli się da o jakąś instrukcję
Zanim zaczniesz używać asemblera wypadałoby poczytać trochę o tych komendach, co one oznaczają i jak ich używać. Jeżeli używasz assemblera jako wstawki w C, to mnemoniki typu MCUSR nic kompilatorowi nie mówią - musisz używać adresów. Z kolei komenda LDn ma z kilkanaście swoich wersji i powinieneś sprawdzić którą używasz i dlaczego. Jeśli już ładujesz...
Może napisz to samo w C a potem porównaj generowany kod z tym co sam napisałeś i znajdziesz błąd ? To w sumie jest dosłownie kilka linijek do analizy.
Dociskanie kickstartu i procka nic nie dało (zgodnie z moimi przewidywaniami - bo kickstart raczej działa, skoro po wyłączeniu CD-ROM-u albo "zepsuciu" ROM-u kontrolera CD prosi o dyskietkę, i ewentualnie się z niej bootuje). Napięcia mniej więcej w normie. (-12,20V, 4,97V, 12,20V). Może to i truizm, ale wywnioskowałem, że po wyświetleniu białego ekranu...
Skoro masz program, i mówimy o asemblerze to odpowiednie instrukcje potrzebują konkretną liczbę cykli procesora na wykonanie - przeanalizuj program zgodnie z dokumentacją techniczną procesora (uwzględniając częstotliwość z jaką będzie pracował)... co do poprawności - kod U2 służy głównie do wykonywania obliczeń na liczbach ze znakiem. Jak dla mnie -...
to fajnie:D a wiec naciśniecie klawisza "prawo" w akumulatorze 0B w "lewo" 0A w "dół" 0D w "górę" 0C. Teraz kombinuje żeby w rejestrach np R5 zapisać 0B w R6 0A itp a później chciałbym to porównać do akumulatora i jeśli by było równe to wykonało by dane działanie a jeśli nie to przeskoczyło by do następnego działa i by sprawdzało znów co jest w akumulatorze...
Oba będą działać prawidłowo
Powtórzę jeszcze raz...że tak podchodząc do tego tematu na pewno niczego nie da się porównać, a tym bardziej udowodnić bo to będą zupełnie różne funkcjonalnie programy.
33suchy. Dobrze się wczytaj, a na pewno zrozumiesz. To jest taka uwaga, dla ludzi bardzo początkujących. Ja rozumiem, że w asemblerze, napisanie programu GUI, zajmie dużo czasu i dużo linijek. To co z tą myszą? Ja już nie rozumiem. Jeśli chodzi, o asembler, to pewne urządzenia, podobno można bez problemu zaprogramować. Chodzi o jakieś wywołania z BIOSU....
a z czym masz największe problemy? nie ma sensu dyskutować o tym na tym forum, pisz do mnie na maila: euromatic(at)go2.pl Jeżeli jesteś gotowy wejść w PIC to polecam "Proton Basic plus" jest rewelacyjnie prosty, Szybko zaczniesz robić na pica. Będziesz miał plik ASM , więc będziesz mógł sobie to porównać i ewentualną wstawkę zrobisz w asm. pozdrawiam
Nie wszystkie strony się otwierają ale poczytaj sobie dobry kurs z assemblera http://republika.pl/skowi_magik/index.ht... Masz tu także kurs http://rudy.mif.pg.gda.pl/~bogdro/index....
CJNE a, 4, next5 oznacza: "porównaj zawartość akumulatora z zawartością komórki pamięci numer 4 i jeśli są różne - skocz do next5". Co masz w komórce pamięci numer 4? Pewnie chciałeś porównać ze stałą 4 - w asemblerze 51 jest taki znaczek #...
Ten potworek ma być w pętli. Ma sprawdzać (porównać) ciąg bajtów i w zależności od tego czy bajt = np. 222 skoczyć do etykiety, natomiast jeśli bajt = np. 100 również skoczyć do etykiety ale już innej.
Dobry wieczór! Nadszedł czas kończenia odłożonych na później tematów. Wcześniej nie wiedziałem, jaki format będą miały dane, które prześlę do CA80 za pomocą karty SD. Asembler TniAsm, który wcześniej używałem, nie tworzył plików *.hex (albo nie umiałem tego zrobić), a plik *.bin jest trudniejszy do obróbki. Sbasm ma wszystko, czego potrzebowałem, więc...
Ale przecież Tiny15 posiada 32 rejestry a CodeVision wyraźnie wypisuje gdzie umieścił jaką zmienną: wysw -> r4 dig0 -> r5 dig1 -> r6 dig2 -> r7 dig3 -> r8 Nie rozumiem tego. Jak wrócę to spróbuje porównać asmy w obu wariantach programu. ---------- Dobra, nie znam sie na asemblerze dla AVRów, tym bardziej tym generowanym przez jakiś kompilator C. Może...
Coś mi w tym teście nie pasuje. Kilka układów z tym samym rdzeniem, a takie rozbieżności? O ile czasy żonglowania pinem można jakoś łatwo wytłumaczyć to czasy obliczania filtru już są dziwne. Nie wnikałem dlaczego, ale z chęcią dowiem się w czym problem. ATMEL SAM D103 cykle27 cykli FREESCALE KE043 cykle28 cykli FREESCALE KL034 cykle29 cykli NXP LPC8114...
Dobra, problem rozwiązany :D Działa :p Między linijki 'Ldi R16,32' I 'Out GIMSK,R16' Trzeba podopisywać 'Out GIFR,R16' Problem z powyższym kodem polegał na tym że Komendę otrzymuje w stanie zanegowanym, i aby układ reagował na określony klawisz to trzeba porównać R27 z (63-Kod klawisza). Rozwiązane. Zamykam Temat. Dziękuje panowie za pomoc :D
Żadnych floatów, same operacje na typach uint8_t oraz C-stringach. Dużo danych w pamięci programu...r Wystarczą operacje na wskaźnikach a już okazuje się, że w asemblerze jest mnożenie. Jak już wspomniał (at)trol.six trzeba porównać listingi asemblerowe.
... Program chodzi, ale nie obyło się bez niespodzianek. W funkcji exit_delay przy zdjęciu ze stosu r17 rejestr ten zeruje się i program dziwnie się zachowuje. Zdejmując ze stosu tą wartość do jakiegoś innego rejestru np r25 wszystko chodzi poprawnie. Czy wie ktoś czemu tak się dzieje? Cóż , Twój przypadek , można by porównać do takiej opowieści: "Wkładam...
Witam próbuje napisać projekt a mianowicie program pracy wentylatora w łazience chodzi o to urządzenie miało by jeden czujnik na wejściu i wentylator na wyjściu Po wejściu osoby do łazienki odmierza sobie czas pobytu tej osoby w łazience oczywiście po wyjściu program powinien porównać czas zmierzony z trzema przykładowi czasami i włączyć wentylator...
Mam analizator stanów logicznych, część sygnałów wczoraj sprawdziłem, zmieniają stany tylko kwestia sprawdzenia czy dla zadanych wartości ustawiane są poprawne stany oraz w jakim czasie... Najlepiej będzie jak trochę "zmasakrujesz" Twój program i przy pierwszym wywołaniu instrukcji która robi cokolwiek z pamięcią dasz ją w pętlę z krótką przerwą -...
(at)excray: tak dla sprostowania - kod który wrzuciłem, a dokładniej mówiąc funkcja asm, działa dla 8 kanałów (ma możliwość sprawdzenia dotyku na 8 pinach), a Twój kod na jednym, dlatego musiałbyś porównać wielkość wycinając kod tylko dla jednego kanału ;) (at)gaskoin: To co robi texas jest najbliższe temu wykrywaniu które wrzuciłem w pierwszym poście....
W takich przypadkach najlepiej po prostu obejrzeć tworzony listing w asemblerze (u mnie rozszerzenie lss) dla obu przypadków i porównać.
Czy ma ktoś może jakieś programy w asemblerze lub c dotyczące tego wyświetlacza? Potrzebuje do porównania, bo mi nic nie działa i nie wiem dlaczego.
Wiadomo że ASM jest lepszy. Mówią że się szybciej pisze w "C"? Niekoniecznie. I tak 90% czasu to testowanie a nie pisanie programu. Do mikrokontorlerów o małych zasobach tylko asembler. To miałem tyle Pozdrawiam Asembler
Teraz potrzebuję jeszcze porównać dwie komórki w pam. ram jedna to stan portu , druga to stała wartość wogóle są dwie stałe wartości stała1 stała2 czyli muszą być 2 porównania jeśli zgodne to skok do podprogramu jesli nie to kontynuacja programu cjne a, stala1, ste-7; ale ten rozkaz jest dla różnych jaką tu operacje najlepiej zastosować Pozdrawiam !!!
Klasyczny temat "o wyższości świąt Wielkiej Nocy nad Bożym Narodzeniem" :) Spór jest ciężko rozstrzygnąć bo każdy na swojej drodze zaczyna się specjalizować i nigdy nie jest dokładnie tak samo dobry w dwóch językach aby je obiektywnie porównać. Trzeba by było zrobić olimpiadę programistyczną z pisaniem identycznej aplikacji w różnych językach i po kilku...
Jak ja lubię taki niekomentowany kod ;-) Na Twoim miejscu zrobiłbym raz katalog na PC, a raz Twoim programem i porównał obrazy binarne powstałe w obu przypadkach. Albert
nsvinc to chyba ma profesjonalne IDE i kompilatory w firmie. No niestety...:P Przy czym zauważmy: 1) Nawet tak drogie i profesjonalne narzędzie jak Keil da się spiracić :] 2) Narzędzia? PicKit chodzi po dwie stówki, a JTAGi do ARM promuje i opycha Freddie Chopin, i ma na swojej stronie idiot's guide jak postawić toolchain i używać tego JTAGa... Ale...
Właściwie zgadzam się z Bolkiem, ale czasem "nie warto wyważać otwartych drzwi" - po to producent zamieszcza przykładowe, gotowe procedury, aby się na nich wzorować. Ja jednak lubię samodzielnie opracować sobie coś, a dopiero potem porównać to z profesjonalnym programem (lub układem - nie dotyczy to tylko programowania). Michałowi przesyłam procedurę...
Pisze program w asemblerze. Oto dokładnie o co mi chodzi. Chce porównać daną którą mam w tablicy np. 00000010 z daną wprowadzaną do portuB. Młodsza część portu B (b0-b3) to dane które są ważne. Starsza część mnie nie interesuje. Ponadto młodsza część jest wprowadzana do procka jako negacja ponieważ tak jest reprezentowana dana z poprzedniego układu...
Błąd jest tu - stos ląduje w obszarze I/O (okolica przetwornika ADC) : ldi r16, low(RAMEND) out SPL, r16 ldi r16, high(RAMEND) out SPL, r16 Porównaj pierwsze słowa dla procesora z moim załącznikiem (plik Main.asm) ;Proc InitStack() InitStack: ; It must be not to be a subroutine, because must ; be stack point initialised before...
Porównaj sobie instrukcje asemblera AVR, x86, ARM, ColdFire i powiedzmy jakiegoś procesora sygnałowego. Jaki procent się powtarza? W Fupli wybierasz bloczek spośród wielu innych, bloczki są grupowane żeby łatwiej je było znaleźć. W IL piszesz program w edytorze tekstowym. Jak chciałbyś je grupować? Rozkazy IL są podzielone na grupy tylko w helpie. W...
1. Typ procesora- uznałem że pisząc w dziale '51 domyślnie chodzi rodzinę '51, czyli 8051, 8052 itp. Nie wyszczególniałem że chodzi mi o dokładnie posiadany at89s52, bo pytanie dotyczy się całej rodziny-architektury. Wpis dla 6502 miał pokazać ideę dla obeznanych z tym asemblerem. 2. Nie będę polemizował na temat tego jak kto tę technikę postrzega-...
Najlepszą metodą znalezienia błędu w przypadku jak nic nie pomaga jest analiza kodu w asemblerze jaki został wygenerowany z twojego programu i porównanie go z działającym programem. Pamiętaj że rdzeń cortex-m0 w przeciwieństwie do cortex-m3 jest znacznie prostszy i analiza asemblera nie jest aż tak skomplikowana oczywiście na początku wyda ci się to...
Te moje maszyny stanów to na pewno nie jest "event driven programming" - a przynajmniej nie jest to świadomie przeze mnie robione :-) Mnie chodziło o co innego. Raczej porównałbym to z RTOS'em bez wywłaszczania - tyle że procedury same dzielą się na "kawałki" a nie robi to za nich scheduler czy inny zarządca. Kiedyś napisałem artykulik na ten temat:...
Zgadza się co do ceny - jak na studenta jest iście okrutna . Zacznę więc od płytki stykowej . W sklepie koszt 20 kila zł + mega8 to 30zł + lcd 2x8 i zmieszczę się w 40zł + programator to 100zł . Resztę drobnicy mam . Czytałem gdzieś , że zworki do owej stykowej płytki można wykonać ze skrętki komputerowej ? dobrze czytałeś ;) ale szczerze polecam tak...
Pamiętam ten odcinek, cóż GPT korzystał z małej bazy tekstów asemblera i coś generował ale zbyt słabej jakości dane były dostępne. Ciekawie robi się gdy AI może sprawdzać swoje "pomysły" eksperymentalnie, taki był pomysł na syntezę chemiczną, AI modelowało eksperymenty a następnie najlepszą prognozę wykonywało na automatycznym laboratorium, które istniało...
Wiele zależy od tego co ten program robi, a poza tym Arduino IDE nie słynie z bardzo optymalnego kodu. Chcąc w pełni wykorzystać możliwości procesora to tylko czysty C+ lub asembler (nie wiem czy jeszcze ktoś używa).
Ale mimo wszystko zastanawia mnie czego unikać aby przysłowiowo nie "zamulić" programu. Moze są ogólne rady. Zakładając, że nie korzystamy z wait czy waitms w pętli głównej to widać, że już jakieś doświadczenie masz w programowaniu, i powoli jak mówią koledzy wyżej dochodzisz - jak każdy zresztą- niestety do kresu możliwości Bascoma. Tzn można z niego...
Ściągnij sobie plan przedmiotów na obu kierunkach ze strony uczelni. Porównaj. Ja studiuję AiR na wydziale mechanicznym w Białymstoku. Moim zdaniem (i wielu ci to powie) profil kierunku zależy od wydziału na którym się znajduje. Na mechanicznym mamy dużo przedmiotów mechanicznych szczególnie na pierwszych semestrach np.: rysunek maszynowy, napędy płynowe,...
Co do picow napisałes ze mozna zmieniac w nich zegar podczas pracy. Ja mówie że atmel też taką funkcje posiada i oto sie złościsz? Ja się nie złoszczę - ze mnie jest niespotykanie spokojny 43 latek. Porównaj moją wyopowiedź i wytłuszczony jej fragment A tak przy okazji ... by minimalizować pobór energii przez projektowane przeze mnie aktualnie urządzenie,...
Tak szczerze na µC zaczynałem w asm i z nim nie skończyłem. Na poczatku było sporo materiału do wchłonięcia, pdf-a od AT90S8515 w niektórych miejscach znam na pamięc... ;) Tym niemniej to nie ja zadałem tu pytanie, na które odpowiedzi powinien udzielić sobie każdy sam. Tu nie chodzi, o to jaki język jest wart przesiadki. Porównałbym raczej pisanie...
Jeju panowie, ja się tylko zapytałem czy mam jakieś inne opcje. Takie R14, to przynajmniej jest punkt zaczepienia. Eclipse i Codesourcery mi bardzo odpowiadają i wcale nie mam zamiaru zmieniać ich na nic innego, a jedynie porównać kody wynikowe. Projekt prosty jak budowa cepa, więc nie powinienem mieć z tym problemu, a przynajmniej wgryzę się trochę...
Morph - prosiłeś o opis metody generowania kodu dla F24x - ponizej zamieszczam przykładowy opis - praktycznie "od a do z" Zaznaczam tylko - że prezentowany program jest wręcz trywialnie prosty i wybrałem go tylko dlatego, aby ułatwić analizę plików generowanych przez assembler, linker oraz konwerter HEX - za co przepraszam :). aby wygenerować plik w...
Pisałeś może coś w C czy asemblerze żeby mieć porównanie ? Ja też pisząc w bascomie myślałem że , złapałem byka za rogi jednak po pewnym czasie i zasmakowaniu innych języków przy okazji kilku nieudanych prób realizacji projektu przejrzałem na oczy . Jeśli będziesz szukał pracy jako programista w poważnej firmie i zapytany o to jaki język znasz powiesz...
Prograsm mierzy czestotliwość zegara wewnętrznego i na tej podstawie wyświetla temperature wody. Mnie zawsze uczono że pomiar to porównanie wartości mierzonej ze wzrocową. A jak u ciebie to wyglada, co u Ciebie jest wzorcem? Układ posiada procedurę samokalibracji Mógłbyś opisać w skrócie jak rozwiązałeś algorytm samokalibracji?
Witam. Cieszę się że pomogłem. Te ORG-i to moje przyzwyczajenie - początek programu od adresu 00h, program właściwy od 30h - taki duży przeskok przez wektory przerwań. Ogólnie ORG jest dyrektywą kompilatora, powoduje umieszczenie kodu programu od adresu podanego jako argument. Jak najbardziej pochwalam naukę asemblera - tylko z jego pomocą mamy pełny...
Nie chce cie urazic(zle ostatnio sformulowalem zdania), Tak tylko pytam bo pisales, ze programujesz juz 4 lata w opengl :) a ja w vc++ 7 :), wiec szacunek :). Mam juz dosyc zwyklego softu i chce sie zajac grafika... opengl uzywalem jako wstawki w programach graficznych, statystycznych. Wlasnie mnie jedno ciekawi, taki maly kod i grafika gotowa...czy...
Porównaj sobie sposób, który napisałem wcześniej, spójrz do pliku *.lss i sprawdź jak wygląda to w asemblerze, porównaj sobie do dziesiątek operacji, które miałyby się wykonać w tych proponowanych przez ciebie IF'ach. Toż nie dość, że zajęłoby to więcej miejsca, więcej czasu to jeszcze z uwagi na to byłoby jeszcze bardziej narażone na zmiany w przerwaniach...
Jest to porównanie pierwszego (indeks "0") bitu adresu urządzenia 1wire. Potem po kolei bity aż do "63".
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...
Freddy -> po tym jak porównałem kod asemblera dla pętli opóźniającej 300ms przez FastAVR (krótszy nieco kod) do kodu wygenerowanego przez MikroPascal (nieco dłuższy) to - jasno widać, iż autor FastAVR'a przyłożył się bardziej do optymalizacji kodu. Z tego co mówisz zapewne nie tylko przy fragmnetach odpowiadających za pętle opóźniające. Więc jest to...
Jako, że moja przygoda z ADuC812 powoli zaczyna dobiegac końca, czas pomysleć o wykonaniu swojego własnego układu testowego. Jaką rodzine procków wybiorę tego jeszcze nie wiem, z czasem wyjdzie. Natomiast jak to nie wiem w jakim środowisku programistycznym osiąde. Czytałem trochę o komilatorach AVR i GCC. Sa darmowe i bez ograniczeń kodu wynikowego....
Tak eliminacja wpływu niestałości długoterminowej (dryftu) to zaleta takiego pomiaru, podobnie w metodzie mostkowej eliminuje się wpływ zmian napięcia zasilania na wynik. Czytanie pojedynczych rejestrów jest możliwe, lepiej jednak od razu czytać cały rejestr. Kompilator zadba o odpowiednią kolejność i zoptymalizuje kod. Można porównać jak to wygląda...
To nawet trochę dziwne porównanie, ryzykowanie życia na trudnym szlaku turystycznym, a trudność nauczenia się programowania w asemblerze... Gdzie sens i logika ? Jeśli programowanie jakiegoś prymitywnego procesorka w jego kodzie wewnętrznym to niedostępny dla większości programistów szczyt Sagarmatha, to gdzie są ludzie piszący oprogramowanie narzędziowe,...
zerpo --> dlatego dodałem, że to nie przesada - bo każde rozwiązanie , które działa poprawnie jest ok ;) i wcale się nie kłócę które lepsze. Pewnie, że to , które podałeś spokojnie zadziała z tym wentylem. Jednak polemizowałbym ostro co do tego, że rozwiązanie podane przez ciebie zmniejsza obciążenie procesora. Być może zapominasz o tym, że każde przerwanie...
Ja uważam, że nie ma to jak zacząć poznawać dowolną rodzinę procków za jaką się zabieramy właśnie od asemblera. Warto go nawet bardzo dobrze poznać bo później gdy trzeba zrobić jakieś krytycznie-czasowo ważne wstawki to wiadomo - asm ;) Natomiast w większości projektów jak sam zobaczysz nie jest aż tak istotne to jaka jest objętość kodu wynikowego....
Liczniki to możesz zwiększać jak masz sterować kociołkiem o ogromnej stałej inercyjnej ale nie w przypadku np. filtra gdzie tego typu "rady" są mocno nie wskazane. Branie jak najmniejszego procesora przypomina mi trochę propozycję, żeby jeździć "silnikodmuchawą" F126p mogąc jeździć Mercedesem i to praktycznie w tej samej cenie. To są realia cenowe rynku...
Jeśli możesz porównaj jeszcze obydwa listingi, w jednym celowo nie było deklaracji : Config PortA=Output
Moim zdaniem nigdzie nie skacze. Disassembler nie radzi sobie z podaniem własciwej linii kodu źródłowego. Porównaj sobie z plikami .lst. Jeżeli debugujesz kod zoptymalizowany, to musisz pogodzić się z tym, że momentami bedzie to zadanie lekko schizofreniczne.
Wydaje mi się , że do takich porównań lepiej użyć XRL , niż SUBB . Piotrek
(...) matować liczby z zerami wiodącymi (najlepiej bez sprintf zajmującego dużo FLASH), zwłaszcza w wypadkach jaki podałeś przy DS18B20 int16_t fraction = (temperature & 0xF) * 625; // Część ułamkowa, 625 = 0.0625 * 10000, przecież gdybyśmy wyświetlili samą liczbę po przecinku mielibyśmy 0.625 zamiast 0.0625 ? ### 1) Weryfikacja w asemblerze na uC...
Wybór należy do ciebie zależy co ma wynikać z tego porównania. A zanim zadasz pytania na forum spróbuj sam. CJNE wydaję się logicznym rozwiązaniem. Odejmowanie i porównanie z zerem jest również możliwe. A jeśli chcesz uzależnij jakiś fragment programu od tego która z liczb jest większa zastosuj sposób z odejmowaniem z sprawdzaniem odpowiedniej flagi....
W samym AVR Studio można pisać tylko w asemblerze, ale ostatnie wersje bardzo dobrze współpracują z avr-gcc (WinAVR). Ten kompilator trzeba dodatkowo zainstalować.
Ok, ale nawet gdyby przyjąć twoje przeliczniki DMIPS to wychodzi raptem różnica 3,5 razy, a nie 20 razy jak napisałeś. Nawet dodając do tego różnicę w zegarach (20-32 MHz), vs. max 48 MHz nie wychodzi owe 20-razy. Czepiam się, ale sam lubisz być precyzyjny. No i wiesz, że znormalizowane instrukcje, to jak znormalizowane buty. DMIPSy będą różne (być...
Wprowadź do programu dodatkowe zmienne (flagi) zmieniając ich wartość/stan i monitoruj je. Jeśli użyjesz zmiennych bajtowych, to użyj np rozkazu "cjne" i porównaj to do zera lub jedynki. Wartości zmiennych ustawiasz przy sprawdzaniu wciśniętych klawiszy, natomiast ich stan sprawdzasz w pętli.
(at)tadeko, dużo przykładów w asm jest zawartych w datasheet mikrokontrolerów atmela. Między innymi jest ten o który pytasz, jest również odczyt. Dodano po 9 Daj sobie spokój. Jeśli kolega Tadeko chce uczyć się asemblera, to należałoby mu pomóc i nakierować w odpowiednim kierunku. Przede wszystkim musi zrozumieć, że porównanie asm z bascom nie ma sensu....
Napisz program, skompiluj i poszukaj wynikowego pliku zawierającego kod w asemblerze (to będzie jeden z nowo powstałych w katalogu z projektem plików, nie pamiętam rozszerzenia). W pliku tym jest też "binarna" wersja programu - wystarczy policzyć bajty. Zobaczysz, co zajmuje mniej miejsca, jeśli porównasz 2 wersje swojego programu. Nie zapomnij o tym,...
Witam Wszystkich Napisałem malutki programik, który ma za zadanie wyświetlić mi na jednym module matrycy LED jedną kolumnę w całości, jedna pusta a następnie ma wyświetlić górną polówkę kolumny. Tak jak to przedstawiono na rys. poniżej: Program wygląda następująco: .include "m32def.inc" .list .def acc = r16 .def acc2 = r17 .def param = r18 .def licznik...
ja robiłem disasemblację ale nie znam na tyle asemblera, żeby dopatrzyć się przyczyny. porównywałem kod dla różnych wartości $crystal ale do żadnych wniosków nie doszedłem. PC A to szkoda ,bo gdybyś dokładniej się przyjrzał(porównał pliki HEX) ,to zauważyłbyś niechybnie, że dla różnych wartości "crystal" kod wynikowy jest zawsze IDENTYCZNY. Pzdr. Piotrek...
Nic nie trzeba informować kompilatora - Bascom ładnie przyjmuje wprost rozkazy asemblera ale w zasadzie atom1477 zrobił to nawet bez asemblera - sorki - po prostu "ręcznie" odwołał się do rejestrów i wpisał do nich odpowiednie wartości tzn poustawiał bity tak żeby coś tam działało w tym przypadku co ja ci podałem trza by to było mniej więcej zrobić...
Dodać RETI oczywiście należy, a dbać o rejestry także :) Jednakże w większości przypadków, nie ma potrzeby uciekania się do wstawek assemblera, jedynie w krytycznych aplikacjach - wtedy oczywiście tak. EDIT: Bardzo fajnie porównał to Tomek w swojej pierwszej książce w rozdziale Atrybut NAKED i obsługa przerwań w asemblerze . i podsumował następująco:...
(at)Freddie Chopin PDF do tego PICa zajmuje 174 strony, wiec chyba az tak proste to to nie jest. Wybor kompilatorow ograniczony, zerowy? Moze prosic o bycie nieco mniej tajemniczym? 0x41 0x56 0x45!! - co to oznacza? (at)kamyczek Ten PIC ma uzywac jak najmniej pracu, czy da sie go budzic co 4 godziny? Mam srednie doswiadczenia w PASCALU, bardzo podstawowe...
Każdy inaczej widzi optymalizację dla jednego to program w 2 godziny dla innego zamiast 8kB w C 4kB w asemblerze kosztem czasu który ,trzeba poświęcić na napisanie kodu . Kolega napisał program w Bascomie , czy to tak ciężko zrozumieć że łatwiej jest wstawić tam 4313 i dopiąć np 25320 . Pamiątkę sobie zmieni i ma inny język . Z optymalizacją w C jest...
Postanowiłem także dodać swoje 5 groszy. Otóż ja zaczynałem programować w asemblerze dla Atmegi8. Myślałem na początku, że będzie wszystko fajnie i przyjemnie. Nawet tak było :). Napisałem swoją bibliotekę do obsługi wyświetlaczy LCD 2*16, no i może wszystko by było fajnie, tyle że biblioteka zrobiła się dość obszerna, nie mówiąc o czasie jaki poświeciłem...
Dzień dobry Pozwoliłem sobie porównać przekład asemblerowy dwóch funkcji wykonujacych konwersję liczby binarnej czterobitowej na odpowiadającą jej cyfrę hex. Pierwsza to wersja zaproponowana przez BlueDraco : [syntax=c] uint8_t FourBitsToHex( uint8_t bajt ) { return "0123456789ABCDEF"[bajt & 0xF]; } [/syntax] i druga moja : [syntax=c] uint8_t FourBitsToHex(...
nwiązaujac do burzliwej dyskusji na temat wymiennika regeneracyjnego chciałem podzielić sie swoimi spostrzeżeniami : zastosowanie "trzeciego" wymiennika nie przynosi wprost żadnego efektu energetycznego bo nie dostarcza on ciepła do GZ. Sens jego zastosowania w moim przypadku polega na tym że przegrzewanie pary nie odbywa się w parowniku , a wyłacznie...
Dzięki Kiedyś jak na PC (w Borlandzie) rzutowałem int na float to miałem problemy z dokładnością, bo po zrzutowaniu float nieco się różnił, co jest naturalne i wynika ze sposobu zapisu (i obliczania floata). Przypuszczam, że zakładając: int a float b warunki a>b oraz b>a zadziałają, a a==b nie zawsze Spróbuję, jak będą problemy to spróbuję z double,...
https://obrazki.elektroda.pl/4209297400_... Cyklicznie trafiam na dyskusje próbujące określić, co jest lepsze - podejście niskopoziomowe czy użycie gotowych platform / frameworków. Ostatnio zastanawiam się, czy taka ogólna dyskusja ma jakiś sens? Przy ściśle określonym przypadku można dyskutować, jakie rozwiązanie jest lepsze pod względem...
AVR to procesor RISC, czyli o zredukowanej liście rozkazów, za to ma 32 rejestry operacyjne. Rejestry od r0-r15 nie mogą służyć w trybie natychmiastowym. Generalnie to nikt tutaj nie ma ochoty powielać wszystkiego, co już zostało napisane setki razy, w tym w dokumentacji na http://www.atmel.com/dyn/products/datash... Lista rozkazów...
porównać kolumna porównać kolumna porównać arkusz porównać komórka
pralka blokada polar sterowanie dwoma obwodami pasek rozrząd citroen
kluczyk kodowanie kluczyk kodowanie
Denon DRA-900H – czy można podłączyć głośnik centralny? Stereo 2.2 bez wyjścia center LG 3000 SIMPLINK (HDMI-CEC) – jak włączyć funkcję CEC w telewizorze LG serii 3000