Tak masz rację, nie orientuję się w asemblerze, ładnych parę lat pisałem jakieś proste programiki na zajęciach i tyle... Potrzebne mi to tylko po to, żeby pokazać, że język drabinkowy może być uproszczeniem takiego programu w asemblerze i szczerze mówiąc tylko po to mi potrzebny ten program... nie chcę się uczyć asemblera, moje zadanie dotyczy czego...
Witam wszystkich potrzebuje pomocy mam do napisania program który liczy iloczyn liczb BCD. Napisałem program w którym mnożna jest obojętnej długości natomiast mnożnik na razie jest z jednej liczby niestety ten program mi nie chce poprawnie działać.Bardzo prosił bym o pomoc poniżej wklejam mój kod. #include<iostream> using namespace std; void iloczyn(char...
Moje zadaniepolega na tym że do aplikacji po przez pipe jest przesyłany losoby ciąg bajtów, długość duża, bez znaczenia. I teraz należy odczytać 2 pierwsze bajty i przekształcić je na liczbę szesnastkową (wsumieto już jest) i następnie wczytać pozostałe bajty w ilości takiej jak wartość tej liczby, następnie znów 2 bajty i liczbę. Liczbę1 i Liczbę2...
Witam, za zadanie mam napisac program odejmujacy liczby cztero bajtowe z wykorzytsaniem adresowania posredniego i bezposredniego i mam okreslic czas wykonywania kazdego z nich. O ile chodzi o programy to juz mam ale nie wiem w jaki sposb okreslic czas i wykonywania programu. Kolejnym element zadania jest taki: "Zbadać poprawność wykonywania obliczeń,...
Witam, czy ktoś z szanownych forumowiczów móglby mi pomoc napisać program który dodawał by 3 liczby 8-bitowe? np na procesor 8051. potrzebowal bym z opisem żbo chciałbym to zrozumieć. sam męcze się juz jakis czas ale mi nie wychodzi
Witam, Mam do wykonania następujące zadanie: dodawac do siebie poszczególne komórki obszarów pamieci, wynik dodawania umieszczac w drugim obszarze. Program ma sprawdzac poprawnosc podanych adresów – wynik w akumulatorze B. Program ma sie zaczynac od adresu 0020h. Dane wejsciowe: 0010h, 0011h - dwie komórki pamieci zawierajace adres poczatku pierwszego...
mam takie zadanie: w pamięci wewnętrznej mam zapisane 2 liczby 16-bitowe. należy wczytać te liczby i dodać. Jak dodać 2 liczby 16 bitowe?
Hej, mam problem z napisaniem prostego (tzn. wyglądający na prosty) "programu". Może podam dokładne polecenie: Napisać program w asemblerze dodawania 2 liczb 4 bajtowych (w zapisie U2) zapisanych w komórkach o adresach 1000-1003 (pierwsza liczba) i 1004-1007 (druga liczba). Wynik umieścić w komórkach 2000-2003. Bajty liczb rozmieszczone są jak w konwencji...
nie wiem-zainstalowałem tego Codevision ale z tego co wyczytałem to tam poruszać się tylko można w C a dla mnie to czarna magia. Próbowałem skopiować kilka programów w C na ATM16 i dodawałem tam komendy zwiazane z funkcjami ale podglądu do asemblera nigdzie tam nie widzę. Chyba dalej bedę siedział nad jak najprostszym liczeniem moze z przybliżeniem...
Witam! Od kilku dni uczę się asemblera. Chciałem napisać bibliotekę DLL w asemblerze, która zamienia małe literki na duże, w podanym w argumencie łańcuchu(w ramach nauki). Funkcja biblioteczna otrzymuje w argumencie wskaźnik na łańcuch(char *). Odczyt poszczególnych znaków działa, problem występuje natomiast w momencie gdy chcę coś zapisać pod adresem...
Kiedy już widzisz okno Dissasembly jesteś w domu. Po prostu widzisz jak to kompilator obsługuje, które rejestry i jakimi instrukcjami....Każda instrukcja języka wyższego poziomu jest tłumaczona na ASM a tak naprawdę to jest opisem poprzedzajacym to co na podstawie tej instrukcji wygenerował kompilator. Przedstawiłeś drogę maksymalnie na około. Po prostu...
Gdyby chodziło o jakieś na prawdę krytyczne czasowo procedury np gdzieś w przerwaniach , gdzie miałbyś takie przeliczenia robić i zależałoby ci na każdym takcie zegara to wtedy też rozumiałbym jakieś próby optymalizacji tego o co pytasz. Ale wtedy do albo bym sięgnął po wstawkę asemblerową w przerwaniu albo jak pisze tmf, w ogóle bym sobie głowy nie...
Hej, Na początek, odejmować, to znaczy dodawać zanegowaną wartość. Czyli: 10 - 50 to nic innego jak 10 + (-50) Skomplikowanie to wygląda, ale zaraz tłumaczonko będzie, tylko uruchomię sobie SIM51ENG, bo taki mam dostępny symulator 51, bo rozumiem, że to dla MCS-51 ma być? Oto kod w asemblerze. mov R0,#10 przesyła do rejestru R0, pierwsza liczbe mov...
Ndisasm.exe jest gotowym programem do tego, znajdziesz go w paczce razem z nasm'em na sourceforge.net. Jeżeli chcesz zdisassemblować swój własny program i odzyskać nazwy wszystkich symboli, to nawet w konfiguracji Release jest to możliwe, o ile: * każesz kompilatorowi wygenerować plik .map (w którym są publiczne symbole) * przeskanujesz pliki .o lub...
• XOR AX, AX zerowanie rejestru AX(dla takich samych wartosci wynikiem xora jest 0) • MOV AL, '6' wpisujesz do AL wartosc kodu ASCII jaka ma 6 czyli 0x36 • ADD AL, '7' dodajesz 0x37(wartosc 7) do AL • AAA ; AX:=0103H nie mam pojecia ;) ale znalazlem cos takiego Instrukcja AAA rozdziela liczbę dwójkową w AX nie większą niż 18...
a jak to ma byc zsumowane? arytmetycznie czy bitowo? bo jesli arytmetycznie, to nalezy uzyc dodawania (zapewne nazywa sie ADD, alezy na jakim procku), zeby zsumowac cos logicznie - jak juz powiedzialem nalezy uzyc funckji OR. jesli koniecznie ma to byc takie sumowanie jak na gorze, ze przez XOR'a i jakies carry, to nalezy to zrobic... przez XOR'a i...
Witam wszystkich serdecznie, jestem tutaj nowym userem i dopiero raczkującym w świecie MCS51, dlatego proszę o wyrozumiałość. Mam taki problem: Mam program, który przesuwa diodę. diodybit P5.1 switchbit P5.0 daneequ P4 cseg at 8000h clrdiody <----- nie rozumiem tej linijki movB,#00000001B PROGRAM: movP4,#11111111B movA,P4 movA,B rlA movB,A movdane,A...
Rozumiem, że korzystasz z jakiegoś AVRka (po rozkazach wnioskuję). Proponowałbym Tobie zapisać liczbę w postaci zmiennoprzecinkowej, czyli bit znaku + mantysa + wykładnik. Wówczas mantysy mnożysz normalnie, a wykładniki dodajesz (zapomniałem dodać, że wykładnik zapisujesz jako liczbę w kodzie U2) :) No a bity znaku zwyczajnie XORujesz ze sobą, aby otrzymać...
zapisuje liczbe dwucyfrowa czy cos takiego nie czekaj dodaje dwie liczby dwucyfrowe do iluś ale nie pamiętam ilu czy cos takiego wiesz ze cos z liczbami dwucyfrowymi chyba do 372 czy cos takiego Prosze o porawienie tego programu
Może skorzystaj z rozwinięcia logarytmu w szereg potęgowy? Np. jeśli 0<x<=2 to ln x = suma(od 0 do niesk) z (-1)^(n+1) ((x-1)^n)/n Oczywiście nie liczysz do nieskończoności tylko np. 5 pierwszych składników sumy... wtedy przy sprytnym podejściu będzie działać dość szybko, wystarczy mnożenie i dodawanie ;-) Dla wszystkich x>0 trochę gorzej......
Cześć. Mam program i nie mogę zrozumieć dlaczego skacze mi do: 291: return pgm_read_byte(&(local_lcdspec (at)00000165: lcd_PrepareSpec 309: memset(lcd_spec, 0xff, sizeof(lcd_spec)); +00000165: ED81 LDI R24,0xD1 Load immediate +00000166: E091 LDI R25,0x01 Load immediate +00000167: EF6F SER R22 Set Register +00000168:...
Zacznij zatem od porzucenia Bascoma i przesiadki na C, skoro zależy Ci na wydajności. Przy okazji możesz wziąć procesor tańszy od AVR i z 10 razy szybszy, np. jakiegoś Cortexa. Zacznij zatem od sensownego udzielenia odpowiedzi na jego pytanie. Może jeszcze ARM i frytki do tego? Nie wiesz, nie pisz. Dawid88: Zagadnienie bardzo interesujące, bo sam wiem...
Heja, mam za zadanie przerobić pewien program na PIC 16f628 napisany w asemblerze. I tutal wolałbym napisać go od nowa w C, bo spodziewam się częstych poprawek. Problem polega na tym iż plik hex generowany z asemblera przy użyciu mplaba ma ok 1,5 k słów. Jak wiadomo C dodaje milion śmieci i zwiększa objętość. Chciałbym użyć mikroC i języka C. Czy zmieszcze...
Potrzebuje pomocy w napisaniu programu w asemblerze. Temat programu to: miliwoltomierz wartości średniej na mikrokontrolerze 8051 wyświetlający wartość na wyświetlaczu 7 segmentowym. Próbowałem to napisać jednak po kompilacji jest cos nie tak. Dodaje swój program i prosze o jakieś poprawki, uwagi bądż udostępnienie jakiegoś programu zbliżonego do mojego....
Potrzebuje pomocy w napisaniu programu w asemblerze. Temat programu to: miliwoltomierz wartości średniej na mikrokontrolerze 8051 wyświetlający wartość na wyświetlaczu 7 segmentowym. Próbowałem to napisać jednak po kompilacji jest cos nie tak. Dodaje swój program i prosze o jakieś poprawki, uwagi bądż udostępnienie jakiegoś programu zbliżonego do mojego....
Mam problem, otóż zastanawiam się w jaki sposób dodaje się wstawki asemblerowe w Keilu. Jako powinna wygladac taka sekcja pośród kodu C. Czy do poprawnej kompilacji należy zaznaczyć jakąś dodatkową opcję w środowisku? Konkretnie chodzi mi o przerobienie poniższego kodu żeby współpracował z keilem: static inline unsigned __get_cpsr(void) {...
tak trudno inny rozkaz spróbować (jak (at)excray proponuje) ? Można ewentualnie zrobić na EOR: Kod: avrasm Sprawdzałeś? W symulacji na godbolt "cudownie" znikają te ""EOR R1,R1" przy optymalizacji -Os. Szczerze mówiąc jak już wspomniano najlepiej zrobić to na __builtin_avr_delay_cycles() i od razu widzimy ile cykli trwa opóźnienie Wywołuje wtedy funkcję...
W sprawie łączenia programu w C i w asemblerze. Całość składała się z dwu plików jedn w C zawierający funkcję main() oraz inicjalizację portów i timerów oraz o zewnętrznie zdefiniowanych procedurach obsługi przerwań. Plik asemblerowy zawierał tylko procedury obsługi przerwań z deklaracją global. W Makefile były oba pliki odpowiednio wpisane. informacja...
Witam wszystkich forumowiczów, Czy ma ktoś pojęcie w jak i sposób skorzystać z całych funkcji napisanych w asemblerze w języku C? Czy mógłby ktoś mi wytłumaczyć to w prosty sposób? Chodzi mi o to, czy muszę robić coś poza samym AVRStudio (jakaś może kompilacja plików asemblera)? Jak na razie to wiem tylko, że kod asemblera powinien być w pliku z rozszerzeniem...
Mam zaprojektować filtr cyfrowy, na mikroprocesorze 8051F362. Ten procesor, ma specyficzną jednostkę dodające-mnożącą i mam prośbę, czy może mi ktoś napisać prosty program w asemblerze ( z tłumaczeniem) , jak wykorzystać jednostkę dodający-mnożącą.
Stos w '51 jest analogią stosu talerzy (np. po zmywaniu a przed wycieraniem, przy założeniu że nie masz suszarki :-)) Najpierw myjesz i kładziesz jeden na drugim a następnie zdejmujesz od góry (czyli nie możesz wyciągnąć nic ze środka). Ostatni talerz umyty jest jednocześnie pierwszym wytartym. Konkret. PUSH ACC kładzie na stosie akumulator, PUSH B...
Nie 30, tylko 6 plików... No dobra, Ctrl+C, Ctrl+V: ADD A , Rn do akumulatora dodawana jest zawartość rejestru Rn A <− A + Rn gdzie Rn = R0...R7 (jeden z rejestrów roboczych) kod: 0 0 1 0 1 n2 n1 n0, gdzie n2...n0 – wskazują na R0...7 stąd: 28h−2Fh cykle: 1 bajty: 1 przykład: ADD A , R2 – ADD A , adres do akumulatora dodawana...
niestety nie udało mi się rozwiązać tego problemu (czyt. sprawdzania 4 bitowego kodu). nigdzie nie umiałem znaleźć choćby powierzchownego wyjaśnienia działania tablic w asemblerze. (jeśli ktoś wie gdzie znajdę takie info - proszę o PW) zauważyłem że sporo osób czytało mój post, więc samolubnie uznając go za ciekawy, napiszę moje, proste rozwiązanie....
A jak mogę wyświetlić zawartość rejestru w konsoli, żeby nie wyświetlały się krzaki? Musisz zrobić konwersję znaków z rejestru na ASCII. Do znaków 0-9 dodajesz '0' (30h), a do znaków A-F dodajesz '7' (37h).
A po co w ogóle komu mikrokontroler w tosterze albo mikserze, choćby z firmware napisanym w assemblerze? Po co w tych urządzeniach jakakolwiek elektronika cyfrowa? Rozumiem, że to pytanie retoryczne w czasach, gdy nie gdzie indziej jak na tym forum niemal każde rozwiązanie wymagające użycia więcej niż jednego układu sprowadzane jest do rady "użyj uC"....
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...
Hej Znalazłem na forum plik w asemblerze do wysyłania kodu RC5 poprzez układ '51. Czy ktoś mógłby rozszyfrować mi o co w nim chodzi?? Co jest potrzebne a co można wyrzucić i gdzie i w jaki sposób zapisać adres wysyłany oraz komendę. Plik jest z komentarzami ale nie bardzo wiem co i jak nadal CPU89c2051.def ;Program pilota RC-5 wykonanego na uP ; IR_OUT...
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ą...
Witam. Chciałem przedstawić projekt licznika opartego na mikrokontrolerze atmega8. Projekt ten powstał z chęci sprawdzenia swoich umiejętności w asemblerze więc przy komentowaniu projektu proszę zwracać większą uwagę na software niż na hardware. Projekt został ukończony parę miesięcy temu ale dopiero teraz zdecydowałem się na wyeliminowanie paru usterek...
;Sumowanie dwóch liczb LICZBA1 i LICZBA2 wynik sumowanie umieszczony w WYNIK. LICZBA1EQU 40;Adres gdzie znajduje się pierwsza liczba LICZBA2EQU42;Adres gdzie znajduje się druga liczba WYNIKEQU44;Adres gdzie znajduje się wynik sumowania MOVA,LICZBA1+1 ;Do akumulatora pobieram młodszy bajt pierwszej liczby ADDA,LICZBA2+1 ;Do akumulatora dodaję młodszy...
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...
Witam. Mam program napisany w Aseblerze dla atmega8 do generowania i wyświetlania OSD na TV z możliwością odbioru danych/ tekstu za pomocą UART'a. Asemblera kompletnie nie znam, za to trochę znam Bascom (uczę się go) i dlatego właśnie w nim za pomocą drugiej atmegi chciałbym wysłać kilka zmiennych+tekst opisowy na ekran TV. Problem w tym, że za bardzo...
Dzień dobry, To mój pierwszy post tutaj, więc jeśli pomyliłem działy lub coś wykonałem niepoprawnie to proszę od razu mnie poinformować - usunę lub przeniosę swój temat. Tak czy inaczej... Asemblerem zajmuję się od niedawna i właśnie próbuję napisać program, który będzie pobierał liczbę dodatnią z klawiatury, zapisywał ją do zmiennej, a następnie dodawał...
Opcja -S, o której pisałem to opcja kompilatora, do użycia w komendzie ...-gcc ..., Z tym, że tak wprost się tego raczej nie da dodać. Niestety, CubeIDE nie znam, więc od ręki nie odpowiem, jak tej opcji użyć. Dobra to po kolei :) To już znam odpowiedz na to co mnie interesowało( czyli że to jest po prostu jakiś śmieciowy rozkaz, którego procek nie...
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...
jak jusz to modulo 256.. a pozatym to jest to samo co dodawanie z przepełnieniem... jak do x o wartości 255 dodasz 1 to wynik będzie wynosił 0 (zmienna 8 bitów)...(natomiast bit C będzie ustawiony).. odrazu mówie.. modulo 256 z bajtu jest stratą cykli, miejsca w programie, a pozatym nic niedaje (to tak jak dodawanie zera)
Masz zadeklarowaną tablice(pole 16-bajtowe) TABLICA EQU 50 ;od adresu w RAM-e = 50 I teraz nie piszesz gdzie sumujesz te osiem srodkowych wartosci ale zakładam że np do akumulatora, więc najprościej jest tak: CLR A ;zeruję bo tam będę sumował ADD A,TABLICA+4 ADD A,TABLICA+5 ADD A,TABLICA+6 ADD A,TABLICA+7 ADD A,TABLICA+8 ADD A,TABLICA+9 ADD A,TABLICA+10...
czy ktos może mi pomóc zrobić zaokrąglenie Mam zrobiony woltomierz na MCS 51 oczywiście sam go nie zrobiłem więc wielu rzeczy tam nie rozumiem. Mam do tego symulator, uklad wykonuje 16 pomiarów w okreslonym czasie zrobilem sam sortowanie bombelkowe po wielkich bólach dodawanie i wyliczyłem średnią przy pomocy znajomego zamiane bin na bcd pozostało mi...
ż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,...
Masz napisać procedury mnożenia liczb: 1 bajtowej przez 1 bajtową (8x8) wynik będzie 16 bitowy (2 bajty) 2 bajtowej przez 1 bajtową (16x8) wynik będzie 24 bitowy 3 bajty 2 bajtowej przez 2 bajtową (16x16) wynik będzie 32 bitowy (4 bajty) Procedura przebiega tak w kodzie naturalnym binarnym: 1. Przygotowujesz rejestr wyniku o długości równej sumie ilości...
witam nic prostszego! zaczynasz od wyzerowania wyniku i zrobienia pętli dla wszystkich cyfr liczby wejściowej, począwszy od najbardziej znaczącej W pętli: 1. mnożysz wynik przez podstawę liczby wejściowej (czyli 8) 2. dodajesz do wyniku kolejną cyfrę liczby wej. na którą wskazuje stan pętli np zmieniasz liczbę 157 1. wynik=0 2a. wynik*=8 podstawa liczby...
Witam ponownie napisałem coś co przypomina generator liczb pseudo losowych jeśli w tym tyg nic nikt nie zasugeruje proszę o zamknięcie tematu. org P:$100 move #$024411,y1 ; liczba 'a' dodatnia wieksza niz 0.25 move #$4f4f4f,x1 ; kolejna 'b' liczba dodatnia wieksza niz 0.5 move #>$010011,y0 ; stala wieksza niz 0.125 do #25,koniec mpy y1,x1,b ; mnozenie...
Witam, chcę za pomocą at90s2313 w celach edukacyjnych zaprojektować prosty liczniki. To znaczy klikam jeden przycisk to na wyświetlaczu 7-segmentowym wyświetla się cyfra o 1 większa od poprzedniej. Wczoraj trochę próbowałem zrobić taki licznik, ale jest pewien problem. Chodzi o to, że jak wciśnie się przycisk i go się trzyma to pętla dodaj cały czas...
Mam wielka prosbe,potrzebuje zrobic program realizujacy zadanie dodawania i odejmowania 2 cyfr(czyli kalkulator prosty).pozatym przy wystapieniu bledow obliczen ma sie pojawic komunikat.I tu moja prosba,jestem w tych klockach "zielony":cry:i prosze o pomoc bardziej doswiadczonych w tym temacie forumowiczow.Jesli moglby mi ktos pomoc lub podsunąc gotowy...
Spróbuj tak: #include <avr/io.h> .global Dodawanie Dodawanie: add r24,r22 ret Dodano po 1 Zdaje sie że bajtowe parametry zwracane są właśnie w r24.
Hmm... Tochę to podejrzane. Wygląda, jakby był jakiś błąd w obsłudze ARP w Linuxie. Co nie jest niemożliwe, bo przypuszczam, że mało kto wpisuje cokolwiek statycznie do tablicy ARP. Dziwne jest zwłaszcza, że w tej drugiej tablicy adres dodany manualnie występuje dwa razy - tak, jakby powielał sie wpis przy usuwaniu (innego) adresu. Moja hipoteza byłaby...
Witam, to jest mój pierwszy post i mam nadzieję, że nie złamię nim żadnego z punktów regulaminu. Mam pytanie- prośbę, mianowicie: Moim zadaniem jest napisanie programu kalkulator który dodaje, odejmuje, mnoży i dzieli liczby dwubajtowe. Nie chcę prosić o podanie gotowego programu, bo nie o to chodzi. Czy na początku programu powinnam najpierw podać...
Powinno to wygladac tak: plik .h z definicjami podprogramow czyli int podprogram(void); void podprogram2(int a, char b); plik .c z definicjami funkcji czyli int podprogram(void){ //..tresc funkcji.. } i w pliku glownym programu dodajesz #include <nazwa.h> edit: zaraz.. piszesz w temacie o assemblerze a sciezka...
Witam mam problem ze zrozumieniem poniższej pętli. Wiem, że na początku mnożymy x2, bo rozkaz djnz ma dwa cykle, ale nie mogę dojść do tego, czemu poźniej dodaję +1 i +2? Załączam screena programu (żeby się opis nie rozjechał). Gdzie mógłbym znaleźć rozwiązanie tej zagadki? movR2,#50 ; | PETLA2:movR1,#100 ; | | | PETLA1:movR0,#50 ;|| | | | djnzR0,$...
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ą...
ja zrobiłem sobie woltomierz z dużo większą dokładnością... kawałek kodu w bajtach 92 93 94 95 96 - są kolejne cyfry w zależności kolejnych bitów dodawane są konkretne przeliczone wartości dla mnie to było najwygodniejsze... sorki za język bo pisałem w moim własnym asmie pod st7 ;92 93 94 95 96 V 90 pomiar ld a,#00 ld 92,a ld 93,a ld 94,a ld 95,a ld...
adc reg,reg A bez wsunięcia CY: add reg,reg
Wyniki: W1 – 60h, W2- 61h, W3 – 62h, W4 – 63h A1 – 20h, A2 – 21h B1 – 22h, B2 -22h Start: MOV 20h, #0fdh ;A1 MOV 21h, #0ffh ;A2 MOV 22h, #0fdh ;B1 MOV 23h, #offh ;B2 ;mnożenie ;A1*B1 MOV A, 20h MOV B, 22h MUL AB MOV 80h, A ;A1*B1 L MOV 50h, B ;A1*B1 H ;A2*B2 MOV A, 21h MOV B, 23h MUL AB MOV A 41h, A ;A2*B2 L MOV B...
Witam, Musze napisać program, który będzie pobierał od użytkownika liczbę sekund po ktorych monitor przejdzie w stan uśpienia, następnie po nacisnięciu dowolnego klawisza powróci do normalnej pracy. Program, który udało mi sie napisać na chwile obecna wygląda tak: .model small .data t1 db 'Kiedy ekran ma sie wygasic? :$' .code mov ax,(at)data mov...
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.
Tak oczywiście że używam symulatora. A co do twojego kodu... w r7 jest suma dwóch młodszych bajtów ale w przypadku przeniesienia do r6 powinna zostać wstawiona jedynka a tutaj tego niema. Podobnie przy dodawaniu starszych bajtów. Przecież przeniesienie trzeba uwzględnić i wstawić do rejestru bo jak nie to przy następnej operacji dodawania bit carry...
Witam. a i x są liczbami 16 bitowymi. wykonałem mnożenie liczby 16bitowej przez 16 bitową i teraz mam problem bo nie mogę zrobić dodawania(+b). wynik mnożenia liczba 32bitowa, chciałem dodać jakąś liczbę 8bitowa. moje pytanie jak zrobić w asemblerze dodawanie liczby 8b do 32b?
Tak PutStr i GetStr to makra Aktualnie program wygląda nastepująco: PutStr input GetStr wejscie nwln PutStr output GetStr wyjscie je odczyt odczyt: movah, 3dh moval, 0 movdx, wejscie int21h movbx, ax movah, 3fh movcx, 1024 movdx, bufor int21h movah, 3eh int21h xor di, di je porownajbuf porownajbuf: mov dl, [bufor+di] mov ah, dl inc di...
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...
mam problem, poniewaz dopiero co zaczalem sie uczyc asemblera mam maly problem Proszę pamiętać o używaniu znaczników syntax . Opcja Listing kodu . - arnoldziq
Witam, mam pewien problem z programem na avt-2250 licze wyrazenie (x-3):2 = y x pobieram z portu rs232 y wyswietlam na hyperterminalu oraz na wyswietlaczu 8 segmentowy avt-2250. Teraz sedno problemu program liczy dobrze gdy wstawie za x liczbe parzysta, w przypadku nie parzystej juz nie. Moglby ktos pomoc ? Mam jeszcze jedno pytanie , jak wyswietlic...
Rozumiesz o co chodzi? Większość tak, dziękuję bardzo :) Chciałbym jeszcze spytać co mogę wstawić pod "wartość" i dlaczego do stack pointera dodaje się i odejmuje 2 a nie 1? (skoro przykładowo ściągamy pierwszy element od góry, a nie pierwsze dwa)
1. rejestry ax-dx to rejestry ogólnego przeznaczenia. Czyli w większości przypadków nie różnią się niczym. Ale mogą mieć też specyficzne zastosowania, jak AX do niektórych operacji arytmetyczno-logicznch, BX do wskazywania adresu (zapis: [BX]), CX używany do liczenia (podobnie, jak licznik w for). xH i xL to 8-bitowe części całego rejestru. czyli AX...
wygląda to tak dla każdego dźwięku w stroju równomiernie temperowanym: A to 440Hz, A# to 466,16Hz czyli pierwiastek 12 stopnia z 2 wyższa częstotliwość. 1 cent wyżej to częstotliwość wyższa o pierwiastek 1200 stopnia z 2. Wartość, którą należy wpisać do SIDa, określająca częstotliwość oscylatora to: częstotliwość dźwięku * 0,0596. Także jak widzisz...
Witam, Postanowiłem sobie napisać program w C, który wyświetla na ekranie TV jakiś obrazek.. Chciałbym do tego użyć języka C, beż użycia asm,którego w ogóle nie znam. Tutaj można zdobyć trochę wiedzy: !!Uwaga poprany i działający kod jest [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/pgmspace.h> uint8_t PROGMEM...
Mam pewien problem otóż program dodaje 2 liczby wprowadzane z klawiatury ale tylko suma do 10 co zrobiłem źle i jak mam przekształcić program żeby zapisywał do pliku wynik?[syntax=asm].MODEL SMALL .STACK 100H .DATA PROMPT_1 DB 'Podaj pierwsza liczbe: $' PROMPT_2 DB 'Podaj druga liczbe: $' PROMPT_3 DB 'Suma liczb to: $' VALUE_1 DB ? VALUE_2 DB ? .CODE...
Witajcie, Dużo szukałem, ale nie mogłem znaleźć Działającego programu do kalkulatora, który dodaje, odejmuje, mnoży i dzieli ( Może też pierwiastkować ) maksymalnie 3 liczby 16-sto bitowe i wynik pokazuje na wyświetlaczy LCD. Jak by ktoś posiadał to był bym wdzięczny za wstawienie.
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ć...
Witam. Usiłuję od dłuższego czasu napisać fragment kodu pracujący pod DOSem (DOSBox) który ma za zadanie czytać znaki z klawiatury do wektora. Wektor ten ma być później wypisany na konsoli. Poniżej kod - jest jakiś błąd, albo ja nie rozumiem czegoś do końca... [syntax=asm] .model small .stack 100h .code bufor db 8 dup(6h) ;definiuje wektor 8 elementów,...
Kod dodający nie ma teraz sensu.
Jest taka sprawa. Stworzyłem sobie pętlę For Krok Next w Asemblerze [syntax=armasm]For_plus: ADIW R24 ,4 CP R24,R26 CPC R25,R27 BRNE For_plus[/syntax] Można w niej zarówno dodawać, jak i odejmować. W przypadku odejmowania należy ADIW zastąpić SBIW Jednak ma ona kilka wad. Po pierwsze maksymalną liczbą do której doliczy jest 65536. Po drugie krok może...
Nie trzeba tak kombinować jak sugeruje kinggustav. Bo trzeba pamiętać, że przesówjąc bity w lewo, mnożymy o 2, a w prawo dzielimy o 2. No i można skorzystać z komendy która ustawi nam bajt w BCD. Wtedy AND $0F ADD $30 I masz mniejszą cyfrę liczby ROR (x4) AND $0F ADD $30 I masz większą cyfrę liczby, dlatego dobrze jest zapisywać je od tylu, np. jakiś...
Proszę o pomoc bo nie pamiętam już pewnych rzeczy z Assemblera. Chodzi o obliczenie w kodzie liczby sięgnięć do pamięci, operacji i zapisów. Moje wątpliwości budzą indeksy w tablicach - o ile pamiętam, muszę liczyć jako sięgnięcie i operację każde odwołanie w którym jest zwiększenie indeksu a także dodawanie stałych (czy dodanie stałej oprócz tego że...
Czesc Wiem że instrukcja adc dodaje do siebie pare rejestrów ale o co chodzi z tym przeniesieniem bo nie mogę tego rozkminić.
Moim zdaniem wiedza niedokładnie przekłada się na pieniądze, nie jest liniowa, a wręcz jest konstrukcją szarpaną. Nie kosztuje 100zł. W zdobywaniu wiedzy (nie chcę wchodzić w filozoficzne konotacje, czy skądinąd ciekawe jak np angielski odróżnia od umiejętności) ... najciekawsze i najbardziej charakterystyczne jest "zmarnowanie" czasu i środków. W długiej...
Nie wiem dlaczego to chcesz napisać w Asm, ale musisz wiedzieć, że Bascom generuje plik OBJ który mozesz załadować do Atmel Studio i podejrzeć wygenerowany kod Asm. Mój program NoSave Tool także potrafi te dane wyciągać z pliku OBJ tyle że szybciej i przyjemniej - jednym klikiem. Proszę to zdeasemblowany kawałek (nie cały) kodu wraz z opisami która...
cześć jestem świeży w programowaniu w asemblerze, w zasadzie to dopiero co wczoraj zacząłem, a potrzebuje napisać programik który sumował by 2 liczby 12 bitowe. (liczby nie musza być wprowadzane z klawiatóry mogą być zawarte w kodzie programu). Jeśli więc ktos w tym siedzi i wie jak to zrobić albo ma ten program to wielka prośba o przesłanie na adres...
Napiszę ci to symbolicznie bo nie pamiętam asemblera wynik_L = r3+r2 bez flagi c do wynik_H dodaj flagę C.
Ależ jestem za tym. Jasne jest, że wyłuskanie z BIN na BCD daje się robić. Ja w swoim programie miałem odwrotną sytuacje z BCD na BIN celem sprawdzenia czy dzieli się bez reszty przez 4. Użyłem oczywiście wtedy MUL AB (lub jak niektóre asemblery MUL A,B). Ten pierwszy zapis jest poprawny a drugi nie wg producenta. Odnoszę tylko wrażenie, że autor postu...
Adresy urządzeń mi nie pomogą. Dla jasności, nie znam asemblera, miałem dopiero jedną lekcję z niego.
Ano, kol. Adam popłynął i tutaj. A już miałem nadzieję na użycie Keila do większych zabaw. W asemblerze też jest graniczenie, bo konsolidator nie wygeneruje pliku wynikowego > 32 KiB.
Wiesz już co to dodawanie i jakich rozkazów użyć. Wiesz pewnie do czego służy znacznik CY i dlaczego druga operacja dodawania musi go uwzględnić. Teraz trzeba zainteresować się znacznikiem AC, operacjami maskowania-łączenia bitów ORL, ANL i... prawie gotowe. ps. Żeby nie było niedomówień: Zapomnij o gotowcu z Mojej strony.
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...
W r6 jest T0TC czyli licznik timera. Jest on zwiększany co 40 cykli (T0PC - timer prescaler). Jeśli chodzi o samo wejście do przerwania, to czasu wystarczy - pierwsze spróbkowane bity ewidentnie odpowiadają bajtowi synchronizacji bez 2, 3 pierwszych bitów, ale to bez znaczenia, ważne jest wyłapanie początku pierwszego bajtu danych (PID). Spróbuję to...
Proste czy nie? Dla mnie trudne ale "rozumowanie" po '51 i AVR'ach ma sie ni jak do ARM'ów :wink: . Potrzeba trochę czasu i praktyki żeby to też zrozumieć. W ARM'y bawię się od miesiąca i najlepiej wiedzę dozować sobie po troszeczku bo tylko wtedy wszystko wydaje się proste i łatwe :wink:. Pewnie jak dojdę do ADC to trzeba to będzie "przegryźć" ale...
Witam. Szkielet programu asemblera na 51' zamieszczałem w poście pod koniec wątku: [url=][Asembler] Dodawanie 3 liczb 8-bitowych - może się Koledze przyda. Do kompilacji najczęściej używam ASEM'a. Pozdrawiam.
W asemblerze da się to napisać w postaci pętli bez problemu. Spokojnie mógł bym to napisać, tyle że jest dużo szczegółów do obgadania - ja w asemblerze pisze tylko dla WinAVR, nie dla Codevision, więc niewiem jak są przekazywane parametry do funkcji w asemblerze, jak się dodaje wstawki, ile trwa jeden przebieg przy próbkowaniu ciągłym (musiał bym się...
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...
Witam. Gratuluje pomysłu, fajne urządzenie z b szerokim zastosowaniem. Mam kilka pytań do autora; 1 - jak się zapala pojedynczy piksel? To jest LCD 84pixle*84pixle? tzn jest 7056 wszystkich pixli? Jeżeli tak to jak to jest realizowane? 2 - na laborkach uczę się C++ w Visual studio 2005 i patrząc na Twój program większość była dla mnie zrozumiała, pytanie...
Taki sterownik to naprawdę prosta rzecz. Jeden UC i można robić sporo ciekawych rzeczy. Wystarczy troszkę asemblera umiejętność dodawania trochę wyobraźni i jesteś bogiem.(sprawdzacie sami) A pomysł kolegi może być niezłym natchnieniem. Więc panowie lutownice do ręki :D
no ja nie wiem...dla mnie asembler trudniej wygląda ;) Dodaje w załączniku ten plik hex i pliki w C
Najwyraźniej skopiowałeś funkcję bez zrozumienia. Twoje "Oblicz_długosc" funkcjonalnie odpowiada strlen() z języka C, czyli liczy długość łańcucha znaków aż do wystąpienia znaku o kodzie równym 0, którym w języku C (i nie tylko) oznacza się koniec łańcucha. W pierwszej tablicy masz napis i asembler sam dodaje znacznik końca o kodzie 0 - dla kompatybilności...
Nie umarł i nie umrze, aczkolwiek może zostać "zdegradowany" do pozycji języka, który jest potrzebny tylko do napisania kompilatora. Stanie się tak, jeżeli pojawi się jezyk wysokiego poziomu, a właściwie to kompilator takiego języka, za pomocą którego będzie można uzyskać kod równie wydajny. Chociaż i tak zawsze pozostanie grupa entuzjastów asm. Znajomość...
Witam, Chciałbym przedstawić odtwarzacz audio plików WAV. Został on zrealizowany w oparciu o mikrokontroler ATmega32, pomimo to, że wielkość wsadu to zaledwie ok 8-9kB. Tak jednak miałem procesor pod ręką. Program napisany jest w całości w języku C bez żadnych wstawek asemblerowych. Player obsługuje dowolne karty pamięci MMC/SD w tym także MicroSD,...
Witam Chciałem przedstawić moją konstrukcję odtwarzacza plików SID. Jest to moje protopywowe urządzenie zbudowane na dwóch płytkach uniwersalnych.Wszystkie połączenia są wykonane kabelkami.Sercem układu jest ATmega32 który jest prostym emulatorem procesora z C64 6502.Oryginalny układ SID'a został wymontowany z C64.Ogólnie moje założenia były takie,aby...
Mam teraz jeszcze jedno pytanie czy wstawki asemblerowe można dowolnie mieszać z kodem C czy też są jakieś specjalne znaki (typu <?php w htmlu) może istnieje jakaś funkcja? Jest słowo kluczowe (pseudofunkcja) asm. W najproszym przypadku składnia wygląda tak: asm ("sleep"); gcc ma dodatkowo specjalny sposób przekazywania do instrukcji...
A z tego co mi wiadomo, to można do bascoma dodawać kod ASEMBLEra? Może zrobić losowanie z ASEMBLERZE? tylko, że ja nie znam nic z Asemblera.
Witam, Dodaję wersję działającą z wyświetlaczem HD44780, dzięki uprzejmości Waldka. Przedstawiam jeszcze jedną wersję z wyświetlaczem LCD: Zakres pomiarowy został zwiększony do 20MHz poprzez dodanie dzielnika przez dwa ("prescalera"), zrealizowanego na przerzutniku typu D (1/2 74LS74). Program napisałem w BASCOMie bez wstawek asemblerowych. W załączniku:...
Jak wyliczyć (Wykonać) dokładnie opóźnienie np. 500ms Nie chcę tego robić na timerze ! Chodzi mi o to jak wyznaczyć taką liczbę cykli procesora które zajmie pętla for tak aby wykonała się dokładnie w 500ms Do dokładnego odmierzania czasu służą timery. Jeżeli nie chcesz, to masz złe podejście. Nie chodzi mi o czysty assembler tylko o wykonywanie pętli...
Nie przez wstawki asemblerowe- ale przez założenia. No może potem- przez wstawki. Jak byś uważnie przeczytał co napisał emarcus- to może byłoby bliżej. Jest tak- mamy bramkę AND i oba liczniki są podłączone do wejść. Jeden z nich otwiera jedno z wejść bramki na czas 1s a a na drugie wejście bramki w tym czasie podajemy impulsy. Potem pierwszy licznik-...
Witajcie, jest to ulepszona pod każdym względem wersja mojej pierwszej machiny Sumo Challenge 2011 , w których brałem udział (zająłem wtedy przedostatnie miejsce :D). Ta sytuacja bardzo zmotywowała mnie do stworzenia czegoś szybszego, zwinniejszego. Tak powstał MacLiner 2.0 . Chciałbym serdecznie podziękować użytkownikowi Sabre , dzięki któremu mogłem...
Ciśnieniowy kontroler poziomu wody WSTĘPNIAK Witam wszystkich entuzjastów elektroniki! Chciałbym zaprezentować przykład wykorzystania scalonego półprzewodnikowego czujnika ciśnienia w roli miernika poziomu wody. Dzięki pomiarowi ciśnienia słupa wody możliwa stała się kontrola i utrzymywanie wody na zadanym poziomie w dowolnym zbiorniku (butelka, beczka,...
Kolego z tego co zaprezentowałes nic nie będzie, wystarczy ten program skompilować i popatrzeć na listę błedów. Brak w nim opisu podprogramów (wszystkie nazwy po lcall). Nie rozumiesz tez do konca liczby dwóbajtowe. Dwa bajty=16 bitów=65535 i taka może byc najwieksza liczba zapisana na dwóch bajtach w zapisie binarnym. Ale mozna sobie równierz zorganizowac...
Generalnie jeżeli chodzi o wydajność to trzeba mieć na uwadze, że C# jest językiem zarządzanym, w wielu przypadkach będzie wolniejszy od niezarządzanego (C, C++). Natomiast z drugiej strony łatwo ocenić czy w danej sytuacji szybkość wykonywania się pewnych procedur jest za mała, albo czy wystarczająca i nie wpływa na całokształt. Jeżeli by się okazało,...
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...
Witam wszystkich. Mam problem i to poważny. Potrzebuję kogoś, kto zna się na pisaniu programów w asemblerze. Niżej podaję treści takiego zadania: 1. Napisz program, który oczyszcza ekran, umieszcza wskaźnik w wybranym miejscu, prosi użytkownika o podanie dwóch wartości, dodaje je i wyświetla sumę. Użyj procedur Clrscr,Gotoxy,Writestring,Readint i Writeint...
W sumie i tak w obszarze pamięci masz magistralę równoległą, więc taka, czy inna konwersja serial-parallel-serial wchodzi w grę. Jeśli nie masz elementu "inteligencji" w postaci procesora, czy kości programowalnej, może należałoby poprzestać na układach równoległych (adc, dac), ale to kwestia ceny. Inna sprawa, że rozwiązując cały problem w klasycznej...
Masz 2 wyjścia. 1. Funkcji obsługi przerwania trzeba ustawić atrybut : __attribute__ ((interrupt ("IRQ"))) który dodaje prolog i epilog funkcji obsługi przerwania. Ale podobno nie zawsze dziala... 2. Piszesz sam prolog i epilog funkcji obsługi przerwania w asemblerze. I zamiast skoku pod AIC skaczesz do etykiety obsługi przerwania która powinna zachowywać...
Nadmiar w operacjach na zmiennych całkowitych nie jest nigdy wykrywany i faktycznie dodawanie i odejmowanie są tak samo wykonywane na liczbach ze znakiem i bez. Tak samo jak w asemblerze. Jest tylko kwestia, czy wynik jest interpretowany bez znaku, czy w kodzie uzupełnieniowym do dwóch.
Ja w takim przypadku dodaję moduł w asemblerze. #include <avr/io.h> #include <avr/interrupt.h> ; przepełnienie timera0 - nic (wybudzanie) .global SIG_OVERFLOW0 SIG_OVERFLOW0: ; tu można wstawić kod reti Szablonowo wygląda to tak mniej więcej tak.
.... dodaję że problemy mam z tym że jeśli umieszczę moje wypociny w przerwaniach to podczas wysyłania danych z modułu A instrukcją Print to układ lubi mi się zawiesić , lub mam problemy z odebraniem kompletnych danych. W tem przykładzie jaki podałem ostatnio wszystko chodzi idealnie poza tym że mam zaśmieconą i opóźnioną przez to pętlę główną. Posłuchaj...
Sterownik włącza/wyłącza do 8 urządzeń grzewczych i chłodniczych. Stan wyjść zależy od: temperatury mierzonej w dowolnej liczbie punktów, wewnętrznego zegara czasu rzeczywistego, programu grzania i chłodzenia przechowywanego w pamięci EEPROM. Architektura sterownika Sterownik jest oparty na mikrokontrolerze AT89C2051 . Układ ten ma 2 kB pamięci flash...
Wersja kolejna 0.1.6, wzbogacona o możliwość czytania z pliku po deasemblacji. Nowe opcje: -d plik - plik po deasemblacji, zapis do pliku _lisdfun.txt -D analiza pliku _lisdfun.txt kalkulacja stosu -m plik plik map Na chwile obecną program czyta pliki z deasemblacji (za pomocą np gpdasm z pakietu gputils), z pliku formatu zawierający etykiety oraz...
Ok. Dzięki, bo sposób jest interesujący i warto się takowego nauczyć, jednak jak wygląda sprawa z prędkością podmiany danych, ewentualnie dodanie danych do listy. Pytam bo u mnie jest trochę więcej danych i chce wycisnąć jak najmniejszy czas, trochę skrócona wersja type cPointMax = 2000000; TTbPoint = array[0..cPointMax] of TPoint; PTbPoint...
Witam, ostatnimi czasy zainteresowałem się (po części przez studia) programowaniem mikroprocesorów, wykorzystując program EdSim51, do początkowej nauki Assemblera. Jakkolwiek początkowe sukcesy w nim teraz napotkały na przeszkodę. Mianowicie próbowałem zacząć korzystać z programu FASMW, by pisać bezpośrednio pod Windows, i chciałem na początek sprawdzić...
Dzięki za informacje nawet nie miałem pojęcia o takim błędzie. Naszczeście tyczy się to tylko wersji B7 a ja mam C2, ale można to bardzo łatwo naprawić dodając kilka linijek do kodu programu. Tylko mam kilka pytań, bo znalazłem coś takiego na elektrodzie, niestety nie mam punktów na ściągniećie tego pliku z wątku który mi podałeś :(: Each Additional...
Używam kompilatora GCC i tam wygląda to tak: Dla funkcji w C __attribute__ ((section (".data"))) static void AntiAlias(int *x, int nBfly) ; dla funkcji w asm .data (na początku pliku asm) podobno trzeba też dodać atrybut long_call, ale czy jest on konieczny nie wiem bo nie sprawdzałem, czy działa bez niego. Mogę jedynie powiedzieć, że do funkcji w C...
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 potrafiły z niego wycisnąć dźwiękowe cuda. Na dzień dzisiejszy...
Portuję system Contiki na STM32F303 i natknąłem się na problem z brakiem linkowania handlerów przerwań. Ponieważ interesuje mnie obsługa modułu radiowego SPIRIT1, portowanie sprowadziło się do skopiowania katalogu platform/stm32nucleo-spirit1 oraz katalogu cpu/arm/stm32l152 do platform/stm32elnix oraz cpu/arm/stm32f303 i zmodyfikowania znajdującego...
Chociaż na zdjęciu widać mini płytkę z PIC18F1220, to posłuży ona jedynie do praktycznego zaprezentowania obsługi wątków które zaimplementowałem. Obecne możliwości kodu który chce zaprezentować, to działanie równoległe 2 lub trzech wątków, w tym głównej funkcji main która jest pierwszym wątkiem. Całość wymaga kompilatora sdcc (3.6.0) oraz pakietu gputils....
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...
zle rozumujesz Gdzie napisałem ze powoduje? Nie napisałeś nic - dlatego poprosiłem o wyjaśnienie. Po prostu twierdzę, że Twój sposób sterowania jest lekko dziwny i chciałbym pojąć jego zasadę działania - może wtedy ulepszyłbym sterowanie u siebie. Mnie chodzi o krytyczne warunki. A mnie o stworzenie optymalnego sterownika :) Jak wszystko jest ładnie...
Sposób który pierwszy narzuca się aby liczbę przedstawić w postaci tekstu to znaleźć ilość jednostek, dziesiątek, setek, tysięcy, itd... w danej liczbie (dzieląc przez 1000,100,10). Następnie te znaki pozostaje już tylko "przesunąć" do znaków ASCII, a wiec dodać 0x30. Dla przykładu mamy liczbę 123, liczba setek: 1, liczba dziesiątek 2, liczba jednostek...
Witam, dostałem do napisania program w asemblerze, dla procesora 8086. Program ma być napisany w środowisku dosboxa. Cel programu to wykonanie operacji dla liczb 79 i 82 -dodawania -odejmowania -mnożenia Wyniki mają być wyświetlone w sposób dziesiętny w osobnym programie -dzielenia i wyświetlenie wyniku w sposób dziesiętny całkowitego - wyświetlenia...
najpierw muszę zaprojektować analogowy filtr wedłóg schematu 1 w pdf kolegi następnie muszę wyliczyć alfa , beta i gama które są stałe dla każdego filtru a następnie muszę postępować według algorytmu z rysunku 9a Dokładnie tak :!: , ale musi być jakieś ale :D . Podane zostały jedynie uproszczone wzory na alfa, beta i gamma, wykorzystujące SAA (Small...
Według mnie dość dobrze się sprecyzował :) no ok... ale wynik czego ? dodawania czy zliczania to po pierwsze na porcie wyświetlić licznik dodawań a po drugie jaka '51 ma port P5 ? Chyba każda która ma 68 i więcej pinów, i tak wszystkie mają P5 po tym samym adresem. Czy jak wystąpi przeniesienie to wyświetlić wynik występujący po nim (nie 8 bitów) czy...
Witam Potrzebuje waszej pomocy, musze napisac stoper w asm. Już sie męcze z tym troche i nie chce działac tak jak powinno, więc prosze was o naproawdzenie/poprawienie błedów w kodzie ponizej. I chcialbym rowniez wiedziec, czy moja interpretacja polecen w tym kodzie jest poprawna. Sam Timer działa poprawnie. Chcialbym aby sterowanie stoperem odbywalo...
Witam jasno i przejrzyście dla innych może być mało przejrzyście dla Ciebie i na odwrót nie zobaczysz idealne rozwiązania dla siebie szukając teraz przycisk szukaj wywali Ci wiele informacji o LCD pisząc LCD nie dostaniesz gotowców na laborki listingów na asemblera, w C, lub dość fajnego Bascoma dla początkujących jak wspomiałeś jest za to wiele pomocy,...
Kolega z Łodzi to coś słyszał ale nie do końca pamięta. Nie zaśmiecam sobie pamięci tego typu szrotem. Algorytm na poczekaniu wyczytałem z sufitu. Ponieważ jest "bardzo szybki" może być użyteczny przy wszelkiego rodzaju konwersjach liczba/łańcuch zwłaszcza w układach wyświetlania wielkości fizycznych, gdzie w procesie kalibracji możemy wyliczyć i wpisać...
Chyba faktycznie zaczne sie uczyc assemblera bo ten mikropascal nie ma wogóle żadnej pomocy Wiesz, powiem Ci, że aby zacząć programować w asemblerze wystarczy znać nazwy najważniejszych rejestrów, wiedzieć za co odpowiadają i mieć pod ręką listę rozkazów dla danego procka. W porównaniu z Micropascal, Microbasic, BASCOM lub nawet z C, w przypadku programowania...
Próbowałem mikroC. Dla programisty dobrze znającego asembler (aby weryfikowac co kompilator produkuje dla konstrukcji w C) to jest duże ułatwienie. Ale w testowanej wersji było duzo irytujących błędów. Wszystkie na które trafiłem wystepowały tylko w okreslonych złożeniach kilku czynników. Jest to o tyle "wkurzające" że masz już kawałek programu przetestowany,...
Problem rozwiązany! W programie znalazł się mały błąd ale za to tragiczny w skutkach. Całkowitą część pomiaru wymnażam x10 i dodaję do tego część dziesiętną. Kompletny wynik temperatury mam więc na dwóch bajtach i porównuję to z wartością zadaną termstatu. Wszystko świetnie tylko że to wymnażanie x10 robiłem pośrednio - w pętli która dzesięć razy dodaje...
Ostatnio naszła mnie chęć na zbudowanie tego oklepanego tutaj tematu, termometru z wyświetlaczem od Nokii. Do dyspozycji mam programatorek JDM i oczywiście do tego IC prog. Taki zestawikiem wcześniej programowałem bez problemu 16F84 jak i inne z serii 16F... Jednak z tym prockiem mam problem. Już doszedłem do tego przy pomocy archiwum , że będzie mi...
Witam Próbuję właśnie "zmusić" zestaw AVT-2250 do współpracy z językiem C. Używam kompilatora SDCC oraz środowiska Code::Blocks. Przygotowałem sobie plik nagłówkowy bios.h oraz plik bios.c (wszystko w załączniku, łącznie z projektem), aby było łatwiej wywoływać procedury zaimplementowane z BIOSie komputerka. O ile z napisaniem obsługi przerwania w asemblerze...
Ale asemblera też nie porzucaj, bo on pozwala na pełne panowanie nad danym procesorem, na pisanie bardzo zwartych fragmentów kodu a także fragmentów wymagających wyciśnięcia maksymalnej prędkości z procesora. Same zasady pisania programu w asemblerze są podobne jak i w językach wyższego poziomu tyle, że kolejne kroki rozpisuje się na podstawowe rozkazy...
"Chcesz się nauczyć asemblera pisząc w języku BASCOM Basic?" a co- bardzo fajny: $asm ... ... $end asm Samo $ASM...$END ASM nie wystarczy. Bascom dodaje też coś od siebie. Nawet jakbyś pododawał te pozostałe dyrektywy wyłączające to musisz się trzymać kilku ograniczeń. Powstaje hybryda której nie da się kontrolować w pełni, a nie o to przecież w pisaniu...
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...
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...
Witam i zapraszam do dyskusji. Do asembler:Impulator jest nowy- zamówiony wraz z całym osprzętem (tylko w częściach). Program wgrany w prosesor. Po złożeniu tego okazało się, że program sobie nie radzi - popełnia błędy, o których pisałem. Ja zmieniłem zastosowanie tego Kit-u, a co za tym idzie cały program napisałem na nowo. Stworzyłem program, który...
Jak widzę bardzo ciężko jest trafić w gust odbiorcy. Jestem programista uC i to zarówno tych mały AVR jaki tych przerażających niektórych Cortex-M3, -M4. Zupełnie nie rozumiem opinii o niektórych pozycjach i aż z ciekawości wypożyczyłem dwie książki wychwalanego tutaj p. Kardasia. Może zobaczę różnicę. Mnie książki takiego wydawcy jak BTC kilka lat...