zapisze to matematycznie w postaci "bajtowej" gdzie jedna wielka litera to jeden bajt a 0 to jeden bajt tylko że równy zero X,Y / Z,A = 0W (wynik) + 0R (reszta) teraz reszta mnozona razy 256 czyli 0R * 256 = R0 R0 / Z,A = 0V i ostateczny wynik to W,V teraz lepiej to zapisałem ??? hehe
Nie, nie jest. DIV, to dzielenie liczb bez znaku, IDIV to dzielenie liczb ze znakiem.
Zrób na przykład tak: jz SKOK ... ... ... SKOK: ljmp DZIEL .. ..
Przede wszystskim trzeba wiedzieć co to za procesor. Domyślam się że 8-bit - więc nie ma instrukcji do dzielenia 16-bit (pomijam jakieś 'super-wynalazki' z układem arytmetyki zmiennoprzecinkowej itp.) Trzeba napisać lub poznać podprogram który dzieli liczby 16 bitowe i według tego się kierować.
Podziel liczbę przez 10. Część całkowita będzie dziesiątkami a reszta z dzielenia jednostkami.
Witam. Timer mikrokontrolera '51 taktowanego zegarem 11.059200 MHz zliczy w ciągu jednej sekundy 921600 impulsów. Ze względu na wielkość timera (2 bajty) może Kolega zliczać setne części sekundy - ustawić przerwanie co 9216 impulsów. Każde wywołanie przerwania zwiększy zmienną o 1, czyli mamy w niej wynik pomiaru z rozdzielczością 0,01 s. Rozwiązanie...
Np binarnie - dzieląc dany rejestr przez dwa i wyświetlanie 0 lub 1 w zależności od stanu rejestru, który przechowuje resztę z dzielenia.
Jak przez potęgi dwójki to szybko przesuwać bity w prawo.
Proponuję [url=http://www.dzyszla.aplus.pl/downloa... prostych kodów do nauki Assemblera
Wydaje mi się, że kolega, autor tematu otrzymał wystarczająca pomoc. Wylał też na nas wszystkich wystarczającą miarkę złośliwości. Zamykam ten temat, zanim będę musiał zablokować koledze konto.
Musisz dzielić przez 10 i resztę z dzielenia traktować po kolei jako jednostki, dziesiątki, setki, itd. Myślę, że podstawowe pytanie, to to, co to za asembler i jakie rozkazy zawiera.
Witam Na czwartek muszę przygotować listingi programów napisanych w asemblerze które wykonają poniższe działania: 1. Dane są liczby: A=0F1h, B=00011111b. Obliczyć binarnie A+B, A-B, B-A. Podać wynik w postaci binarnej i szesnastkowej. 2. Napisać program mnożenia x4 liczby umieszczonej w rejestrze R7 bez użycia instrukcji mul ab. 3. Napisać program...
Witam. By zapoznać się na dobre z AVR'ami rozpocząłem pisanie programu z procedurkami które później będe wykorzystywał. Jak zawsze, chcę by każda część programu była w 100% moja, żadnego kopiowania z innych źródeł. Niestety, napisanie jakiejś bardziej skomplikowanej procedurki od podstaw pochłania dużo czasu. O wiele prościej by było sięgnąć do jakiegoś...
Możesz pomnożyć resztę przez 1000 a następnie znowu podzielić to przez dzielnik. 1 x 1000 = 1000 1000/16 = 62.5 Czyli otrzymasz 62 i 8 reszty. Można by pomnożyć przez 10000 uzyskując na koniec wynik 625 ale wtedy dzielenie przez większe liczby nie będzie działało bo reszta będzie duża i pomnożona przez 10000 nie zmieści się w 16-tu bitach.
Można to robić, ale chyba tylko w celach poznawczych. Tak naprawdę w programie i programowaniu szkoda na to czasu - tym może sie zająć kompilator a nam pozostaje wymyślić ładnie zapisywalny w kilku liniach algorytm (mówię o C). Mimo wszystko nie uważam, że asembler jest bezużyteczny - jest bardzo potrzebny, ale raczej do innych celów.
Przy dzielenie przez dwa tracisz jeden bit znaczący stąd taki sam wynik otrzymasz przy liczbei x parzystej i niepraszystej na przykład dla x=10 i x=9 (10-3)/2=3 (9-3)/2=3
a czy jest wogule w asemblerze dzielenie przez inne liczby niż 2 i jej wielokrotności bo znalazłem min. ldi r16,30/3 ale tylko tą komenda
Hmm... widzę, że temat jest stary, ale może komuś to się przyda. Dzielenie przez 4096, jako że ta liczba jest potęgą dwójki (2^12) to zwykłe przesunięcie w prawo właśnie o te 12 bitów. Jeżeli XL:XH zawiera zliczone impulsy to podzielić to przez 4096 można tak: mov XL, XH ; skrócone podzielenie przez 256 ;) ldi XH, 0x00 ; wynik w XH zawsze będzie właśnie...
Witam muszę wykonać poniższe dzielenie w asemblerze a/(b*c) i nie wie jak to zrobić. Dla (b*c)/a wyglądałoby to tak: mov ax,b mov bx,c mul bx mov bx,a div bx Ale jak to będzie wyglądało dla a/(b*c) ?
Kto szuka http://www.piclist.com/techref/microchip...
Witam Moja przeróbka. Dzielenie 3B na 2B. Działa na pewno. ;dzielenie 3B/2B ;dzielna w r18,19,20 ;dzielnik r16,r17 ;wynik w r18,r19 i r20 ;reszta w r12,13,14 DIV32: clr r15 div16u:clrr12 ;clear remainder Low byte clr r13 ;midle subr14,r14 ;clear remainder High byte and carry ldir21,25 ;init loop counter d16u_1:rolr18 ;shift left dividend...
Okey, tak zrobię. A swoją drogą Debbuger mówi mi, że gdzieś w moim programie występuje dzielenie przez zero, ale nie jestem w stanie określić kiedy to może się dziać. Byłbyś w stanie pomóc z tym?
Algorytmy mnożenia i dzielenia, a także innych działań są dokładnie opisane m.in. w książce Józefa Kalisza Podstawy elektroniki cyfrowej . Sporo algorytmów można znaleźć na stronach producentów mikrokontrolerów w działach aplikacje. Jeśli znasz choć trochę asembler '51, to na pewno dasz radę. Pozdrawiam.
Witam. Program możesz napisać tak: 1.Potrzebujesz dodatkowej zmiennej w której będziesz przechowywal wyraz oraz zmiennej zliczającej długość wyrazu. 2. W pętli (ilość obrotów równa jest ilości znaków w zdaniu) wykonujesz: a) jesli aktualny znak jest równy spacji wyświetl wyraz i liczbę znaków oraz powróć do punktu 2 czyszcząc te dwie zmienne. b)dopisz...
Witam Mam ogromna prośbę. Potrzebuje przeanalizować 2 programy które niestety nie działają poprawnie. Programy pisałem sam lecz niestety sa w nich pewne błędy które niestety nie mogę znaleźć. Po asemblacji działają jednak w programie symulacyjnym nie wyświetlają tego co powinny, wiec s to programy bardziej wychodzące z tego co ma robi dany program niż...
Z pewnością sposobów jest mnóstwo. Przypomniałem sobie troszkę asembler mcs51. Mam nadzieję, że program w asemblerze wyjaśni wątpliwości (albo pogłębi ;-) ). Skorzystanie z "tabliczki dzielenia" lub "tabliczki mnożenia" na liczbach o podstawie 2^8 przedstawia poniższy program. Tabelę rozbiłem na 3x256 bajtów. Obliczenie realizowane wg zależności x=256*a+b...
Musisz wykonać konwersję wartości binarnej odczytanej z ADC na cyfry dziesiętne. Użyj dzielenia przez dziesięć (DIV). Pozdrawiam, Dr.Vee
Jak w asemblerze (Pentium) uzyskać resztę z dzielenia liczby 64 bitowej przez 32 bitową, iloraz mnie nie interesuje. DIVL owszem działa, ale tylko wtedy gdy iloraz jest mniejszy niż 2^32 Asembler mojego kompilatora nie lubi DIV RAX.
Szkoda, że nikt (ze studentów) nie wpadł na to, że wystarczy jedna funkcja, by przedstawić wczytaną wartość w dowolnym systemie pozycyjnym. Chodziło tu o uzmysłowienie sobie ("odkrycie"), że wartość liczby nie jest trwale związana z jej reprezentacją i nie ma znaczenia to, jak liczba jest fizycznie reprezentowana w pamięci komputera. Dlatego było tak...
Jeśli chodzi o odejmowanie o jeden to dodaj 99 i potem wykonaj DA A. Jeśli zaś chcesz odejmować dwie wartości binarne np. 56 - 23 = 33 a potem przetwarzać je na na kod BCD to trzeba korekcję zrobić "ręcznie" z dzieleniem przez 100, 10 włącznie. No chyba, że chcesz dwie liczby BCD odjąć od siebie.
Trochę dawno pisałem w asm i nie wiem czy jest gotowe przerwanie do wypisywania liczb ale możesz zrobić np. tak: 123 :10 = 12 reszta 3 12 : 10 = 1 reszta 2 1 : 10 = 0 reszta 1 Dzielisz liczbę przez 10 i wrzucasz reszty z dzielenia na stos dopóki wynik z dzielenia różny od 0. Później ściągasz ze stosu dodajesz 48 i wypisujesz.
Ależ sumuje dobrze, tylko żeby wyświetlić, musisz dokonać odpowiednich konwersji. Pamietaj, że wyswietlasz tylko znak o wskazanym kodzie ASCII. Dodawanie i odejmowanie od tego kodu 30h powoduje "konwersję" cyfry na kod ASCII tejże cyfry lub odwrotnie. Zatem wyswietlanie wyników >= 10 wymusza potrzebę wyświetlenia dwóch znaków: 1. O wartości ASCII (wynik...
Mniej na temat ale ja robię dokładnie jak kamyczek. Zacząłem od Bascoma bo było łatwo i szybko, nie zabija początkującego jak C. Wszyscy krzyczą żeby zacząć od C ale moim zdaniem dla kogoś kto zaczyna programowanie to tylko się nabluzga i zniechęci. Gdy mi Bascom już nie wystarczał lub wyżerał pamięć to robiłem wstawki ASM, i tez kończyło sie na tym...
A na jaki system? Generalnie sprawa wygląda tak, że wszystko się robi metodą "słupkową" przez dzielenie przez podstawe systemu liczenia.
Dzielenie jest łatwe w uproszczeniu, jeśli np. obie liczby mają jednakową ilość zer z prawej strony, to o tyle mozna je przesunąć w prawo. Ogólnie algorytm dzielenia jak liczb dziesiętnych w podstawówce. Mnożenie jest już w µkontrolerze i to nawet w postaci cząstkowej fmul .
8 tysięcy przerwań na sekundę z nietrywialną obsługą na AVR niekoniecznie musi się udać. Co do reszty - albo C i uint64 odpowiednio przeskalowany (czyli liczymy nie w jednościach, a w tysiącznych), albo AVR, asembler i własny typ dokładnie taki jak trzeba np. 45-bitowy, i też liczymy w tysiącznych. Mnożenie i dzielenie uint64 może AVR zarżnąć. Z ARM...
Witam, //--------------------------------------... char s_write_byte(unsigned char value) //--------------------------------------... // writes a byte on the Sensibus and checks the acknowledge { unsigned char i,error=0; for (i=0x80;i>0;i/=2) //shift...
Tu są procedury matematyczne dla '51: http://www.8052.com/codelib/math8051.asm Dzielenie 32 bitowych przez 16 bitowe bez znaku, to procedura UDIV32, a ze znakiem DIV32. Pozdrawiam.
Rozumiem, że przez "obliczyć %" masz na myśli policzenie 100 * x/15360. Żeby było prościej liczysz x/153 - błąd nieduży - przy niskich wartościach niweluje potrzebę korekty zaokrąglania, przy bliskich 100% błąd jest największy i dochodzi do 0.5%. Możesz sobie ręcznie zoptymalizować procedurę dzielenia dla znanego dzielnika - 153 to 0x99 binarnie, a...
Dzielenie przez 10 możemy zastąpić przez przesunięcia bitowe w prawo. Od kiedy? Jak juz koniecznie dzielic przez 10 stosujac przesuniacia 2 prawo to może tak? Oczywiscie zakladając wymagana dokładnośc X=a/8-a/32+a/128-a/512+............
Witam, powoli kończę modernizację swojej nawijarki do cewek i transformatorów, licznik liczby zwojów postanowiłem wykonać na mikrokontrolerze jak w tytule PIC16F877A. Właściwie wszystko sprzętowo działa, za to utknąłem na końcu programu, otóż licznik może zliczać do 65535 zwojów, wszystko wyświetlam na wyświetlaczu 2x16. Mój problem związany jest z...
Tu jest taki dość "przyjazny" algorytm, bez dzielenia i mnożenia, ale potrzebne są instrukcje przesunięć logicznych, porównywania, oraz AND i OR http://www.cp.eng.chula.ac.th/~krerk/pub... Jest jeszcze coś takiego, myślę, że Ci będzie pasować. Liczy pierwiastek z 32 bitowej liczby naturalnej (n), wynik w root: root=0 for(N=15;...
najpierw odpal bascoma i napisz $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 2400 Do Print "Dlaczego nie chcesz dzialac " Waitms 500 Loop i jak to pójdzie to się baw w asemblerze. a mam jakiś schemat z tuta z ektrody, w dp9 pin 5 na mase i 2 i 3 nadawanie/odbiór, poszukaj jak to bedzie na forum, reszta pinó sobie wisi. proponuje fuzy bitw...
Witam Pisze sobie a raczej próbuje napisać sobie kalkulator w asemblerze przy użyciu klawiatury matrycowej i wyświetlacza LCD. i tak mój problem polega na tym że chciałbym żeby klawisze "góra, dół, prawo, lewo" miały przypisaną operacje dodawania odejmowania mnożenia i dzielenia. np wciśniecie "prawo" to dodawanie np 8 "prawo = +" 2 =10. Proszę o jaką...
Jak kolega napisał musisz zamienić liczbę na odpowiednie znaki ASCII i wydrukować te znaki. Możesz napisać uniwersalną procedurę zamiany, działającą na zasadzie: dzielenie i resztą z dzielenia indeksowanie tablicy cyfr szesnastkowych (dla 10 i 2 wykorzysta mniej cyfr). Możesz też napisać oddzielne procedury i wykorzystać fakt, że na 2 i 16 konwertuje...
Ja mam algorytm i zrobiony podprogram wykonujący takie dzielenie, ale jest napisany na inny procesor. Dziwię się że ktoś jeszcze zajmuje się takimi procesorami. Z czystej ciekawości jestem ciekawy co cię zmusiło do stosowania takich uP?. Natomiast jeśli chodzi o dzielenie to łap mnie na GG, to jest sporo tlumaczenia zwłaszcza, że nie będę mógł ci pomóć...
Najpierw odczytujesz zadaną wartość w stopniach z klawiatury potem tą wartość dzielisz przez 180 i wyprowadzasz wynik. Jeśli wynik ma być z przedziału 0-2 to w pętli odejmujesz 360 aż wartość w stopniach będzie mniejsza od 360. A ten program na jaki konkretnie jest mikrokontroler??
Tylko że jak pomnożę całość przez 10 to już nie zrobię tego na 8 bitach. Czy jak dziele 2 liczby inie dzielą się całkowicie to ustawiany jest jakiś bit lub kilka ? Poza tym nie mam zielonego pojęcia jak wyświetlić pojedynczą cyfrę na wyświetlaczy z jakiejś 3 cyfrowej liczby zapisanej w końcu w postaci hex. Zakres liczb przy podanym przeze mnie wzorze...
Dzielenie przez 8 to nic innego jak przesunięcie o 8 bitów w prawo, czyli w przypadku 8-bitowych procesorów wywalenie najmłodszego bajta wyniku. Dzielenie prze 8 to nie przesunięcie o 8 bitów w prawo, tylko o 3 bity. Do autora: dzielnie wlaczysz, tracisz czas, a na końcu koledzy podsyłają ci funkcje arytmetyczne zaimplementowane w C. Jaki jest więc...
Niejasno piszesz. Zacznij może od podstaw, bo mam wrażenie, że nie rozumiesz zadania, które rozwiązujesz i, że rozwiązanie to już zostało podane wraz z algorytmem w poprzednich postach. Co ten program ma właściwie robić ? Wpisać po prostu liczby do rejestrów ? MOV R1,#2 MOV R2,#7 MOV R3,#1 O to ci chodzi ? Jeżeli liczba wejściowa jest w rejestrze R0...
Mam do napisania program w asemblerze mikrokontrolera 8051 na średnią arytmetyczna. Asemblera nie znam dobrze i tak po omacku posługuję się nim. Dlatego mam pytanie co w tym programie jest źle. PROG SEGMENTCODE CONST SEGMENTCODE CSEG AT 0 JMPstart RSEG PROG start: MOV R1,4 ;ilosc elementow w tablicy MOV R2,0 ;obecna wartosc sumy MOV B,R1 MOV A,R1...
Chyba w celu utrwalania niskopoziomowych nawyków starając się przechytrzyć kompilator (; Pewnie. A później amatorzy programowania dzięki takiemu podejściu zapisują proste zmienne jako float albo nie wiedzą jaka jest różnica dla działania programu pomiędzy dzieleniem przez 8 a dzieleniem przez 9. Wiedza o asemblerze jeszcze nikomu nie zaszkodziła czego...
Dla ułatwienie decyzji , czym i jak. Asembler 8051 -free Symulator 8051, z bardzo dobrym opisem uP. W programie są dostępne różne interfejsy: diody LED, wyświetlacze 7-seg, przyciski,silnik krokowy, oscyloskop z wyjścia przetwornika DA, klawiatura i inne z przykładami http://www.edsim51.com/map.html X-- Basic i Asembler Tak jak i powyżej z bogatym interfejsem...
Najprostszym sposobem konwersji dowolnie długiej liczby binarnej do pisemnej postaci jest ciągłe dzielenie jej przez 2 ... Dzięki za odpowiedź. Przenalizuję sobie kodzik i zobaczę, czy będę umiał go wykorzystać. Na pierwszy rzut oka wydaje mi się, że nie o to chodzi. Mnie nie chodziło o konwersję liczby binarnej do postaci pisemnej, jeśli rozumiem...
Wszystko zależy od tego, co chcemy realizować i na jakim procesorze. 1) Baskom jest bardzo dobry jak ktoś chce zacząć zabawę z procesorami. Lub też nie ma ochoty na poznanie procesora i przygotowanie mu rejestrów dokładnie do własnych potrzeb. Wbudowane mechanizmy naprawdę genialnie ułatwiają pisanie oprogramowania - np. obsługę wyświetlacza alfanumerycznego...
Cze ! Opisowo wygląda to następująco: - w pętli, której warunkiem działania jest liczba16bit>0 przeprowadzasz dzielenie 16-to bitowe (mam taką procedurę) liczby16bit przez 10 - do reszty z dzielenia dodajesz 48 i masz kod ASCII cyfry (od końca) - pętla zakończy działanie gdy liczba16bit będzie równa 0 przykład: 65535/10=6553 (reszta=5) -> 5 6553/10=655...
tjanusz :arrow: znam troszke c# na tyle ile mi jest to potrzebne, ale w c# przecież można także wstawiać kod asemblera tworząc np. swoje własne algorytmy dzałań matematycznych. Pszepraszam, ale nie wiem co to znaczy " żródełko" gcc lub FreePascal i jak mogę do tego dotrzeć :arrow: elektryk dokładnie np. teraz pracuję nad potęgowaniem modulo metodą iterowanego...
Jak kiedyś zlitowałem się nad SAB600 i postanowiłem go zastąpić czymś bardziej orginalnym to powstał taki twór. Twór o tyle ciekawy, że w asemblerze ale pod Bascomowym interfejsem. Program oprócz generowania dźwięków robi jeszcze parę innych rzeczy, ale chyba tyle to już się można zorientować w kodzie. [syntax=basic4gl] '***********************Tiny13_Gong1...
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...
Witam. Gdzie znajdę gotowe procedury w asemblerze dla pic 16f84 np. mnożenie,dzielenie liczb 32-bitowych itp.
Witam, Nie twierdzę że mój sposób sprawdzi się w Bascomie, dużo lepiej sprawdzi się asemblerze. Napisałem w Bascomie tak dla przykładu, myślę że tak jest przejrzyście, a chodzi po prostu o zasadę - sposób. AVR - serii Atmega to 8bitowce, więc tutaj w grę wchodziłoby tylko 8bit/8bit. Natomiast co ciekawe, AVR32 też nie ma dzielenia sprzętowego. Całkiem...
żadne, wszystko zależy od tego jak wygląda Twój program i czy umiesz posługiwac się asemblerem. Przy dobrym wietrze koło 30% używaj szukaj I tu bym się niezgodził. Zanim zacząłem programować mikroprocesory jednoukładowe w C moje największe programy napisane mieściły się w 2kb pamięci i też wykonywały obliczenia matematyczne typu dzielenie i mnożenie,...
(at)asembler Jaka jest precyzja tego dzielenia ?, ile miejsc po przecinku, bo w precyzji do liczb dziesiętnych to tak jak w pierwszym pisałem poście, zrobiłem taki paskudny kod, a przydało by mi się chociaż 1, 2 miejsca po przecinku: ; L R ;Compare R12,R13,R14,R15 && R16,R17,R18,R19 Cp_R12R19_32b: cp R15, R19 breq cp32r_same3 brlo cp32r_rg rjmp...
Czy ktos mi pomoze zdobyć jakieś infornacje związane z prostymi operacjami arytmetycznymi zmiennoprzecinkowymi (dodawanie, odejmowanie, mnozenie?. dzielenie?) na MCS-51. Będe wdzięczny za jakis programik (w asemblerze) na ten temat. Dzięki.
Zamówiłem książkę kolegi , bo cenię ludzi dzielących się swoją wiedzą . Choć jestem zwolennikiem asemblera chętnie zapoznam się ze spojrzeniem szanownego kolegi na zagadnienia programowania AVR w C . Przeczytałem kilka lepszych i gorszych książek o AVR. Problem polega na tym że większości coś brak . Lub wiedza zawarta opisana słowami autora jest mało...
To przyklad funkcji do konwersji liczby na stringa z zastosowaniem operatora modulo. Dlaczego tak długo i nieelastycznie? Jesli w ogóle to tak: (ale jest standardowa funkcja itoa,uitoa itd, być moze w asemblerze a wtedy modulo i dzielenie być może oszczędniej robi) To dwie najbardziej kosztowne operacje. Optymalizować można też przez wprowadzenie odejmowania...
Witam! Jestem początkujący w asemblerze, a chcę wykonać program (właściwie 2) obciążający najnowsze procesory intela przez co najmniej kilkanaście sekund. Nie ma znaczenia co dokładnie robi ten program - ja probuję mnożenia w pętlach (w drugim programie dzielenia - chodzi o jednakową ilość cykli maszynowych tych działań). Nie mogę sobie jednak poradzić...
Witam. Jeśli można to bym prosił kolegę asembler o jeszcze trochę dokładniejsze opisanie tego sposobu pomiaru napięcia bo bardzo mnie to zaciekawiło. 1.22 V to stałe napięcie odniesienia wytwarzane przez procesor , na jego podstawie przez wbudowane wzmacniacze operacyjne wytwarza on napięcie 2,56 V . To rozumiem. Jeśli napięcie zasilania podamy również...
do kolegi Dr_DEAD - sorki ale kolega chyba dużo z asemblerem do czynienia nie miał. Bo oczywiście co do meritum to się zgodzę że można ich używać naprzemiennie ze świadomością efektów drobnych niuansów w działaniu każdego z nich. Ale to jest poprostu wielka BZDURA z punktu widzenia pisania jasnych i przejrzystych programów. Pomijam jakieś wyjątki gdzie...
Samo dzielenie przez 10, potrzebne do konwersji na postać dziesiętną, zajmuje grube dziesiątki instrukcji procesora. istnieje efektywniejszy algorytm, ale którego implementacja najwygodniejsza będzie w asemblerze: http://www.classiccmp.org/cpmarchives/cp... http://lmgtfy.com/?q=dubldabl
oczywiście, że sizeof() :) ale niestety nie mam jak wyprowadzić wyniku na zewnątrz (goły procesor :( ) więc stąd mój post. To nie jest wytłumaczenie. Kod można skompilować do kodu asemblera, można w kodzie w C wprowadzić wyrażenie, w którym występuje dzielenie przez zero w przypadku, kiedy sizeof jest równe czemuś, co nas interesuje ("char __tmp =...
Witaj Nie wiem w czym widzisz problem, mnozysz czy dodajesz rownie dobrze liczby 32bitowe takze w asemblerze. Troszke wiecej problemy jest gdy je dzielisz, ale to tez do przeskoczenia (zamiana na ułamki i mnożenie) Duza liczba bitopw jest potrzebna gdy mnożysz liczby z granic przedziałów, czy ułamki, a tak to wystarczy ci najstarsze 8bitów z wyników...
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...
Programy się zwykle pisze a nie robi :) Przy pisaniu programów musisz wykonać następujące kroki: 1. Zdefiniować problem W przypadku twojego kalkulatora musisz określić: - typ obsługiwanych danych - czy to będą liczby wyłącznie całkowite czy całkowite i ułamkowe (ogólnie mówiąc rzeczywiste) - rodzaje działań jakie ma wykonywać twój kalkulator, np. dodawanie,...
1. Podrzucę Ci pomysł, pomocny lub nie. Zrobiłem PWN Atmega8 (czyli straszny dziad) generator miłego dla ucha sinusoidalnego dźwięku (w oparciu o przerwanie timera). Czystość uzyskałem, gdy na samym początku przerwania ustawiałem wartość ze zmiennej do PWM, a potem mogłem ją sobie opracowywać "na nastepny raz" do woli, nieczuły że obliczenia (mnożenia,...
Zastanawiam się czy tak ciężko przeczytać listing bootloadera i wywnioskować co się dzieje . Może zanim zadasz banalne pytanie ,na które odpowiedź znajdziesz w listingu umieszczonym w poście pofatygujesz się i przeczytasz ze zrozumieniem kod . Zrozumiał bym że pytanie zadaje amator ale 24 poziom i takie pytanie to oznaka lenistwa . Mogę zrozumieć jeśli...
Dziekuje za szybką odpowiedź. Proszę mi uwierzyć, że zadałem sobie sporo trudu i rozumiem na jakiej zasadzie wzór działa i jak fajnie można uniknąć kalkulacji floating point w asemblerze za jego pomocą. Użyłem go w też w swoim projekcie. Jedynie czego nie mogę zrozumieć to w jaki sposób wyliczyć ilość wymaganych przesunięć w prawo. Autor projektu aby...
To jeszcze ja wtrące swoje 3 grosze. Co do select case to nie polecam - mniej miejsca zajmują pojedyńcze warunki IF tylko trzeba wtedy dobrze przemyśleć aby nie wyskakiwały dwa naraz albo chociarz prawidłowa wartość była wtedy kiedy oczekujemy tego. Dodatkowo zauważyłem ze w Bascomie 8051 użycie podwójnego lub potrójnego warunku IF (if cos=1 or cos=2......
Witam !! zaczołem właśnie uczyć się programować w asemblerze i podcza pisania napotkałem na problem i nie umię go rozwiązać ?? pisałem programik dzielący 2 liczby wpisane 16 i wynik tez jest podawany szesnastkowo (nie można użyć .386) i program sie kompiluje nie ma błedów ale niestety cos nie działa ????? bardzo prosze o pomoc kompiluje za pomocą "tasm"...
znalazłem operacje dzielenia, ale w ty przykładzie zatwierdzanie jet tylko przez 7 przełącznik, a u mnbie zatwierdzanie ma być na przełącznikach 5, 6, 7 oraz wyświetlenie wyniku odpowiednio na diodach. Oto ten pprzykad: ;DZIELENIE - na podstawie wzoru programu z pracowni. ; Dana w ACC KODWYJ EQU 9216 DASCII EQU 9248 ; INILCD EQU 9408 BSEGAT 0 BLAD:DBIT1...
http://obrazki.elektroda.pl/9418966600_1... Witam wszystkich na forum. Jest to moje pierwsze publikowane DIY. Słowo wstępu… Projekt powstał z jednego, bardzo ważnego powodu: bo bardzo chciałem coś takiego mieć! Jest to układ odczytujący kod karty poprzez interface EM4095 z anteną, dekoduje, sprawdza i wysyła poprzez port szeregowy....
Czasem musimy podzielić wartość zmiennej przez stałą, która NIE JEST całkowitą potęgą dwójki. Można chytrze wykorzystać wbudowaną w procesor mnożarkę. A nawet bez mnożarki sposób jest dobry, bo dzielenie jest przynajmniej dwa razy dłuższe i wolniejsze od mnożenia. Przyjmijmy, że chcemy dzielić bajt X przez stałą D. Znajdźmy „k”, największą...
Bo już głupieję- dość szybko. No nie dziwię się, ja też bym zgłupiał ;) poważnie.... Tak sobie poczytałem cały ten wątek i aż mi ciarki po plecach przeszły od tej niby-wojny ;) tymczasem wyszedł z tego bełkot dla kogoś kto zaczyna naukę C. (tzn proszę mnie źle nie zrozumieć, nie chcę nikomu dogadywać) Pytanie wpierwszym poście było proste aczkolwiek...
No tak... po co się nauczyć lepiej programować, skoro można kupić arma za 3x taką cenę i uwalić go basicem :) Tak się składa, że umiem "dobrze programować" (zapraszam na www.soft4cnc.pl) i dlatego właśnie jestem zachwycony tym Basicem. Bo mimo kolegi sugestii, jakoby język C do programowania mikrokontrolerów różnił się zasadniczo od Basica do tego...
Rajszym, ale czy aby na pewno Delta dąży do - 0.5 dla liczb naturalnych? Nie. W tym przypadku Delta nie dąży ani do 0, ani do 0,5 tylko osiąga wartość 0 lub 0,5 w zależności od parzystości/nieparzystości kolejnych liczb Fibonacciego. Jednak błąd względny (trzymajmy się tego nazewnictwa) błyskawicznie zmierza w kierunku 0 i nie ma tu żadnych wątpliwości....
a w jakim języku programujesz ? Bo np.: w Bascomie jest gotowa funkcja. Programuje w asemblerze. Teraz mi się przypomniało, że 6 się dodaje po dodaniu dwóch liczb bcd. Najpierw do mniej znaczącej liczby. Jesli nie nastąpi przepełnienie półbajtu to się tą 6 spowrotem odejmuje, jak nastąpi to się zostawia i robi to samo ze starszym półbajtem. ... Więc...
Z jakiego zakresu masz tam liczby? Ja też pisze w asemblerze i jak mam wyświetlać liczby to jeśli mam np. zakres 0-999 to dzielę sobie tą liczbę najpierw przez 100 i mam liczbę setek. Resztę z tego dzielenia dzielę przez 10 i mam dziesiątki a reszta z tego dzielenia to jedności. Z tego co pamiętam to trzeba do tego wyniku dodać 48 i wysłać na wyświetlacz....
Trikess , w AVR jest też taka funkcja sprzętowa (Input Capture).Co prawda nie zeruje ona licznika, ale w AVR instrukcje (asemblera) są wykonywane króciuteńko i zegar nie jest dzielony przez 12, więc przerwanie od ICP1 może zawierać kod resetujący licznik, co nie wpłynie znacznie na jakość pomiaru, zwłaszcza przy takim zastosowaniu (wiatrak od PC).
Upanie: Myślisz o potęgowaniu? Czy proponujesz może: np. 123'456'789 ** 987'654'321 (mod 7'654'321) __ (unsigned) fmod( powl(123456789, 987654321), 7654321); To by miało być szybsze? A ile poprawnych cyfr będzie miał wynik i z jakim prawdopodobieństwem? ----------------------------------------... W potęgowaniu...
Swego czasu w EP był kurs asemblera i tam pośród różnych innych procedur w asembelerze były procedury dzielenia wielobajtowego. Nie ma wprawdzie 16 przez 16 ale są inne DZIE3216.ASM DZIEL328.ASM http://www.ep.com.pl/pobierz.php?id=65 W końcu liczba 2 bajtowa to tez liczba 4bajtowa z dwoma bajtami równymi "0x00" Pozdrawiam ------- tutaj strona z pozostaBymi...
Brrr, Basic. ;) Przerzuć się na C lub asemblera. Nowe AVRStudio można zintegrować z WinGCC i działa to bez zarzutów. A w C deklarujesz sobie od razu, czy masz zmienną całkowitą (char, int), czy zmiennoprzecinkową (float) i o dziwo artytmetyka zmiennoprzecinkowa nie zajmuje ogromnych ilości flasha. :)
W asemblerze to tak jest ,chyba bede musiał skorzystać z tego rozkaz Może mało precyzyjnie chodziło mi o aby tak jak w BCD rozdzielić półbajty i wydawało mi sie ze w bascomie uda sie przez dzielenie moze ktoś ma jakies pomysły
Autor się pyta, czy to możliwe, gdy tak naprawdę najwięcej zależy od niego. To, że jeden człowiek da radę, nie znaczy, że inny też może, każdy ma inne możliwości. Życie to nie telewizja, gdzie wystarczy tylko chcieć, żeby się udało. Możliwości umysłowe, finansowe, umiejętność pozyskiwania materiałów i narzędzi, przestrzeń na warsztat, czas, wytrwałość:...
Temat wart przypięcia :) - bo choć myśli płyną swobodnie w różne strony to wszsytkie informacje są ciekawe i ważne. Sam piszę w C i często zastanawiam się czy piszę we właściwy sposób, z punktu widzenia właśnie czasu wykonywania programu. I chciałbym żeby specjaliści wypowiedzieli się obrzerniej - w kontekście AVR właśnie, bo zakładam że większość zależności...
Krótki kod w C he he lepszego kawału nie słyszałem ;)) Moim zdaniem języki programowania dzielą się na szybkie w pisaniu i krótkie w kodzie wynikowym . W c pisze się szybko , a w asemblerze można mieć krótki kod i szybki program pod względem czasu wykonywania ;)
Na elektrodzie znalazło się już mnóstwo różnych sterowników dla syntezy TDD1742. Po co więc tworzyć kolejny? Pierwszym podstawowym problemem jest kwestia "tajemniczości" jeśli chodzi o sposób sterowania układem TDD1742. Dostępne dokumentacje są niezrozumiałe dla początkujących, a jeśli już ktoś coś wie to nie chce powiedzieć. Kody źródłowe zazwyczaj...
Zwykłe binarne dzielenie nierestytucyjne przy 10 bitach będzie prawdopodobnie prostsze, niż każda z tych kombinowanych metod - to w końcu tylko 8 obiegów pętli z porównaniem, przesunięciem i warunkowym odejmowaniem, tyle że te trzy operacje trzeba zrobić na 10 (czyli w praktyce 16) bitach. Gdyby toto miało przynajmniej 8-bitowe dzielenie, jak stary...
Ale kombinujecie trochę. A jaka to jest cyfra parzysta ? To taka która dzieli się przez 2. Więc podziel sobie tą cyfrę przez 2, wynik masz w akumulatorze A( który Cie nie interesuje ), a reszte masz w rejestrze B, teraz wystarczy sprawdzić czy rejestr B jest różny od zera :) Piszę rejestr A i B, co ma miejsce w mikrokontrolerach, w Twoim przypadku pewnie...
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...
ten przedział (0,1) można zrobić w ten sposób: short a/short b, gdzie a<b i nie dzielić tego bo według mojej wiedzy (może być bardzo wybrakowana [wiedza]) wyjdzie 0 więc zamiast dzielenia ten mniejszy short mnożę sobie przez kolejna liczbę i wynik mam na dwóch shortach, a później dzielę przez tego większego shorta i znów wracam rozmiarem do pojedynczego...
asembler dzielenie dzielenie asembler dzielenie liczba asembler
oświetlenie przez bluetooth bezpiecznik wycieraczka tylny miernik ustawiania anteny
Electrolux EWT1215 - Uszkodzony kondensator: diagnostyka i wymiana Układ pomiarowy tryboelektryfikacji: elektroda, oscyloskop, rezystory