Jeśli kod ASCII znaku '0' to 30h, to ile od 30h trzeba odjąć (SUB), żeby dostać 0? A jeśli '1' to 31h, to odejmując tą samą... takie czary :) Przecież masz dokładnie to samo tylko w drugą stronę cyfra -> znak w ety1. Masz tu kilka prostych kodów, w tym także wprowadzanie liczb: https://www.dzyszla.pl/download-34.html
[syntax=avrasm] ; PODPROGRAM MNOZENIA LICZB DWUBAJTOWYCH ; PISAL I TESTOWAL: MIROSLAW LACH, AVT ; WEJSCIE: ; R0 - ADRES NAJMLODSZEGO BAJTU MNOZNEJ ; R1 - ADRES NAJMLODSZEGO BAJTU MNOZNIKA ; WYJSCIE: ; ILOCZYN JEST UMIESZCZANY W MIEJSCE CZYNNIKOW ILOCZYNU, GDZIE ; ZLOZENIE BAJTOW (R0-1):(R0):(R1-1):(R1) DAJE WYNIK ; (R0-1) - BAJT NAJSTARSZY, ZAS R0 I...
Standardowy algorytm dzielenia binarnego - jeden z dwóch do wyboru - restytucyjny albo nierestytucyjny. Opis znajdziesz w każdej książce z okolic arytmetyki komputerów.
Może nie najładniej to rozrysowałem - [url=http://forum.dzyszla.aplus.pl/topic... dzielenia liczb wielobajtowych z wykorzystaniem odejmowania
Taki program mógłby wyglądać tak: Mnożna: rejestr E Mnożnik: rejestr A Wynik: rejestr HL LD HL,0000 ;inicjacja wyniku LD B,08 ;licznik pętli LD D,00 ;zerowanie bardziej znaczącego bajtu DE NXBIT ADD HL,HL ;przesunięcie wyniku w lewo RLA ;sprawdzenie cyfry monożnika JR NC, FIN ;opuszczenie zera ADD HL,DE ;dodanie mnoznej FIN DJNZ NXBIT ;powrót do początku...
moze ktos mi napisac taka sekwencje?? Napisac sekwencje rozkazow zliczajaca ilosc liczb parzystych i nieparzystych w obszarze adresow 200-500. po wykonaniu programu szukane wartosci powinny znajdowac sie na stosie. z gory dzieki za pomoc
Generalny schemat w pseudokodzie [syntax=delphi] liczba = 0; repeat { pobierz cyfra liczba = liczba*10+(cyfra-'0') } while są cyfry.[/syntax] Przypilnuj nazw zmiennych. Wydaje mi się że piszesz 'liczba' a myślisz 'cyfra' i źle się potem myśli.
Jest sposób aby wykonać ta procedurkę w asemblerze , ale nie wiem ile ona potrwa- a tobie zależy na szybkim wykonaniu obliczenia. Poniżej opisałem jak według mnie mogłoby to działać: Np. A=256 ; B=64 Deklarujemy tablice w której będą procentowe podzialy liczby (25%,50%,75%,100% itd) 1) porównanie liczb A=B, A>b, A<B 2) A>B (inkrementujemy odpowiednio...
Autorka tematu mogła podać pod jakim to emulatorem to ma działać bo jsr $ff80 to jakiś skok do procedury tego emulatora (pewnie wyświetlanie wyniku). (at)szlus masz rację z tym sta ($80),y a ja od siebie dodam, że na początku zamiast ldy #0 powinno być chyba ldy #1
dziel FFFFFFFFFFFFF000 przez 00000AAAAAAAAAA - ucierpi nieco dokładność, ale jest to do wykonania na 64 bitach ALU. Wynik przesuń o 6 w prawo (otrzymasz 6 miejsc binarnych po przecinku, oczywiście przesunięcia dokonujesz modyfikując cechę wyniku). Generalnie dzielenie np liczb 32 bitowych na FPU odbywa się w rzeczywistości z wykorzystaniem 96 bitów,...
Witam wszystkich! Mam taki problem, mam napisac projekt (pewnie prosty dla wiekszosci) w assemblerze badz w C, temat " Dzielenie liczb 16 bitowych ze znakiem w kodzie U2" i dlatego zwracam sie z prosba czy ktos ma moze napisany (przez przypadek) taki program, albo pomoze mi w jakikolwiek sposob go zrealizowac. Program ma dzialac na procesorze 8051,...
witam, mam problem ponieważ muszę napisać moduł w assemblerze do C, który będzie dodawał 2 liczby zmiennoprzecinkowe, wpisane w c i wyświetlane w c, moduł assemblerowy ma wykonywać dodawanie. Jakieś podpowiedzi , albo najlepiej podobne programy do przeanalizowania
Witam, Mam problem z wykonaniem ćwiczenia, za pomocą języka assembler w programie uVision, za pomocą listy rozkazów muszę napisać program odpowiadający za dodawanie dwóch liczb których suma da cyfrę dwubajtową, a następnie podzielenie tej licby na liczbe setek, dzięsiątek i jedności. Następnie trzeba przesłać setki, dzięsiątki i jedności na port https://obrazki.elektroda.pl/1755238000_...
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...
A możesz opisać, jaki był zamysł tego programu?
Witam, Odejmowanie liczb wielobajtowych [ASSEMBLER] pozsiada może ktoś taki program w assemblerze lub potrafi go napisać ?
oj po co tyle kodu ???;) Jak odświerzanie wyświetlaczy ma być na pętli nieskończonej to nie potrzeba tyle kodu . Opisz jak sprzętowo podpięte są te wyświetlacze a dopiero po pokazaniu schematu można wogóle zacząć analizować kod. Pojrzyj na www.kloszi.prv.pl dział "Moje projekty->Symulator Softwarowy MCS-51" i tam jest właśnie zrobione sterowanie wyświetlaczami...
Atom to za mało.Gdzie 9 bit wyniku?
Przyglądnij się tej linii: sum cl, b W niej masz, błąd.
a) OK -> SFR dokładniej pod adresem E0H (ACC dla 8051) b) NIE -> stała liczba dziesiętna 121 pod adres 00h (czyli do rejestru R0) c) rozumiem, że są tu dwie instrukcje? Pierwsza ładuje liczbę do rejestru a druga zapisuje pod adres wskazywany przez R0 stałą 121. Czyli 121 zapisane pod adresem RAM 0AH (czyli 10 w systemie dziesiętnym) d) to samo co w...
Dziękuję za wstępne zainteresowanie tematem. Rozumiem więc, że algorytm trzeba uzupełnić o następujące punkty: 2A. Przeniesienie zawartości stosu związanej z wywołaną procedurą do znanej mi komórki pamięci. 10A. Przeniesienie zawartości ww. komórki na stos. Program jako taki ma być napisany w środowisku AT89LP Developer Studio. Dostępnych jest tam z...
Ten algorytm przedstawia prosta metode mozenia ktora czesto byla stosowana w procesorach nie posiadajacych instrukcji mnozenia. wykozystuje sie w nich rotacje bitow i dodawanie. Algorytm jest bardzo prosty w realizacji.
Witam Czy posiada ktoś kod do asemblera, wykonujący mnożenie liczb szesnastkowych?? Proszę o szybką odpowiedź.
1. nawet kolega (at)Tadeko9 nie napisał wyraźnie, czy wejściowa "liczba" to naprawdę liczba, czy napis (string) Liczb jako liczb, to tak naprawdę we współczesnym komputerze trzycyfrowych nie ma. (at)excray 2. słusznie pytasz o assembler - liczba setek - liczba dziesiątek - liczba jednostek 3. Liczba czy cyfra. Co ma być wynikiem
Użytkownik wprowadza nazwę pliku w którym znajduje się do 1000 liczb od 1 do 32000, program pyta użytkownika jaką chce wyświetlić statystykę z tych liczb: min, max lub średnią. Program wylicza wybrane wyrażenie, wyświetla je na ekranie oraz zapisuje do pliku. Kurcze mam z tym taki problem facet na zajęciach nic nie tłumaczy. Z kolegą napisałem cuś takiego...
Witam. Problem został rozwiązany. Projekt zaliczony. Moze komus sie przyda, przesylam swoje pliki dotyczące projektu + dokumentacje. Dokumentacja pisana na szybkiego, ponieważ brakowalo juz czasu:P Pozdrawiam.
bez urazy, kolego olekewaagata, zanim zaczniesz kogoś pouczać przeczytaj tekst ze zrozumieniem! ;)) Autor wątku miał problem z propagowaniem przeniesienia - moja odpowiedź dotyczy DOKŁADNIE zalecenia, jaką instrukcją uwzględnia się przeniesienie. A podany przeze mnie przykład dotyczy sumowania, z jakim ma problem autor - czyli dokładnie liczby _16bit_...
Oto, co podaje ChatGPT: [syntax=armasm] ORG 1000H ; Punkt początkowy programu START: ; Wczytanie pierwszej liczby (dividend) z zakresu 0-65535 MVI D, 0 ; Wyczyść rejestr D MVI E, 0 ; Wyczyść rejestr E ; Zakładamy, że liczba jest podana bezpośrednio ; (możesz dodać instrukcje do wczytywania wartości, jeśli potrzebne) ; Przykład wartości (do testowania)...
Bolek: 1.Żeby nie było przesunięcia tak jak mówisz, to musisz użyć liczb ujemnych. Bo jak masz liczby -20 i 20, to skalowanie x3 zamieni to na -60 i 60 - wszystko ok Jak masz liczby 10 i 20, to skalowanie x3 zamieni na 30 i 60.. środek kwadratu jest już zupełnie gdzie indziej 2.Żeby otrzymać dobrą płynność powinieneś użyc wyników z mnożenia/dzielenia...
Mam problem, mam do napisania dodawanie dwóch liczb w BCD. Pierwsza liczba w komórce pamięci 2000H druga liczba w komórce pamięci 3000H Wynik w komórce pamięci 4000H Dodawane liczby maja byc n-krotnej precyzji (n-bajtowe) Teraz co mam narazie ... To dodaje mi dwie liczby w BCD .. ale nie uwzględnia korekcji dziesiętnej .. Czy wie ktoś może jak zrobić...
Dla mnie assembler to czarna magia, a mam napisać program który: 1: pobierze do 10 liczb 1 bajtowych 2: i je posortuje mam maly problem z wyborem ilosci tych sortowanych liczb... nie wiem jak się do tego zabrać... myślałem nad wyznaczeniem sobie stałej liczby pobieranych danych... a wykluczanie niepotrzebnych by polegało na przypisaniu im 0 :) (klawiatura...
A mógłbyś zamieścić kompletny schemat połączeń przycisków, diod itp. do tego mikrokontrolera ? Bo bez znajomości sprzętu to ciężko coś dla mikrokontrolera napisać.
Masz tutaj kalkulator napisany w ASM jest wszystko i wczytanie liczby i wypisanie
To są moje początki w programowaniu w języku assembler. Chciałem napisać program który będzie podnosił liczbę 8bitową do potęgi trzeciej. Z mnożeniem mniejszych liczb nie ma problemu ale przy większych które mogą zajmować nawet 3 bajty pojawiają się schody (dosyć wysokie jak dla mnie). Naskrobałem kawałek programu ale stoję w miejscu i się gubię. SJMP...
Ale 01h przerwania 21h czyta znak, a nie liczbę. Co więcej, DIV chyba nie działa na 8-bitowych rejestrach, więc bierze AX przez BL. Stąd AX = 0134h = 308, a to jest podzielne przez 7.
Do dzielenia liczb w asemblerze bez znaku służy komenda div lub idiv . Formaty DIV reg DIV mem Dzielna musi być w AX lub DX:AX lub EDX:EAX. Dla AX wynik jest w AL a reszta w AH (operandy 8bit) Dla DX:AX wynik w AX reszta DX (operandy 16 bit) Dla EDX:EAX wynik w EAX reszta w EDX (operandy 32 bit) Do dzielenia ze znakiem służy idiv Jak chcesz się bawić...
Acha. To zrób w assemblerze. Albo na tablicach. Nie ma takiej operacji w BASCOMie ani w assemblerze AVR, '51 i innych. Taka operacja to tak zwany "motylek" ale naprawdę nie słyszałem o prcesorze który by miał taki rozkaz. Może jakieś procesory DSP. Albo assembler albo tablicowanie. Wiesz o co mi chodzi z tymi tablicami?
Witam wszystkich. Mam pewien projekt do zrobienia i w sumie nie wiem jak sie do tego zabrac. Temat zadania brzmi: procedury obliczania iloczynu liczb n-bitowych w formacie 8x8, 16x8, 16x16 w asemblerze AVR. Czy moglibyscie mnie nakierowac, od czego mam zaczac? Najlepiej gdyby ktoś spróbował mi wytłumaczyć problem. Dzięki z góry.
Czesc. Mam problem, a w sumie to nawet 3 =]. Mam do napisania 3 programy w assemblerze (dokladniej bede je uruchamiac na symulatorze procesora z80). 1 zadanie. Napisz program, ktory liczbe 21H doda do liczby 42h. 2 zadanie. Za pomoca programu sprawdz czy suma tych liczb (zad 1) jest liczba parzysta. 3 zadanie. Dane sa dwie liczby. Napisz program, ktory...
Przede wszystim, jesli oczekujesz pomocy, musisz podac na jaki procek ten assembler. Po komendach widze ze nie jest to x86, czyli PCet. Byc moze chodzi o jakis mikrokontroler. Nie wiem czy wiesz, ale assembler nie ejst przenoscym jezykiem i nie ma jakies jego standardu - w przeciwienstwie do Ansi C czy pascala. Dalej nie wiem czy wiesz, ze nawet jesli...
Witam. Czy ktoś z grupowiczów spotkał się z procedurą obliczenia pierwiastka kwadratowego z liczby 16 bitowej. Interesuje mnie procedura w assemblerze 8051 ewentualnie jakiś sposób (algorytm) tego rozwiązania.
to do twojego pierwszego pytania zobacz sam
Dawno się assemblerem nie bawiłem, ale czy nie powinieneś mieć segmentu kodu? Kiedyś było to konieczne.
Mam pytanie... Jak powinno wyglądać polecenie zmiany liczby w systemie dziesiętnym na liczbę w systemie dwójkowym w Assemblerze? Nigdzie nie mogę tego znaleźć a dostałem takie zadanie po jednych zajęciach (słowo "zajęcia" jest chyba za duże) a ASK :/ Z góry dziękuję za pomoc :)
W BASCOMie nie da rady - przynajmniej czystym. Musi być co najmniej mały fragment w assemblerze, żeby zlikwidować jitter przerwania AVR. Reszta też by się przydała w assemblerze, bo liczba taktów na linię jaka jest do dyspozycji nie jest imponująca. A co do łączenia - masz H i V-Sync, które są liniami cyfrowymi i po prostu je łączysz z MCU - mały rezystor...
to trochę zależy pod jaki mikrokontroler piszesz!! i czy liczby "dodawane" sa zapisane z "korekcją dziesiętną" ogólnie: w dodawaniu postepujesz podobnie jak w dodawaniu "pod kreską" tylko że dodajesz liczby z zakresu 0..255, czyli poszczególne bajty, tzn. jak dodajesz dwie liczby jednobajtowe to maksymalny wynik moze być zapisany w 9 bajtach (8 bajtów...
raczej cyfrą 0, no! wreszcie krok naprzód. No to mam dzisiaj wieczór przed komputerem z ibasicem :) Temat zamykam. - arnoldziq
odpal kompilator g++ z opcją -S
to proste: 1. kasujesz flagę przeniesienia/pożyczki 2. odejmujesz od młodzego bajtu daną liczbę 3. odejmujesz od starszego bajtu 0 (czyli de facto odejmujesz pożyczkę z poprzedniego odejmowania).
W asemblerze wstawiasz : etykieta: .db "Jakis napis",0x0a,0x0d,13,12,0 .db "dalsza czesc tego samego napisu" itd. a wyciagasz z flasha: ldi zh,HIGH(etykieta<<1) ldi zl,LOW(etykieta<<1) lpm acc,z (lub z+) Ten napis w "" zostanie przekonwertowany na znaki ASCII. Jesli kody twoich liter nie sa...
Używam AVR Studio a w pliku jest zamieszczony ciąg liczb oddzielonych przecinkami. Bez zaznaczonego początku i końca ciągu. To jest wycinek tego ciągu który znajduje się w pliku "alleluja.txt": 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, zaczyna się od liczby a kończy na przecinku. Zamieszczam też program który działa...
Ciekawe. Bez użycia debuggera mogę powiedzieć tylko, że problem na pewno wynika z wykorzystania liczb zmiennoprzecinkowych do obliczeń (i wynikających z tego błędów zaokrągleń) w tej linijce: [syntax=cpp] su=su+pow(10,n-i)*(a%10); //wyznaczoną cyfrę mnożę przez odpowiednią potęgę liczby 10, aby zmienić jej pozycję w liczbie.[/syntax] Natomiast dlaczego...
No i właśnie o to mi chodziło gdy pisałem żebyś o to nie pytał ;) Bo tak czułem że nie będziesz umiał tego wyświetlić ;) Wynik niestety jest 24-bitowy więc nie może być w dwóch adresach. Ma być w trzech. To takie trochę tłumaczenie jak chłopu na miedzy, bo to niby jedna liczba i ma jeden adres, ale chodzi o to że ma 3B i już. Więc jako 16-to bitową...
A dostęp do google też masz zablokowany ? trudno wpisać "Kurs asemblera 8051" ? A sio...
Mają to być liczby 8 znakowe posortowane i wszystkie możliwe od 00000001 poprzez 0d909088 aż do ffffffff programistą nie jestem więc szukam innej metody ale mogę coś prostego skompilować Jak byś mi zaoferwał pomoc Jest jeszcze inny problem, otóż liczba ffffffff to 2^32=4,294,967,296 czyli ponad 4giga. Jeśli każda liczba ma zajmować 4bajty to do zapamiętania...
Pokaże Ci przykład dodawania dwóch liczb wiecej jak 8 bitowych (i mniejszych niz 16 bitów), przykład ten znalazłem w ksiązce "Mikrokontrolery AVR w praktyce " Jarosława Dolińskiego ; dodaj dwie liczy 16-bitowe r1:r0 + r3:r2 add r2, r0 ;dodaj młodsze bajty adc r3, r1 ; dodaj starsze bajty z przeniesieniem Więcej przykładów operacji arytmetycznych znajdziesz...
Źle rozumiesz. DDRx, PORTx, PINx, gdzie x jest wielką literą, to symboliczne nazwy rejestrów I/O. Pisanie "PORTB1" nie ma sensu, bo nie ma rejestru o takiej nazwie. DDBn, PBn, PINxn, gdzie n to liczba od 0 do 7 są numerami bitów w danym rejestrze. Włączenie podciągnięcia danej linii następuje po ustawieniu , a nie wyzerowaniu odpowiedniego bitu w rejestrze...
Na pewno ln(x) ? Czy też log_2(x) ? Podstawową liczbą na komputerkach jest 2... Pozdr. Light-I
O ile jeszcze pamiętam coś z assemblera z przed 20 lat, ze studiów :) Głównie ta część kodu nie zadziała: MOV (at)R0,#LICZBA INC LICZBA MOV <destination>,#dana - to jest przypisanie do miejsca "danej" która jest stała, zdefiniowana w programie. Moja propozycja: MOV R0,#40H MOV A,#01H LOOP: MOV (at)R0,A INC A INC R0 CJNE A,#10H,LOOP
Poczytaj o fladze przeniesienia (Carry Flag) i "adc". Poza tym na 8086 masz przecież rejestry 16-bit, więc w czym problem uciąć te 4 bity ? (np. add ax, bx, a 13 bit traktujesz jako przeniesienie) Tutaj jest stronka o asm : http://assembler.g5.pl/, znajdziesz tu najwięcej potrzebnych Tobie informacji. Kurs asm po polsku : http://rudy.mif.pg.gda.pl/~bogdro/...
:arrow: leoha Tutaj znajdziesz opis i przykład jak dzielić liczbe 16bit przez 8bit dla asmavr. :) http://www.avr-asm-tutorial.net/avr_en/c...
Port szeregowy działa na całkiem innej zasadzie. Podaje się mu liczbe iluś-bitową (to można skonfigurować) a on przekształci ją w ciąg binarny rozpoczynający się bitem startu a zakończony bitem stopu. Układ sterownika zbudowany jest z rejestru przesuwnego do którego wpisuje się wartość do wysłania a w czasie wysyłania kolejne bity są przesuwane tak...
Najpierw poczytaj co to są liczby stałoprzecinkowe i zmiennoprzecinkowe. Takie dzielenie jak tu zostało zaprezentowane jest na liczbach stałoprzecinkowych. W takim przypadku to ty decydujesz gdzie będzie przecinek i czy w ogóle będzie. Po za tym powtórzę się za kol koodpl : po co takie rzeczy rzeźbić w asm?
Mały szantażyk psychologiczny, no no assemblera się nie chciało nauczyć ale granie na ludzkich uczuciach mamy już opanowane Nie bede ukrywal ze mam to na zaliczenie, takze pomagajac ratujesz mnie przed powtorka semestru!!! Poniżej podaję ci szkic rozwiązania, poszczególne linie trzeba dopracować do konkretnego sprzętu (niedokładnie go opisałeś) sekwencja...
No, to już coś. Teraz podobne funkcje dla assemblera zapisz dla mnożenia (MUL). Następnie zobacz, jak [url=http://www.dzyszla.aplus.pl/downloa... liczby (klika przykładów z assemblera) - znów zapiszesz swoją funkcję zamiast readln. Podobnie postąp z wyświetlaniem liczb (również ten sam link co podałem). Na koniec wszystko zapisz w jednym...
Chciałbym napisać system operacyjny. Jestem 9 - latkiem. Chciałbym użyć asembler, c, c++, python 3(Framework). MYOS_64 - Co to jest według Ciebie "system operacyjny"? Czy znasz system dwójkowy? Czy znasz system szesnastkowy? Czy znasz komendy assemblera? Czy umiesz przetransferować liczby z systemu dziesiętnego na szesnastkowy a potem na dwójkowy a...
Błąd jest w konwersji dekoder pokazuje to co dostaje na port . W programie brak inicjalizacji stosu . Konwersję tego typu łatwiej wykonywać odejmując od wyniku konwersji wartość przetwornika stałą i inkrementując liczbę operacji odejmowania do chwili otrzymania wartości zerowej lub ujemnej . gdy pozostała wartość będzie mniejsza lub równa zero liczba...
1. Assembler 2. Licznik pracuje w trybie 1 wiec max ma 64tys (to jest nieistotne) 3. Licznik jest 16 bitowy
co do Disasemblacja to otrzymam źródło w asemblerze, czyli dłuuuugi ciąg liczb, z którymi nie wiadomo za bardzo co zrobić. Disassembler wcale nie daje w wyniku "dłuuugiego ciągu liczb" tylko ciąg instrukcji języka assembler. Proszę nie mylić disassemblera z zapisem szesnastkowym. Zależy mi na źródle typu IF, FOR, WHILE, itp. Niech sobie to kolega raczej...
Pisze programik mikroprocesorowy w assemblerze i natrafiłem na pewną przeszkodę. otóż muszę za pomocą klawiatury matrycowej podać jakąś liczbę od 0 - 255 i wyświetlić ją na wyświetlaczu 7 - segmentowym. czy możecie dać mi jakąś wskazówkę jak to zrobić
A w C te dwie liczby po prostu mnozysz, a reszte czasu przeznaczasz na cos bardziej tworczego niz mnozenie dwoch liczb. Jak jestes taki dobry to pisz od razu do pliku hex, tego w szkole Cie nie uczyli?
To działa tak samo dla dowolnej ilości bajtów. Liczbę wejściową wysuwasz z najstarszego bitu najstarszego bajtu Czyli przesuwasz liczbę 32 bitową (mnożysz przez 2). Wysunięty bit (w znaczniku przeniesienia) wprowadzasz do najniższego bitu najniższej tetrady liczby BCD. Przed każdym kolejnym przesunięciem sprawdzasz każdą tetradę czy nie jest >=5...
Witam. Mam do napisania 3 programy w assemblerze na DSM-51. 1. Dodawanie dwóch liczb 5-cyfrowych. 2. Mnożenie dwóch liczb 5-cyfrowych. 3. Komparator (porównywanie cyfr) 5-cyfrowych. Np. 18 większa 10, 10 mniejsza 18, 10 równa 10. Na wyswietlaczu LCD musi pokazac sie równiez słowo(mniejsza, wieksza, rowna)
Byłbym wdzięczny :).Zapomniałem powiedzieć ,że ma to być napisane w assemblerze.
1. Dla liczb całkowitych w przypadku x86 jest to naturalny zapis, a więc od lewej (M) do prawej (L). Choć zasadniczo nic nie stoi na przeszkodzie stworzyć program wg logiki odwróconego zapisu ;) Nie wiem, dla jakiego procesora Ty piszesz. 2. W zasadzie to nie musi. Porównaj z moim schematem. Przyznam szczerze, że nie umiem zobaczyć, dlaczego tutaj to...
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.
Rozwiązanie było [url=http://www.elektroda.pl/rtvforum/to... Trzeba tylko zmienić liczbę obrotów.
Żaden procesor nie interpretuje niczego, poza stanami logicznymi, czyli 0 i 1. Żaden procesor nie zrozumie komendy typu 'mov al,01'. To jest zadanie dla assemblerów, żeby zamienić ten ciąg znaków, który jest czytelny dla człowieka, na ciąg liczb zrozumiałych dla procesora. Odsyłam do internetu : [url=http://pl.wikipedia.org/wiki/Asembl... [url=http://pl.wikipedia.org/wiki/Mikrop...
nie wiem jak zrobic ((64 < znak) && (znak < 91)) uzyc AND nie moge w programie, coprawda znalazlem and ale wydaje mi sie bezuzyteczny w ogole w asemblerze przeciez chyba nei moge wpisac dwoch liczb w jeden rejestr ? i tak to bedzie bez sensu bo nawet jesli to mam jeden operator przyrownania
Dobry wieczór, Gra działa, ale wyświetla tylko cyfry parzyste z wyjątkiem pierwszej. Generator liczb pseudolosowych polega na wycięciu młodszej cyfry setnych sekundy zegara systemowego... Kiedyś działało, a na CA80 kuleje... Zakładam, że problem wynika z różnicy w implementacji obsługi klawiatury starego (SA) i nowego (CA) systemu oraz wykorzystania...
Algorytm którego używam przesuwa bity, ale równie dobrze można dzielić tak jak piszesz, tylko jak używam dzielenia to program "rośnie" wiec chyba pozostanę przy sprawdzaniu najstarszego bitu i OR. Rośnie o kilkadziesiąt bajtów. Tyle ile ma procedura biblioteczna dzielenia liczb 16 bitowych ze znakiem. Ale pewnie dzielenia prędzej czy później będziesz...
To jest bardzo historyczne spojrzenie na asembler - kiedy to był on tylko tłumaczem zbioru nazw instrukcji, liczb i etykiet No to może wyjaśnij mi jakie jest nowoczesne spojrzenie na assembler? Bo nawet na wikipedii mają jakieś staroświeckie podejście i twierdzą że asembler asembluje a nie kompiluje. Współczesny asembler jest złożonym językiem programowania......
Posluguje sie komendami jakie nam wpojono na zajeciach, rozumiem ze to jest assembler. No ale odmiany assemblera tez sa chyba rozne. Zreszta moze ponizej jakis przykladowy programik aby pokazac co jest co: ;DZIELENIE DWOCH LICZB LJMP START ORG 100H START: LCALL WAIT_KEY MOV R2,A LCALL WAIT_KEY MOV B,A MOV A,R2 CLR C DIV AB LCALL WRITE_HEX MOV A,B LCALL...
Witam. Potrzebuję w moim programie dodać/odjąć 100'kę. Kompilator to odrzuca .Dopóki liczba jest mniejsza od 0x40, wszystko jest OK. sbiw r16,100 -> operand 2 out of range. Dlaczego?
C znam, albowiem w technikum trochę się takowego uczyłem ;) Z assemblerami to raczej na bakier.
Ok. Trochę nie zrozumiałem pytania. Chodziło o to, że mając 0x579a6db5 np. trzeba zliczyć liczbę zer w postaci binarnej tej liczby. 50 pkt. za kod w assemblerze (jakby pod mipsa to super) za funkcje zliczające te zera.
Liczba lat od 1980 roku.
Witam, proszę o pomoc, mam do wykonania następujące zadanie: W pamięci komputera, począwszy od adresu T, znajduje się ciąg bajtów. Ilość elementów w tym ciągu znajduje się pod adresem N (jeden bajt, tzn. ich liczba jest nie większa od 255) Napisz program, który pod adresem W, zapisze sumę (16-bitową) tych bajtów. przykładowo: ... ... ... //tu jest program...
Tu: http://alds.stts.edu/APPNOTE/MCS51/AB-40... jest procedura dzielenia liczby 4 bajtowej przez 2 bajtową, trzeba tylko zwiększyć dzielną do 6 bajtów i liczbę obiegów pętli z 32 to 48. PS zakładam że jeśli bawisz się assemblerem to wiesz o co chodzi
... jednak w przypadku avr'ów warto zauważyć, że brak jest instrukcji przesuwania w lewo o dowolną ilość bitów, przez co przesuwanie o zmienną zostaje przekształcone w pętlę co wydłuża wykonywanie A mnożyć przez 2,4,8,16,32,64,128... potrafisz ? mówi coś instrukcja mul ...Problem właśnie w tym że algebra liczb binarnych w przypadku wielu programistów...
A gdybym chciał się zając mikrokontrolerami, czego bym potrzebował?? Mikrokontroler (jaki?) programator (jaki?) kompilator na kompie (jaki?) hmm.. coś jescze???? _emes Na początek polecam zacząć od mikrokontrolerów rodziny AVR. Nie daj się nabrać na początki w '51 - owszem, może to i "sztandarowy" mikrokontroler, tak jak Pascal w językach programowania,...
...więc się zgadza wszystko... Wprost przeciwnie - nic się nie zgadza :!: K ma być 8 bitowa wartością wpisana do rejestrów 16-31 :) No właśnie , a Ty jako argument K , podajesz time , który to jest adresem(wskaźnikiem) do komórki pamięci RAM i na dokładkę , ten adres w procesie kompilacji nie jest znany , bo time jest zmienną lokalną. Argument K ,...
Da się. Napisz program, który w pętli kolejno: wyświetla liczbę, czeka 10 sekund, gasi liczbę, czeka 10 sekund.
Jak za pomocą operacji and w asmie uzyskać operację modulo 15 ? (miałem taki pomysł że wszystkie 8 bit liczby mod 15 mają taką własność że młodszy półbajt jest negacją starszego ale może jest jakiś prostszy sposób np tak jak dla modullo dla liczb będących potęgą dwójki gzdzie operacja A mod B jest równoważna operacji A AND (B-1) ) Ktoś wie ? Zamykam....
Algorytm jest dość prosty, wygląda jak mnożenie pisemne. Potrzebujesz dwóch pętli, zewnętrzna wybiera kolejne cyfry mnożnika, a wewnętrzna mnożnej. Kolejne cyfry wyniku (ma nie więcej cyfr niż suma długości mnożnej i mnożnika) wyznaczasz ze wzoru: x=a[i]*b[j]+przeniesienie jeśli x>9 to { przeniesienie=x/10 x=x mod 10} potem oczywiscie musisz sumować...
A,B,C w porządku. odp D: C to jest akumulator bitowy i nie ma wpływu na A. mov 1, #ah do komórki o adresie 1 wpisuje liczbę Ahex mov R0, #1h do rejestru R0 wpsiuje 1 mov A, (at)R0 przepisuje wartość danej która znajduje się pod adresem zawartym w rejestrze R0 do akumulatora. Czyli a akumulatorze pod koniec mamy 0x0A. (at) oznacza adresowanie pośrednie....
Jeśli przypatrzysz się wygenerowanemu kodowi, to dzięki optymalizatorowi mamy po prostu odjęcie 8-bitowe jednej zmiennej od drugiej. Ale to jest bez znaczenia dla tej konkretnej debaty, bo przecież to jak standard języka C "zrealizowany" na konkretnej implementacji (nawet nie wiemy jakiej...), to jest dalsza kwestia. Standard mówi, że operacja odejmowania...
impulsy najlepiej zliczacz za pomoca wewnetrznych liczników a masz i 8 i 16 bitowy. Więc zakresu z pewnością wystarczy. Przy 8 bitach raczej nie wystarczy . Chyba, że masz patent na zapisanie w 8 bitach liczby 5000 poprzez rozwiązanie mieszane z przerwaniem z licznika.
Witam, Mam za zadanie napisać prosty kalkulator jako część zaliczenia na studiach, ale nie potrafię zrobić działania dzielenia. Proszę o pomoc. Ogólny zarys algorytmu wygląda tak: 1. Wciskamy przycisk 2. Wybieramy działanie 3. Podajemy liczby 4. Wynik
Witam Chciałem się dowiedzieć jaki jest rozkaz w assemblerze AVR do attiny2313, żeby podzielić 2 liczby przez siebie? I czy można rejestry czy trzeba a i b? Wiem, że jest rozkaz DIV, ale do AVR nigdzie go nie widziałem. Z góry dziękuję za odpowiedź :) Pozdrawiam
assembler konwersja liczb assembler darmowy assembler zaokrąglanie liczb
schemat monitora flatron philips serwisowy zmiana matryca felgi malowanie
Radio VW T5 nie działa po wymianie bezpiecznika - przyczyny Uziemienie punktu rozdziału przewodu PEN na N i PE - czy jest konieczne?