pokaz swoje wypociny
Po pierwsze należy się zapoznać z procesorem, na który ma być pisany program. Szczególną uwagę należy zwrócić na rejestry i organizację pamięci. Dopiero później można pisać program. Podejrzewam, że dowolna książka traktująca o 8051 zaczyna się zwykle od takich informacji. W moim przypadku sprawdziła się np. "Podstawy programowania mikrokontrolera 8051",...
Witam. Szkielet programu asemblera na 51' zamieszczałem w poście pod koniec wątku: [url=http://www.elektroda.pl/rtvforum/vi... Dodawanie 3 liczb 8-bitowych - może się Koledze przyda. Do kompilacji najczęściej używam ASEM'a. Pozdrawiam.
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...
dobra a wiec od nowa pisze co i jak, dostałem od nauczyciela trzy pytania dotyczace asemblera, ja osobiscie jeszcze nic w nim nie robilem nie mialem stycznosci i troche go nie kumam.... 1. Inkrementacja jest to..., natomiast dekrementacja jest to ... w języku programowania ASEMBLER 2. Napisz prosty program w ASEMBLERZE dla układu 8051 realizujący funkcje...
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?
Dobra, pisałem tego sumatora chyba z 2 godziny i muszę przyznać że jakoś dziwnie skomplikowany mi wyszedł. Kod prezentuje się tak: org 0 mov a,#0 start: mov r7,#0 mov r6,#0 mov r5,#0 mov r0, #0ffh mov r1, #0ffh ; to jest pierwsza liczba r0r1 mov r2, #0fdh mov r3, #0fdh ; a to druga liczba r2r3 add a,r1 add a,r3 mov r7,a mov a,#000h ;przeniesienie? addc...
C pod windowsem, asembler na Dosie\
Sproboj chociaz cos nagryzmolic..jakies mov'y add'y Poki nie zaczniesz nikt nie rozwiarze ci zadania za ciebie. Proszę poprawić pisownię! Robak
Dodawanie : ; PODPROGRAM WIELOBAJTOWEGO DODAWANIA ; WEJSCIE: ;R0 - ADRES NAJMLODSZEGO BAJTU PIERWSZEGO SKLADNIKA ;R1 - ADRES NAJMLODSZEGO BAJTU DRUGIEGO SKLADNIKA, NIE MODYFIKOWANY ;R2 - LICZBA BAJTOW ; WYJSCIE: ;R0 - ADRES NAJMLODSZEGO BAJTU WYNIKU ;R2=0 ;PRZENIESIENIE C I PRZEPELNIENIE OV JEST ;USTAWIANE W TAKI SPOSOB, JAK W ROZKAZIE ADDC...
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...
No to w takim układzie zerujesz sobie zmienną i w pętli dla każdej cyfry od lewej do prawej wykonujesz: mnożenie przez 10, dodawanie wartości cyfry... Jedyne czego w takim układzie potrzebujesz, to funkcji do mnożenia i dodawania liczb dowolnej długości.. do konwersji w przeciwną stronę liczbę dzieli się przez 10(lub przez inną podstawę) i resztę dopisuje...
A wiec tak programuje w jagodzie chce napisać kalkulator i z dodawaniem odejmowaniem mnożeniem i dzieleniem nie mam problemu gdy w programie mam tylko jedną operacje z góry określoną prze zemnie np dodawanie dwóch liczb i je wyświetlenie na LCD. ale problem jest w tym że nie wiem jak samemu wybierać co chce zrobić dodawanie czy odejmowanie itp. 1.wczytuje...
dla ZbeeGin: chce zrobic dodawanie liczb 16-bitowych ze znakiem w kodzie BCD.
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...
Witam. Zaczynam naukę mikroprocesora 8086. Trochę poczytałem i chcę napisać swój pierwszy program, dodawania 3 liczb 8-bitowych. Czy może to wyglądać w ten sposób? .model small .stack 100h .data .code start: mov ah,0 int 16h ;pobiera znak z klawiatury i zwraca w AL mov bl,al ;przerzucam liczbe z AL do BL mov ah,0 int 16h ;pobiera drugi znak z klawiatury...
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.
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. Dobry kompilator sam to zrobi. Sam sie kiedyś zdziwiłem, ja dodawałem a kompilator odejmował :]
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...
A tak wogóle, to jak odjąć dwie liczby BCD, takie np 8 cyfrowe, bo ja siedze nad tym już pare godzin i nie mam rozsądnego pomysłu (czyli prostego - jak z dodawaniem BCD). mj
Kamyczek: nie te asemblery, nie te kompilatory. Programowanie nowych architektur w asemblerze jest mało sensowne, bo kod generowany przez kompilator jest na ogół lepszy niż kod asemblerowy średniego programisty. Zdziwiłbyś się, jak krótki i sprytny kod generuje kompilator dla wielu instrukcji i konstrukcji języka wysokiego poziomu. Sztuka programowania...
Zakladam ze liczby sa w formacie X * 10^Y gdzie X to jest wartosc a Y to jest potegi dziesiatki Mnozenie: -mnozysz pierw liczby -dodajesz potegi dziesiatki Dzielenie: -wyrownujesz potegi dziesiatki do tej mniejszej -potem je jedynkujesz -dzielisz normalnie te liczby -dzielisz Dodawanie: -wyrownujesz potegi dziesiatki do tej mniejszej -dodajesz liczby...
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...
Musisz jeszcze pamiętać że akumulator jak i rejestry prawdopodobnie są ośmiobitowe a co za tym idzie nie możesz sobie tak bezmyślnie dodawać szesnastu liczb i trzymać ich sumy w akumulatorze bo się tam ta suma nie zmieści. Wynik musisz zapisywać na dwóch bajtach i dopiero dodawać kolejną bajtową liczbę. Zazwyczaj w asemblerze, ale to zależy od konkretnego...
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...
Na pewno, to to jest jakiś program ;)) Z tego co widzę, to usiłuje on wczytać dwie liczby w zakresie 0-65535 i ... nic więcej :))) Żadnego 372 tu nie ma, a za to jest martwa pętla :)) model tiny .stack 2H .data napis1 db 'Pokaz','$' napis2 db 10,13,'Podaj pierwsza liczbe: ','$' napis3 db 10,13,'Podaj druga liczbe: ','$' napis4 db 10,13,'koniec','$'...
Przeniesienie(flaga c) to znacznik procesora ustawiany po przeniesieniu, używany przy (min.)sumowaniu liczb dłuższych niż słowo maszynowe procesora. Przykładowo procesor 8-bit, dodajemy 2 liczby 16 bitowe, zawartość rejestrów B i C do H i L wynik umieszczamy w H i L(operacje wykonujemy na akumulatorze A). LD A, C | ADD A, L > Sumowanie mniej znaczącej...
adc reg,reg A bez wsunięcia CY: add reg,reg
Najszybciej będzie tworząc 256-bajtową tablicę na każdy poziom. Bez podwójnych rejestrów DPTR musiałbyś mieć próbki w pamięci IRAM (mov A, (at)Rn) lub ew. w jednej stronie pamięci XRAM (movx A, (at)Rn): mov DPTR, #tablica_poziomu_x mov R1, #liczba_probek mov R2, #adres_1_probki_w_ram petla: mov A, (at)R2 ; +1 movc A, (at)DPTR+A ; +1 mov (at)R2,...
Jeśli chodzi o AVR: Zapis stałoprzecinkowy robiony jest wg. dwóch formatów: 2^7, 2^6, 2^5, 2^4, 2^3, 2^2, 2^1, 2^0 w zapisie -1, 2^{-1}, 2^{-2}, 2^{-3}, 2^{-4}, 2^{-5}, 2^{-6}, 2^{-7} zapis 2^{-8}...2^{-15} teraz, aby załadować liczbę tego typu (czyli z przedziału (-1..1)) do rejestru najlepiej posłużyć się wbudowaną funkcją asemblera (w wersji v2):...
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...
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...
;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...
W tamtym wątku chodziło o to, że podany przez ciebie kod tylko mógł inkrementować (ogólnie zmieniać o stałą wartość) 32-bitową liczbę, inne podane w tamtym wątku kody po prostu dodawały dwie dowolne liczby.
Witam. Piszę w asemblerze w środowsiku RIDE na mikrokontlorer 8051 Mam takie zadanie: wczytać z pamięci zewnętrznej dwie 8 bitowe liczby (ze znakiem), a następnie dodać je i wypisać gdzieś w pamięci. Przykład zapisania tych liczb w pamięci: http://img5.imageshack.us/i/pamiech.jpg/ Mam już wczytywanie tych liczb i dodawanie/odejmowanie decymalnie (działa!),...
tak to jest najszybsza metoda wykorzystujaca przesuwanie i dodawanie wartosci 3 .Porownanie czasu tej operacji w asemblerze a sposobow napisanych w basicu pokazuje jakie to sa roznice.Algorytm jest kilka razy szybszy i kilka razy mniejszy.i ta metoda nie jest tylko dla 8-bitowych liczb lecz dla kazdej wielkosci liczby.po prostu zamiast 8 bitow przesuwamy...
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...
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.
W asemblerze w 0.9 kb da się upchnąć a w c same operacje arytmetyczne na liczbach 32 bitowych zajmowały 4k ciekawe ktory kod bylby szybszy [; smiem twierdzic ze twoja 32-bitowa arytmetyka upchnieta na tak malym obszarze byla... wolna, bardzo wolna. przeciez mozna zrobic mnozenie liczb 32bitowych przy uzyciu petli z dodawaniem. zajmie moze z 10 rozkazow...
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ść...
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, 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...
Odstęp nie będzie miał ściśle określonego czasu, a ani jednego bitu więcej w ramkę nie upchniesz, nawet gdyby miał określony czas, bo nie zmienisz wartości bitu startu ani stopu UARTa. Te 30% "wolnego" czasu procesora zajmie kodowanie danych do transmisji. Ciekawe, czy się wyrobi... - niekoniecznie moim zdaniem, zwłaszcza, że występują tu i dane 12-bitowe...
Kazdy procesor operuje na liczbach. Dla niego nie jest zrozumiale P1, zrozumiale jest dla Ciebie, czlowieka. Ow tajemniczy plik z definicjami to wlasnie nic innego jak tlumacz. Zawarte w nim sa "tlumaczenia" z jezyka ludzkiego na liczby tak zeby kompilator wiedzial ze piszac P1 masz na mysli liczbe 90 hex. Takie pliki sa potrzebne zawsze jesli chcesz...
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,...
mam taki problem bo nie wiem jak policzyć ile poniższe programy zajmują bajtów nie wiem jak to policzyć czy mogłby mi ktos w tym pomóc czy chociaż naprowadziłby mnie ktoś na jakiś link gdzie mógłbym to sam wykombinować są to programy w asemblerze avr programy na sume i różnice liczb 16 bitowych bardzo prosze o jakieś wskazówki zgóry dziekuje oto te...
i jeszcze o języku C ;-) aczkolwiek asembler '51 jest dość przyjemny. Mogłbys także nieco bardziej rozwinać jaką masz koncepcje, np. z jakiej 51 chcesz korzystać i jak te liczby chciałbyś wporwadzać - chodzi mi głównie o to, że od sposobu podłączenia zależeć będzie liczba potrzebnych "nóżek" i sposób sterowania.
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...
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.
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ć...
Wyświetlasz tak jak znaki, tylko musisz zamienić swoją liczbę na ASCI. Stwórz sobie podprogram który będzie zamieniał liczbę z danego rejestru na ASCI z dowolnego formatu. Pamiętaj, że liczby są przechowywane w formacie HEX. Zobacz czy nie masz komendy która konwertuje HEX na BCD (dziesiętny), wtedy tylko dodajesz $30 to każdej cyfry z BCD i masz pikną...
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ż...
Dlatego pytałem jak bez systemu operacyjnego mając czysty dysk, wykonać np funkcję: int a,b,dodaj; cout << "Podaj liczby"; cin >> a; cin >> b; dodaj = a+b; cout >> dodaj; i ją zrealizować wpisując bezpośrednio z klawiatury polecenia biosu lub procesora Z klawiatury niczego nie wywołasz, bo nie ma programu który by to zinterpretował...
https://obrazki.elektroda.pl/3563451200_... Intro Zawsze fascynowała mnie możliwość konwersji sygnału czasowego na dane w dziedzinie częstotliwości. Pamiętam jak w wieku około 16 lat dopytywałem mojego ówczesnego nauczyciela matematyki, jak działa transformata Fouriera. Dowiedziałem się wtedy tylko że jest to całka, niestety nic więcej...
Witam Wydaje mi się, że: 1) Dając INC PARZ , zwiększasz to co pod PARZ, a nie PARZ, czyli (PARZ) <-- (PARZ) +1 2) Chyba nie ma takiego trybu jak ADD PARZ,2 , dodawać można tylko do akumulatora. Poza tym pamietajmy o # przed daną ;) Dlaczego nie wykorzystać rejestrów, ja np. zrobiłem to tak: MOV R1,#22H MOV A,#2H ORG 100H MOV (at)R1,A LJMP START START:...
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...
http://obrazki.elektroda.pl/4029783300_1... Układu SID (6581 stary i 8580 nowy), będącym muzyczną orkiestrą komputera Commodore 64 nie trzeba nikomu przedstawiać – między innymi dzięki jego brzmieniu owa maszyna osiągnęła tak dużą popularność. Warto tylko przypomnieć, że SID ma jedynie trzy kanały, ale umiejętności programistów...
Pewnie wystarczy moduł STM32C8T6 ("blue pill", zegar 72 MHz), z programem w asemblerze; najlepsze, co można uzyskać, to zmiana stanu wyjścia w tym cyklu zegara, który będzie najbliższy wymaganego czasu zmiany, co oznacza, że sygnał wyjściowy na ogół będzie miał "jitter" na poziomie kilku ns, gdy 72 MHz nie podzielą się równo przez wymaganą częstotliwość....
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...
WITAM Przepraszam że się wcinam ale mam pytanko do kolegów jak dalej zrobić aby te liczby wciśnięte np: 1 i 2 dawały liczbę 12 do dalszego działania programu? Chodzi o Bascom. masz tu kawałek mojego programu , powinieneś wyczaić o co chodzi : Licznik_pomocniczy = 0 A = 0 B = 0 C = 0 End If If Licznik_pomocniczy = 1 Then Locate 2 , Licznik_nastepny...
Totalnie zapomniałem napisać o uP. Przepraszam. Chodzi mi o MSP430. Operować będę musiał na liczbach 32b. Moim zadanie jest wyświetlić na LCD liczbę 32 bitową która jest wynikiem np dodawania. Mógłbym mi ktoś podpowiedzieć jak mam to zrobić bo teraz mam nawet problem z wyświetleniem wyniku dodawania liczb 4 bitowych. Dlatego potrzebowałem instrukcji...
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ć...
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...
Chodzi Ci może o odwracanie bitowe ? Jeżeli tak, to zasada działania jest względnie prosta. mamy próbki w tablicy o indeksach powiedzmy i = 0..n-1. teraz bierzemy drugą taką tablicę (to tak dla uproszczenia, w rzeczywistości nie jest ona konieczna, bo można zrobić to na tej samej tablicy) dla każdej próbki o indeksie i odwracamy kolejność bitów w zmiennej...
sub al,1 das Lub DAA dla dodawania.
Kolego Excray masz po części rację. Błędu jednak nie będzie gdy wartość stałej będzie większa od wartości TL0 w chwili korekcji. Tak dla przykładu. Przyjmijmy, że przeładowujemy licznik #FFF5H czyli do TL0 ma trafić #0F5h z korekcją. Dla przypadku gdy będzie spełniony warunek, który podałem wyżej przyjmijmy wartość 3 w chwili korekcji w TL0. Dla przypadku...
Kontynujemy temat prac dyplomowych, wszakże jeszcze uczniowie mają czas na ich zrobienie, jednak jest to już ostatni termin, aby wreście rozpocząć realizację praktyczną. Mamy jednak nadzieję, że większość już ma gotowe modele i opis teoretyczny :) http://www.elektroda.pl/nauka/dyplomowe/... Teoria: Analiza standardów zarządzania sieciami...
Wraz z szybkim rozwojem systemów wbudowanych, a zwłaszcza urządzeń Internetu Rzeczy (IoT), rośnie zapotrzebowanie na ulepszenia systemów akumulatorowych, które je zasilają. W szczególności wiele aplikacji może zyskać na opłacalnym, ale dokładnym mierniku poziomu naładowania akumulatora. Podczas gdy większość zastosowań ogniw w motoryzacji, medycynie...
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. Po pierwsze będziesz wyświetlał cyfry (od 0 do 9), a więc każdy wyświetlany znak, to jedna cyfra z twojej liczby. Czyli musisz mieć je w kodzie BCD, czyli dziesiętnym - taki kod to cztery bity w zakresie wartości od 0 do 9. Po drugie - cyfrę w takim kodzie musisz zamienić na znak ASCII, bo takie znaki wyświetla LCD. Jest to bardzo proste - dodajesz...
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...
W asemblerze można dwie liczby 64-bitowe traktować jako 128-bitową - ale dane mamy co najwyżej 64-bitowe (do liczby pierwszej, która się nie zmieści w 64 bitach, nie dojdziesz - zajęłoby to tysiące lat) i tylko suma się nie zmieści - więc można dodawać do mniej znaczącego słowa, i jak będzie przepełnienie, to zwiększać o 1 bardziej znaczące. Tylko potem...
A ja mam bardzo podobne pytanie. Muszę napisać program mnozenia dwóch liczb 20 cyfrowych zapisanych w BCD. Wynik ma byc tez w BCD. Próbowałem już coś wykombinować, ale mam problemy z dostaniem się do pojedynczych cyfr (w bajcie są 2 cyfry prawda) i w ogole wydaje mi sie, ze moje rozumowanie jest bledne. Aha - muszę to zrobic w Motoroli 68K. Jest tam...
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ł...
Snap wydaje się ciekawą ofertą dla tych, którzy chcą poza AVR używać mikrokontrolerów pic . Jednak microchip mógł postarać się bardziej bo mnie osobiście ciągłe lutowanie by po prostu zmęczyło ,szczególnie w tej skali . pozostaje więc alternatywa kupienia dwóch i przystosowania pod konkretne potrzeby tak, żeby raz polutować i mieć spokój . Jeden podpisać...
ż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,...
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ć...
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...
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...
Witam Troszkę słabo opisałeś problem i zadanie, ale do rzeczy. Nie wiem czy korzystałeś z książki Gałków czy nie, mnie jednoznacznie wynika że przy wyświetlaniu pobranej cyfry powinieneś użyć LCALL WRITE_HEX dlaczego Ty to dzielisz przez 100 nie mam pojęcia. Po drugie nie wiem jak jest w Jagodzie, ale "WRITE_HEX" w DSM używa rejestru R0 więc nie powinieneś...
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...
Nie używam w ASM liczb zmiennoprzecinkowych, różne algorytmy można napisać bez nich, przez co działają 10x szybciej. Pisanie programu to przekładanie rzeczywistości na liczby i w tym jest problem, kto umie to w głowie przetworzyć, ten jest programistą. Jak mam jasno i szczegółowo skonstruowany algorytm, to napisanie programu jest banalne, bez różnicy...
Keil nie obsługuje natywnie arytmetyki stałoprzecinkowej. Cortex-M3 ma instrukcje nasycające rejestr do n-tego bitu, ale żeby z nich korzystać, musisz pisać w asemblerze lub skorzystać z gotowych funkcji CM3_intrinsics. Cortex-M3 nie ma instrukcji natywnie pracujące w jakimś stałoprzecinkowym formacie (np. Q15, jak dsPIC) - te operacje musisz robić...
• 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...
Nigdy nic nie napisałem na PC.A z czym bascom miał problemy to doskonale poznałem ,nawet przy wolnym podawaniu impulsów na przerwanie i dodając coś w nim na zmiennych single LCD zaczynał wyświetlać syf. Dodając coś do worda lub bajta nie było takiego problemu, więc skróciłem podprogram na max. W przerwaniu dokonuje pomiaru przebiegu,aby ten przebieg...
Piotrus_999 niestety żadna odmiana języka C mi nie "podchodzi". Jak ktoś się uczy to powinien słuchać rad ludzi bardziej doświadczonych. Ciekawe co znaczy nie podchodzi? Ale jak chcesz pisać jakieś program to niestety o asemblerze musisz zapomnieć. Ale dalej Twoja sprawa. Każdy ma prawo się katować na sposób przez siebie wybrany :) Aby sprawdzić jak...
Programując w asemblerze problemem nie jest liczba instrukcji, jaka by nie była to sprowadza się do kilku podstawowych, które nawet małpa opanuje jak piszesz. Problem w tym, że program składa się z tysięcy takich cegiełek, z których każda nic nie znaczy. I tak np. jak masz operację dodawania dwóch floatów to w C piszesz y=x+z i problem z głowy, w dodatku...
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...
Operacja iloczynu logicznego oraz przesunięcia w prawo np. interesuje Cię bit 4 a jakimś rejestrze X i zapisać go na 2 bicie portu D push X //odłóż na stos and X,b00001000 //interesujacy nas bit 4 ror X,2 //ror - rotacja w prawo z wpisywaniem 0 na początek X=000000Z0 (Z - czwary bit odczytany z rejestru X na 2 bicie) z 4 miejsca na 2 wiec 2...
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...
Powiem szczerze, że nie do końca rozumiem o czym mowa.... Jeśli ktoś ma juz gotowe (sprawdzone przez siebie) implementacje obsługi i2c, ADC, timerów, SPI i czego tam dusza zapragnie, to połączenie tego w gotowy program nie potrwa znowu tak długo, a pewność optymalizacji kodu jest dużo większa niż przy jakimkolwiek kompilatorze C/C++ etc. Podejrzewam,...
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...
(...)takie jak Motorola 6809, MOS Technology 6502(...) To były bardzo fajne, mądrze zaprojektowane mikroprocesory. Szkoda że mało rozpowszechnione w Polsce. Na Motorolę 6803 napisałem w ramach pracy dyplomowej podprogram w języku asemblera, wykonujący pierwiastkowanie liczby 16-bitowej. Podprogram zawierał dziewięć instrukcji procesora... Pozwole sobie...
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;...
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...
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...
To jest tylko sztuczny marketingowy zabieg w celu zdywersyfikowania produktu jakim jest kompilator na wersje Free, Standard i Pro. Taki system powoduje przywiązanie do produktów i skrojenie na miarę kieszeni klienta i nie ma nic wspólnego z obiektowością. I to jest właśnie problem , bo pisząc w C nie mamy wpływu na to jak będzie wyglądał kod wynikowy...
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 ! Znalazłem w sieci projekt uniwersalnego generatora przebiegów sinus, trójkąt, piła etc. o nazwie "Mini DDS" ; main loop ; ;r28,r29,r30 is the phase accumulator ; r24,r25,r26 is the adder value determining frequency ; ; add value to accumulator ;load byte from current table in ROM ;output byte to port ;repeat ; LOOP1: add r28,r24 ; 1 adc...
https://obrazki.elektroda.pl/5132775900_... 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....
dodawanie liczb dodawanie asembler asembler dodawanie
pomiar emisja radiowy impuls włącza wyłącza schemat hulajnoga elektryczna
wistron matryca wistron matryca
Stycznik klimatyzacji Opel Signum - lokalizacja i diagnostyka Junkers ZS23KE wyciek wody ze śrubunku nagrzewnicy - uszczelka czy o-ring?