Proste dodawanie jest OK, tyle, że 16 bitowe ze znakiem. Procedura do znalezienia wszędzie. A tego i tak nie unikniesz, bo jak sam piszesz może być przepełnienie. Albert
Musze Cie zmartwić ale nie da się tego zrobić na jednej tabelce .. dla kazdej sumy i przeniesienia musisz robić oddzielną funkcje. W załączniku masz skan z ksiązki przedstawiający sumator jednobitowy, tablice karnaughta dla niego i symbol graficzny .. aby zrobić sumator dwubitowy ... trzeba takie dwa sumatory jednobitowe połączyć ze sobą równolegle...
Jak opisać słownie dodawanie liczb 24-bitowych przez procesor 8 bitowy
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",...
pokaz swoje wypociny
witam, zwracam sie o pomoc do was z prosba o napisanie prostego programu w ASEMBLERZE dla układu 8051 realizujący funkcje dodawania 2 liczb 4-bitowych. moglby mi ktos zrobic/pomoc ?
dla ZbeeGin: chce zrobic dodawanie liczb 16-bitowych ze znakiem w kodzie BCD.
Dodajesz i odejmujesz 8bitowe kawałki oddzielnie i jeśli nastąpi przeniesienie w młodszym kawałku to dodajesz/odejmujesz jeden do starszego
Witam wszystkich. mam problem z napisaniem programu: arytmetyka (dokladnie dodawanie i odejmowanie) liczb co najmniej dwubajtowa dla mikrokontrolera 8051 bede wdzieczny za kazda pomoc rade i wskazowke moje gg 4070278 (zawsze na niewidocznym) e-mail: yatatakeru(at)interia.pl lub tutaj:) z gory dzieki za pomoc. pozdrawiam
Witam. czy mógłby mi ktoś pomóc w zadaniu o takiej treści: Zapisać tablicę prawdy dla dodawania dwóch liczb 2-bitowych. Nie miałem tego typu zadań na zajęciach ale na zaliczeniu się pojawiło i nie mam pojęcia jak to rozwiązać. będę bardzo wdzięczny za rozwiązanie pozdrawiam
Układ 7483 to jest coś takiego, co ma wejścia A0,A1,A2,A3, B0,B1,B2,B3, CIN, i wyjścia S0,S1,S2,S3, COUT. Na wejścia A podajesz jedną liczbę (na A0 najmniej znaczący bit, na A3 najbardziej znaczący), na wejścia B drugą. W ten sposób dodajesz 2 liczby 4-bitowe, CIN łączysz wtedy do masy. Żeby dodawać większe potrzebujesz połączyć kilka takich układów,...
W załączniku jest akumulator 12 bitowy dodający liczby 8 bitowe. Dodanie liczby następuje na narastającym zboczu sygnału DODAJ. Zerowanie wyniku następuje przez wymuszenie stanu niskiego na lini zeruj.
Już kilka razy pisano Ci powyżej, że problem leży w tym, że wynik mnożenia dwóch liczb 16-bitowych na AVR ma 16 bitów, i że wystarczy napisać: suma+= (uint32_t) tab[indeks]*tab[indeks]; żeby iloczyn miał 32 bity, to po pierwsze. Po drugie - algorytm, który przyjąłeś, jest zabójczy dla 8-bitowego AVR. Co chwila zmieniasz założenia, a kompletnego kodu...
Może ktoś ma pomysł na dobry przykład tego polecenia na 51, ja mam zaćme nie moge nic sensownego sklecić. najprostszy: dodawanie 2 liczb 16 bitowych. Najpierw dodajesz młodsze bajty przez ADD - generuje przeniesienie (Carry), gdy wynik przekroczy FF a potem dodajesz starsze bajty przez ADDC (dodaje też przeniesienie)
Ale proc ma 128 bitowe jednostki obliczeniowe, i o to się rozchodzi. Na czym szybciej zrobisz dodawanie 2 liczb 128 bitowych na 32 bitowym 486 czy 64 bitowym P II. Chodzi cały czas o jednostki obliczeniowe, a nie zbiór instrukcji, który w obu przypadkach jest 32 bitowy.
Witam. ostatnio zainteresowałem się elektroniką cyfrową i zastanawia mnie jak na przykład procesor intel 4004 po dodaniu dwóch liczb 4 bitowych 9+9 na wyjściu przedstawiał liczbę 18 bo ona jest zapisana w 5 bitach
tplewa: Zobacz, jak długi jest kod wygenerowany przez kompilator dla typowych, prostych operacji w C, np. dodawanie liczb 16-bitowych, sumowanie wektora takich liczb itp.. AVR jest przyjazny dla kompilatora (chociaż kompilator niekoniecznie w to wierzy), 51 i PIC (8-bitowy) to nie są architektury, na które daje się normalnie generować kod z języka wysokiego...
Chcę zrobić prosty kalkulator ( dodawanie ) dwóch liczb 8 bitowych, ale potrzebuję sumatora, najlepiej 1 bitowego tak abym mógł dla każdej pozycji dwójkowej wprowadzić 2xinput, 1x carry, 1xsuma, 1xcarry_z_poprzedniego. Czy ktoś orientuje się gdzie mogę taki sumator dostać, musi być do płytki stykowej. Z góry dziękuję
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.
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...
Ja kiedyś spróbowałem takiego sposobu, że podłączałem bramki NAND wszędzie, gdzie się dało, i sprawdzałem, czy gdzieś jest to, czego potrzebuję (robił to program, bo kombinacji jest sporo) - aż znalazłem rozwiązanie. Oczywiście podłączanie i sprawdzanie robił program komputerowy, który to symulował, bez stosowania rzeczywistych bramek. Potem usunąłem...
Co właściwie trzeba uzyskać? Czy coś takiego, że jeśli włączysz N przycisków, to niezależnie od tego, które to będą, wyświetlacz pokaże liczbę N? Być może użyteczny byłby tu 74275 = 7-bit slice Wallace tree, ale nie wiem, czy jest do kupienia, a poza tym zliczy tylko 7... 2 takie układy i 74x83? Można też użyć pamięci (E)PROM 1024-bajtowej i przełączniki...
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...
Odejmujesz czy dodajesz bity w sumatorach?
Rzeczywiście nijak ma się ten rysunek do mojego problemu... Chyba raczej już wiem o co mi chodzi, nakierowałeś mnie. Potrzebuję skonstruować sumator 3 liczb 2-bitowych (składający się z dwóch bitów). A to już raczej ogromna różnica. Na wyjściu muszę mieć sumę i przeniesienie (Carry out). No właśnie i tutaj leży mój problem. Tak więc schemat powinien...
na początek w 1 bajcie możesz zapisać maksymalnie liczbę 255 a dodawanie takie robi się tak: np. liczbę 32 bitową musisz w zasadzie pobierać z pamięci i tam trafi wynik: od adresu 020h mov a,020h ;pierwszy bajt 1 liczby do akumulatora add a,023h ;dodajesz bez znacznika CY pierwszy bajt 2 liczby mov 026h,a ;do pamięci dajesz pierwszy bajt wyniku mov...
http://zto.ita.pwr.wroc.pl/~luban/uklady...
Step 5 umozliwia dodawanie i odejmowanie liczb 16-o bitowych ze znakiem (zakres od -32768 do +32767). Ale czy jest mozliwość dodawania i odejmowania liczb 16-o bitowych bez znaku ? (zakres od 0 do 65535; 0h to 0, a FFFFh to 65535)
Zadanie: . Zaprojektować jednostkę arytmetyczno-logiczna, która będzie realizować dodawanie i odejmowanie 4-bitowych liczb binarnych w kodzie U2 oraz ma informować o przekroczeniu zakresu. Zrobiłem taki układ: http://obrazki.elektroda.net/18_12442034... Dobrze zrobiłem ten układ? Jak zrobić, żeby informował o przekroczeniu zakresu? Pozdrawiam...
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...
No to ja bym zaczął projekt od określenia, ile dokładnie (co do jednego) bitów mają mieć te liczby. Każdy bit wpływa bardzo silnie na szybkość obliczeń. I oczywiście obliczenia na liczbach binarnych z konwersją na ciąg cyfr dziesiętnych sprytnym algorytmem, tak, by uniknąć dzielnych dłuższych niż 16 bitów (to akurat jest dość proste). Wtedy konwersja...
zerujesz zmienną przepisujesz pierwszą liczbę bez przesunięcia dodajesz binarnie (or) drugą z przesunięciem 16 itd...
wszystko pięknie tylko, że microkontroler, oblicza sinusa i cosinusa za pomocą szeregów McLorina i wykozystuje do tego standardową dokładność obliczeń dla atmega. Można by próbować napisać coś co pozwala na dodawanie i odejmowanie liczb 32 bitowych ale to pracochłonne i nie koniecznie się uda, a pozatym bardzo obciąży procesor. Pozostaje jedynie procesor...
Oj nie tak, sympatyczny kolego ... ... my TU się dzielimy swoją wiedzą :D Zakładamy , że wynik nie przekroczy 16-tu bitów , czyli dziesiętnie 65535.Dane pobieramy w kolejności od jedności do dziesiątek tysięcy. 1)Wynik = 0 ;zerujemy iloczyn 2)Wynik = Wynik + cyfra ;dodajemy liczbę 8-mio bitową , do 16-to bitowej 3)jeśli to była ostatnia cyfra , to...
Witam Co do odczytywania parametrów konfiguracyjnych, to tam są wartości 16 bitowe zapisane jako dwa 8 bitowe bajty. Robisz odczyt w następujący sposób: [syntax=c] AC1 = readFromAddress(0xAA); AC1 <<= 8; x = readFromAddress(0xAB); AC1 = AC1 + x; //i tutaj masz błąd [/syntax] Operacja dodawania arytmetycznego + i dodawania logicznego | nie są tożsame....
Zaprojektować układ logiczny dodający dwie n-bitowe liczby NKB Proszę o pomoc bo nie mam pojęcia jak to zrobić....
Nigdzie nie znajdziesz tego przeniesienia poza właśnie flagą CY. To jest procesor 8-bitowy i tylko takie operacje wykonuje. Jeśli chcesz dodawać liczby większe lub chcesz mieć wynik 9-bitowy po dodaniu dwóch 8-bitowych to ten najwyższy bit musisz zapisać "ręcznie". Np.: po dodawaniu ADD (patrz uwaga kol. BlueDraco) wykonujesz skok warunkowy "skocz jeśli...
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...
Zbuduj najpierw z bramek układ generujący sumę dwóch bitów (modulo 2) oraz resztę modulo 2 z dodawania tych bitów. Następnie zbuduj sumator potrafiący dodawać trzy bity (będzie on zbudowany z dwóch powyższych sumatorów). Sumator dodający dwie liczby n-bitowe składa się z sumatorów najpierw dodających najmłodszy bit tych liczb(jego wynik jest najmłodszym...
Jeżeli te operacje mają na celu np. monofonizację sygnału to robi to się wg następujacego wzoru: M=\frac{X+Y}{2} (****) Dodajemy w zmiennej 16 bitowej ze znakiem a wynik po podzieleniu przez 2 zapisujemy w 8 bitowej ze znakiem. Nie podzielenie wyniku przez dwa powoduje wyprowadzenie wyniku poza zakres 8 bitowy. Obcinanie typu if x>127 then x=127 nie...
Nigdy nie używałem Keila, ale zapewne jak przy każdym normalnym środowisku, do linii poleceń linkera dodajesz -lm
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):...
Chodzi o procesor ST32F103 z rdzeniem Cortex-M3. Wykonuje na przykład dodawanie dwoch liczb wielokrotnej precyzji (n-bitowej i m-bitowej). Liczby zapisane sa w systemie o podstawie 2^32. W assemblerze realizuje tylko czesc operacji na slowach. # IntLongWord ulFastMathAdd (IntWord uxA, IntWord uxB) .global ulFastMathAdd .thumb_func ulFastMathAdd:...
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...
Pisze drugi raz o tym odejmowaniu i coś tam wymyśliłem. Wersja pierwsza: MOV R0,#2 MOV R1,#8 MOV A,R1 CPL A MOV R1,A MOV A,R0 ADD A,R1 CPL A MOV R3,A END Gdy odejmuje np mniejsza - większa daje wynik dobry tylko że dodatni. Co gorsza program całkowicie nie działa gdy odejmujemy większa-mniejsza. PROSZĘ o POMOC!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!...
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...
Wygląda na to, że bit znaku jest dodawany do liczby 12-bitowej i otrzymujesz liczbę 13-bitową zapisaną w kodzie U2: (https://pl.m.wikipedia.org/wiki/Kod_uzu... ) Jedynie temperatura 2.8 st.C nie pasuje do tej układanki. Jest też więcej próbek, więc można będzie zrobić lepszą analizę CRC, ale to pewnie dopiero wieczorem, jeśli...
To jest dość proste do rozwiązania. Załóż, że użyjesz EPROMu. Masz dwie zmienne 4-bitowe, wynik ma składać się z (zapewne) 3 lub 4 znaków. Podłącz do EPROMA: - nogi A0-A1 - wejście do multipleksowania wyświetlacza (do obsługi czterech cyfr) - nogi A2-A5 - wejście argumentu #1 - nogi A6-A9 - wejście argumentu #2 - nogi A10-A11 - wejście typu operacji...
Próbowałem tego magicznego sposobu, jednak nie działa. Słychać same szumy. Rozumiem, że chodzi o sumę bitową? Nie, zwykłe dodawanie stosuje się dla zwykłych liczb. Dla liczb binarnych trzeba użyć operacji sumy logicznej, czyli OR. ... a tak na poważne - nie da się dodać do siebie 2 plików MP3 po prostu dodając bajty. Musisze je najpierw zdekodować...
Używam do pisania w języku VHDL programu Xilinx ISE 9.1i ale bardzo mi on nie leży. Na zajęciach korzystamy z WebPacka, który jakoś bardziej według mnie jest przysfajanly jednak problem jest z legalnością tego więc jadę na wyżej wymienionej darmówce. Może mi ktoś powiedzieć czy idzie to jakoś zoptymalizować i wyłączyć zbędne funkcje żeby nie wciągało...
Witam forumowiczów! Na początek się przedstawię. Jestem Mateusz chodzę do technikum teleinformatycznego i dostałem do zrobienia układ jak w temacie, niestety mam z tym mały problem. Otóż układ ma dodawać dwie liczby cztero-bitowe (do 0 do 15) i wyświetlać je na wyświetlaczach siedmiosegmentowych i tu pojawia się problem. Zrobiłem już tak że układ w...
Witam Jestem studentem I roku informatyki. Potrzebuję wykonać projekt na bramkach logicznych jednego z poniższych układów logicznych. Za wszelką pomoc BARDZO DZIĘKUJĘ! a) uniwersalny 8-bitowy sumator prefiksowy (PPA) dla kodu NB i U2 (dodawanie i odejmowanie) w strukturze Ladnera_Fischera lub Hana-Carsona, b) czterocyfrowy uniwersalny sumator dziesiętny...
Witam, aktualnie na pracowni wałkujemy DSM-51 i jest dla mnie sporo niewiadomych i prosiłbym o wyjaśnienie/pomoc. Do rzeczy, pierwsza sprawa; - sterowanie diodą i brzęczykiem, korzystałem z poniższego kodu: LEDEQUP1.7 BUZZER EQU P1.7 LJMPSTART ORG100H START: LOOP: CPLLED CPLBUZZER MOVA,#10;czekaj czas 10*100ms=1s LCALL DELAY_100MS LJMPLOOP Opis: definicja...
Daj sobie spokuj z dzieleniem liczb 16bitowych w 8 bitowym procesorze, bo jeśli nie chce Ci się zrozumieć tego banalnego algorytmu zamiany na BCD to na pewno nie będzie Ci się chciało przekopać przez algorytm dzielenia liczb dwa razy dłuższych niż procesor ;) Algorytm jest bardzo prosty, przesuwasz w lewo a to co odpada wrzucasz do jednostek, robisz...
Dodawanie to pewnie lepiej zrobić tak: założenie: R1,R3,R7 młodsze, 8-bitowe rejestry liczb 16-bitowych, mov a,R1 add a,R3 mov R7,a mov a,R0 addc a,R2 mov a,R6 Wynikowe przeniesienie jest zawarte w znaczniku C. Jeżeli bardzo chcesz to przenosić do rejestrów to możesz, ale po co? I na koniec głupie pytanie: nie używasz jakiegoś symulatora? Chyba było...
A jak juz napiszesz i przesymulejesz logike mnozarki opisanej powyzej (mnożenie przez dodawanie i przesuniecie)- pare tygodni jak nic ;) . To sproboj napisac, syntezowac (najlepiej czyms innym niz XST z ISE Xilinxa), zaimplementowac mnozenie przy uzyciu "*" wynik <= a*b; Bo cos mam przeczucie ze dla mnozenia liczb 8 bitowych "lepszej" implementacji...
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...
Witam Mam problem jeszcze z jednym ćwiczeniem. Wykorzystując schemat sumatora pełnego dodającego 2 liczby 1 bitowe, zbudować sumator sumujący 2 liczby 3 bitowe Bede wdzięczny za pomoc.Pozdrawiam
wyświetlenie też jest proste. Bierzesz każdy bit, sprawdzasz, jeśli jest utawiony to do wyniku dodajez odpowiednią wage potęgi. Kiedyś to sobie tak wykombinowałem że wartość 16to bitowa wartość do wyswietlenia zajmowała trzy bajty, np 06-55-35
To zależy :) wejście to nie dodaje nic lub dodaje +1 do końcowego wyniku - w związku z czym: pierwszą wartość CarryIN ustalamy samodzielnie - gdy jest to jedyny sumator przypisujemy tam zazwyczaj logiczne zero (zwieramy do masy). Gdy jest to kolejny 4 bitowy sumator jego wejście CarryIN łączymy z poprzednim wyjściem CarryOUT poprzedniego sumatora. Zwróć...
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...
Jeśli chcesz przechowywać dane w postaci bitowej to musisz jakoś je zapamiętać. Jesli przechowujesz dane w postaci zwykłej zmiennej liczbowej np "int" to zadanie się robi trywialne.
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?
Generatory cyfrowe przebiegów arbitralnych (nazwa naukowa) ----------------------------------------... 1. Częstotliwość wyjściowa przebiegu fwy=k*fp/N gdzie N długość jednego okresu w próbkach (zwykle N jest potęgą liczby 2) k - przyrost fazy pomiędzy kolejnymi próbkami (1, 2 , .... , (N/2)-1 fp - częstotliwość...
A jak myślisz na czym oparta jest funkcja Random? Praktycznie wszystko softwarowe ma charakter pseudolosowy. Można kombinować z początkiem (ziarnem), ale wcześniej czy później skończy się na mnożeniu dodawaniu i operacji reszty z dzielenia. Spróbuj ze zbioru 4 miliardów liczb (32 bity) wybrać wszystkie w pseudolosowym porządku bez powtórzeń. Albo żeby...
powiedz prowadzacemu zajecia, ze nauka ahdl to czysta strata czasu; a moze lepiej nic nie mow ... :) /.../wydaje mi się że dobrze/.../ troche bledow jest :) 1. variable A S powinno byc zadeklarowane jako 5 bitowe DFF, a obliczane tak samo jak powyzej: S[] = ( 0, S_ab[] ) + ( ... 4.wyj[]=S[] div B"0100"; ahdl nie pozwoli ci na dzielenie niczego poza...
Zgodnie z opisem: Dodawanie dwóch liczb wykonuje się instrukcją ADD (bez uwzględnienia przeniesienia), która dodaje drugi operand do pierwszego, a wynik umieszcza w tym pierwszym. Możliwe wariancje (r-rejestr, m-adres, s-stała liczba określa rozmiar): r/m8,r8 r/m16,r16 r/m32,r32 r8,r/m8 r16,r/m16 r32,r/m32 AL,s8 AX,s16 EAX,s32 r/m8,s8 r/m16,s16 r/m32,s32...
Dzięki za odpowiedź, stało się to dla mnie jasne. Już widzę, gdzie popełniałem błąd - uważałem, że każdy sumator powinien być o 1 bit większy od poprzedniego, żeby nie doszło do przepełnienia, co jest twierdzeniem niepoprawnym, bo ciągle dodajemy przecież liczbę 32 bitową - jeden ze składników sumy ma stałą liczbę bitów.
Czy ktos wie jak zrealizowac podstawowe funkcje arytmetyczne ( dodawanie ,odejmowanie, dzielenie mnożenie) na liczbach 16- bitowych w procsorze 99c51.
Mam taką funkcję przyjmującą godzinę w postaci stringa i porównującą ją z atualnym czasem: Zakładaj proszę tematy we właściwych działach. Temat przeniosłem.
W jakim kodzie są dodawane liczby - bin czy BCD? I w jakim kodzie ma być wynik bo jeśli w bin to dodając do siebie dwie 11-bitowe liczby potrzebujesz tylko dwóch rejestrów 8 bitowych na reprezentacje wyniku.
Ja robiłem to w asemblerze w następujący sposób: mov B,#0Ah ;wpisujemy 10 do B mul AB ;mnozymy A razy 10 add A,<cyfra> ;dodajemy wczytana cyfre do A I generlanie działa to tak, jak wpisujemy liczbę dziesiętną, czyli wpisujemy cyfrę i przesuwamy o jedną pozycję dziesiętna w lewo (co odpowiada mnożeniu przez 10) i dodajemy następną cyfrę itd. Oczywiście...
Tutaj chodzi o sygnał audio, zwyklą muzykę. Chcę z tych 24 bitów zrobić 16 bitów bo taką mam pamięć SRAM. Potem ten sygnał będzie "domiksowany" do sygnału głównego, 24-bitowego. Skoro nasz sygnał muzyki jako już zedytowany, znormalizowany materiał to faktycznie 16 bitów wystarczy w zupełności bez kompromisu jakościowego. Zauważ zresztą że miksując...
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...
1. Podziel się jak to robisz, chętnie bym wykorzystał QFN ale lutowanie tego wydaje mi się koszmarne. Co do kodu - ten dokument przez ciebie pokazany jest dosyć tendencyjny, nie ma w nim AVR, a przykład z mul to już przegięcie. Jednak nie przekonasz mnie, że kod w sytuacji w której opcode ma 32- bity jest krótszy niż kod, kiedy opcode ma 16-bitów. Byłby...
Witam, mam wielki problem, mam stworzyć układ odejmujący i dodający dwie liczby 8 bitowe w Tinie i nie mam pojęcia jak zacząć w ogóle to robić. Prosiłbym o jakieś wskazówki z jakich komponentów korzystać, jakieś sumatory itp. gdzie co ma być podłączone, jaki wyświetlacz stworzyć do tego? Dzięki wszystkim za pomoc.
funkcja random generuje tzw. liczby pseudolosowe wg wzoru (tzw. generator kongruencyjny) : function Random:real; begin seed:=(A*SEED+B) mod C; Random:=seed; end; Gdzie SEED - wartość początkowa, po włączeniu komputera zwykle inicjowana odczytem zegara sytemowego. A, B, C - duże liczby pierwsze mod - reszta z dzielenia. Okres takiego generatora (po tylu...
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...
Witam, Co do instrukcji dodającej 0 w 7 linijce kodu, należałoby sprawdzić rodzaj zmiennej "Temp_1". Jeżeli jest to zmienna 16-bitowa, to operacja +I ma prawdopodobnie za zadanie zmianę liczby 32-bitowej (powstałej po operacji mnożenia) na liczbę 16-bitową (dlatego dodawane jest 0). Fragment opisu funkcji +I z help'a w Step7: The instruction produces...
"Uwielbiam" czepialskich co to się czepiają dla samego czepiania wcinając się w cudze wypowiedzi do tego nie zrozumiawszy ich do końca - to do anonimowego anonima, którego nie znam z imienia, nazwiska ani loginu, który to chyba uważa, że dzień bez ANONIMOWEGO DONOSU to dzień stracony. A teraz do tematu: Czy w tym zadaniu masz narzucone rozwiązanie...
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...
No! Dzięki! Rzeczywiście nie takie to trudne:) Użyj klasycznego mnożenia liczb wielobajtowych, kilka mnożeń i kilka dodawań. Klasyczne mnożenie liczb wielobajtowych, może dotyczyć liczb np. czterobajtowych? lub więcej? Gdzie o tym mogę poczytać?. Czy w trakcie wykonywania operacji wielobajtowych lepiej używać stosu czy rejestrów i przełączać się między...
Myślę, że koledzy nie do końca wytłumaczyli o co chodzi. Pytający ma dwie zmienne typu uint_8_t, a pomimo tego operacja 100-105 daje poprawny wynik -5. Wynika to z kilku rzeczy. Zapewne funkcja wyświetlająca wartość przyjmuje jako typ argumentu int. Następuje więc promocja typów i rzutowanie typu unsigned na signed, co jednak nie do końca tłumaczy poprawny...
Operacje arytmetyczne i logiczne w procesorze wykonuje jednostka arytmetyczno-logiczna (ALU). Generalnie ma dwa wejścia i jedno wyjście (np 32bitowe dla procesora 32b) i współpracuje z rejestrami procesora o takiej szerokości. Dodatkowo ma wejście i wyjście do przerzutnika przeniesienia, przerzutniki flag (informacja o przepełnieniu w ostatniej operacji)...
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...
Na bramy wcale nie podajesz liczb tylko wartość bitową. Rozkaz MOV P3, #00 wysyła na bramę 8 bitów zerowych. Wyświetlacz LED wyświetli wtedy cyfrę "8" a nie zero. Brama (jakakolwiek) nie jest transkoderem tylko wprost ustawia bity, a te są wszystkie zerami tzn, że wszystkie segmenty wyświetlacza (o ile jest podłączony standardowo) są zapalone a to jest...
http://obrazki.elektroda.pl/1312722900_1... Autorzy projektu postanowili wziąć udział w konkursie „74XX logic competition” (i – nota bene – zajęli pierwsze miejsce), budując wyłącznie z układów logicznych kalkulator. Swoje urządzenie ochrzcili mianem „DIGICALC”. Pracę nad projektem rozpoczęto od symulacji...
echo -ne "\xEF\x02\x01\x01\x03\x00\xAA\x01\x... > /dev/ttyS1 Bo to nie są liczby hex, tylko forma zapisu jest hex, liczba jest binarna. Dlatego dodajesz -e do echo. Swoja drogą rzeczywiście nie ma "\x" w manualu od echo. aron655: przez port wysyłasz znaki, najczęściej 8-bitowe, sposób zapisu może być tylko bitowy.
Wogóle nie działa ten program trzeci wienc nieweim co to ma wspólnego z tym co jest napisane. Ostatni rozkaz byl blednie zapisany ma byc JR NZ,przesuniecie lub JP NZ,adres etykiety. Oczywiscie w wersji ze skokiem wzglednym kompilator musi wyliczyc wartosc przesuniecia jaka ma byc umieszczona w kodzie na podstawie podanej etykiety. L1 i L2 to liczby...
Mnoży się starszy bajt * 256 i dodaje się młodszy !
Witam serdecznie, jak przerobic sumator dodajacy dwie liczby 1-bitowe , na sumator dwoch liczb 2-bitowych , nie pamietam jak sie to robilo :D http://obrazki.elektroda.net/59_12004273... ...chyba przeniesienie c łaczylo sie z kolejnym sumatorem (kopią tego sumatora) w miejscu ci-1 i oprocz wejsc a i b "powstaly" kolejne dwa, tylko jak teraz...
Cześć. Chciałbym zrobić układ do mnożenia dwóch liczb 3-bitowych za pomocą bramek logicznych. Z tego względu że na wyjściu jest więcej jak jedna kombinacja, to nie wiem, jak sobie z tym poradzić za pomocą tablic Karnaugha. Ktoś pomoże i mi poradzi oraz powie, jaki jest algorytm projektowania dla tego zagadnienia? Cześć! Projektowanie układu do mnożenia...
Przetwonnik zlicza napięcia tylko do 2047, pokazując ujemne napięcie nie ma znaku minus i wartość, tylko np 65320. Czyli przetwornik zwraca wyniki w kodzie U2. Tam nie ma znaku minus. Jest za to przesunięcie poziomu. Najprościej mówiąc, zastosowanie takiej funkcji do konwersji: Napiecie = Zmierz1 * 256 Napiecie = Napiecie + Zmierz2 da Ci złe wyniki....
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 zgodzę się, że taki float byłby bez sensu. Załóżmy, że potrzebuję za pomocą floata zapisać i wykonywać np. dodawanie na określonych z góry liczbach ułamkowych (akurat ja potrzebuję tylko liczb:-1/8,-1/4,-1/2,0,1/2,1/4,1/8 ). Mam tablicę 100 takich elementów, więc deklarując float 4-bajtowy taka tablica zajmuje mi 400B zamiast 100B, a to spora różnica....
Innymy słowy - normalizujesz (Sprowadzasz do wspólnej cechy), dodajesz mantysy, zachowujesz cechę :)
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_...
Problem jest banalny:) Dzielisz swoją liczbę przez 10 i masz cyfrę dziesiątek. Reszta z dzielenia przez 10 (czyli %), to cyfra jedności. Dziesiątki przesuwasz o 4 pozycje w prawo (operator <<) i dodajesz bitową sumą do jedności.
Przenosisz do rejestrów x. Mnożenie w tym przypadku również musisz wykonać na rejestrze x. Choć wynik oczywiście w takim przypadku jest w dx:ax, to jednak możesz śmiało starszą część olać, jeśli wcześniej wprowadzi się tylko zabezpieczenie przed przekroczeniem zakresu. Dodawanie tak samo - na rejestrze x (wcześniej dla pewności możesz wyzerować część...
A możesz wytłumaczyć, jak przeszedłeś z 0.18 dec na 00000.0010 bin i dlaczego tak? Bo mam wrażenie, że nie zrozumiałeś pojęcia mantysy i wykładnika. Poza tym dokładna reprezentacja bitowa będzie zależała od przyjętej konwencji zapisu mantysy i wykładnika. 5 bitów mantysy oznacza zazwyczaj (w praktyce) 6 znaczących cyfr binarnych - bo najstarsza musi...
dodawanie liczb odejmowanie liczb bitowych mnożenie bitowych liczb
naprawa uszkodzonego przewodu gazowanie reduktor wzmacniacz skytec kolumna
perfecta versa integra renault df101
Suszarka Miele zatrzymała się na programie końcowym Montaż blaszek antywibracyjnych w Passacie B5 1.9 TDI 90 KM kombi