9(system dziesiętny)=1001(system binarny) 18(system dziesiętny)=10010(system binarny)
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...
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...
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
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,...
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...
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...
nie, chodzi mi o 4 bitowe liczby
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...
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.
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?
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...
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...
Zobacz na http://www.avrbeginners.net AVR Assembler->Math->Multiple byte maths. Są tam co prawda krótkie, ale dobrze opisane przykłady operacji na liczbach 2 i nawet 4 bajtowych: dodawanie, odejmowanie, porównania itp. Pozdrawiam
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.
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.
Witam, może tak: metodą pisemną (pod kreską) dodajesz ostrożnie słowo do słowa i powtarzasz (trzy razy), aż liczba będzie gotowa. Pozdrawiam.
http://zto.ita.pwr.wroc.pl/~luban/uklady...
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
Czy ktos wie jak zrealizowac podstawowe funkcje arytmetyczne ( dodawanie ,odejmowanie, dzielenie mnożenie) na liczbach 16- bitowych w procsorze 99c51.
poczytaj o przesunięciu bitowym... zamiast wpisywać do tablicy możesz zadeklarować jakiegoś integera przesuwać o 1 bit i dodawać kolejne odczytane bity, w ten sposób będziesz miał liczbę całkowitą reprezentującą odebrany kod a zamiast wielu if możesz użyć case trochę to uprości.
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...
Mnoży się starszy bajt * 256 i dodaje się młodszy !
Mam wrażenie, że PORTB ^= (255)|(170); i PORTD ^= (255)|(170); działają tak samo, jakbyś użył PORTB ^= 255; PORTD ^= 255; - kompilator i tak zrobi to samo. To powinno dać równo 50%, zmiana sposobu odmierzania 128 sekund może co najwyżej pomóc ustawić równo 128 s, a nie np. coś w stylu 128 000 032 us. Dla 50% istotne jest, że _te same_ instrukcje odmierzają...
Poza tym pobieżnie przejżałem DS ATTiny i nie widzę instrukcji analogicznej do DIV w 8051?? Jak w nim dzielić liczby?? A czy znalazłeś MUL? ;) Do takich obliczeń niestety trzeba pisać własne funkcje. Można mnożyć i dzielić poprzez wielokrotne dodawanie lub odejmowanie danej liczby, ale to jest oczywiście dosyć mało optymalna metoda. Oczywiście mnożenie...
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...
Innymy słowy - normalizujesz (Sprowadzasz do wspólnej cechy), dodajesz mantysy, zachowujesz cechę :)
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...
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...
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.
Witam wszystkich. Mam małą prośbę mam do zrobienia układzik mnożący liczby 8 bitowe bez znaku (mnożenie przez dodawanie i przesuniecie). nie wiem zbytnio od czego mam zacząć. prosiłbym o pomoc. z góry dzięki dla wszystkich którzy pomogą.
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....
A czy umiesz mnożyć pisemnie - tak w kolumnach? To teraz wyobraź sobie że robisz to w układzie dwójkowym, gdzie są tylko dwie cyfry - 0 i 1. Mnożenie przez 0 daje 0, a przez 1 daje wynik równy drugiemu mnożnikowi. Bierzesz 4 bitową liczbę, mnożysz niezależnie przez oba bity tej drugiej liczby. Wynik mnożenia przez starszy bit przesuwać o 1 bit w lewo...
zerujesz zmienną przepisujesz pierwszą liczbę bez przesunięcia dodajesz binarnie (or) drugą z przesunięciem 16 itd...
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...
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?
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...
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...
dla ZbeeGin: chce zrobic dodawanie liczb 16-bitowych ze znakiem w kodzie BCD.
robisz to mniejwiecej tak: signed char tab1[256]; signed char tab2[256]; int temp; for (i=0;i<255;i++) { temp=(int)tab1[i]+(i... if (temp>127) temp=127; if (temp<-128) temp=-128; tab1[i]=(signed char)temp; } kod ten dziala nastepujaco:...
Napisz jaką potrzebujesz dokładność, jeśli niewielką to najlepiej użyć gotowej tablicy. Jeśli dużej to trzeba rozłożyć funkcję pierwiatkowania np. na szereg Taylora i wtedy obliczać kolejne przybliżenia, ale to wymaga napisania procedur operacji zmiennoprzecinkowych (głownie mnożenie i dodawanie zmiennoprzecinkowe).
Jeżeli chodzi ci o to aby wpisując 5+0+1+2+3 mieć liczbę 50123, to można to zrealizować bardzo prosto. w pętli głównej dajesz coś takiego: tmp=get_key();//zakładam że 0 jest kiedy nic nie wciśnięte if(tmp>0) { liczba*=10;//jeżeli podstawa = 10 liczba+=tmp; } zmienna liczba musi być przynajmniej 16 previous_tmp=tmp; tmp=get_key();//zakładam...
Oj to będzie gorzej. Jak to pisałem to algorytm był z jakiejś książki a jak zadziałało to przeszła biblioteka do archiwum jako sprawdzona i do tego już nie muszę wracać. Z tego co tam widzę to polega to na dodawaniu liczby 0x03 w odpowiednich momentach. Przy odwrotnej konwersji dodaje się chyba 0x05
musisz zaemulować te kolejne 8 bitów np tak: R0 = R2 + R3; R1 = CF Liczbę wtedy czytasz jako R1 R0 Nigdy z wyniku dodawania nie otrzymasz więcej, niż 1 na pozycji o 1 starszej, dlatego do tego celu nadaje się znakomicie CF.
Witam, mam problem z zadaniem o treści: Zaprojektuj układ iteracyjny(kombinacyjny) zwiększający 4-bitową binarną liczbę naturalną o 6. Zupełnie nie rozumiem tych układów. Na obecną chwilę posiadam rozpisaną tabelę, w której widać jak wygląda liczba na wejsciu oraz po dodaniu 6 (np. 0000 -> 00110). Myślałem, aby wykorzystać sumator 4-bitowy i jakoś go...
Jeśli transmisja buforTx do PC idzie bez problemu to najłatwiej do tego ciągu "wrzucić" dane w postaci szesnastkowej. Z postu to nie wynika, ale domyślam się, że dla każdej zmiennej X, Y i Z są dane 16 bitowe - wyjdą po 4 cyfry dla każdej zmiennej.Sposobów istnieje wiele, przykładowy 1. wyłuskać cyfrę ze zmiennej 16 bitowej 2. przekształcić ją z zakresu...
Ad1. Co do dodawania 128. Wystawiasz na port 8-bitową liczbę, ale najstarszy bit na tym porcie pracuje jako wejście (ADC). Nie ma więc tam diody, a nawet jeśli jest, to nigdy się nie zaświeci. Ad4. Dlatego #include<avr/io.h> #include<util/delay.h> #include<avr/interrupt.h> volatile char razem1, razem2; volatile char osobno1, osobno2;...
No to zrób akumulator (sumator+rejestr) 32 bitowy. Na wejściu daj rejestr przesuwający 32 bitowy. Wpisujesz do niego liczbę A, a potem zależnie od kolejnych bitów liczby B dodajesz przesuniętą w lewo liczbę A do wyniku.
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.
On ma 2 wyjścia oznaczone 2^(n+1)... i może dodawać 9 wejść. Jeśli podajesz 0 na "carry inputs", to na prawym 2^(n+1) jest 0, i wynik to: 2^(n+2) : lewy 2^(n+1) : 2^n. I wciąż nie znalazłeś? 275 - Wallace tree slice. Sumuje bity z 7-miu wejść, daje liczbę 3-bitową 0-7. Wykazałeś się skrajnym lenistwem. To w końcu może dodawać 9 wejść, czy sumuje bity...
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...
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...
A konkretnie to co z tego jest niezrozumiałe (po zajrzeniu do opisu instrukcji 51)? Może ujmę to tak : Chciałem opisać każdą linijkę co oznacza , jestem serem z assemblera dlatego nawet jeśli przeczytam definicje funkcji np add - ADD A, #dana · do akumulatora dodawany jest argument stały (8-bitowa liczba) to Jakbym dostał pytanie co się dzieje...
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...
Witam szanownych kolegów! Czy ktoś mógłby mi pomóc rozszyfrować kod mikroasemblera? Wykładowcy mają gdzieś skąd tą wiedzę znajdę a mi zależy na zrozumieniu tego kodu: equ liczba_1_L : R0 equ liczba_1_H : R1 equ liczba_2_L : R2 equ liczba_2_H : R3 equ licznik : R4 accept liczba_1_L :ABCDh accept liczba_1_H :1234h accept liczba_2_L...
Nic, po prostu dodawaj. Zakładając ośmio bitową średnią ze znakiem, zakresem jest -128 do +127 Liczba zero prezentuje się jako 00000000, jedynka to 00000001, -1 to 11111111, -2 to 11111110 Dodając -1 do liczby 0 wychodzi binarnie 11111111. Sprawdzając najstarszy bit - jeśli jest ustawiony - to oznacza że liczba jest ujemna, a żeby obliczyć jej bezwzględną...
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...
W moim przypadku (ten EKG), ponieważ ten TMS miał tylko arytmetykę stałoprzecinkową, stosowana była taka arytmetyka mieszana - FFT było liczone stałoprzecinkowo (dokładnie to zaprzecinkowo - liczby traktowane jako (-1, 1)), natomiast w przypadku wystąpienia przepełnienia (tylko podczas dodawania) wywoływana była prosta funkcja dzielącą każdą liczbę...
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.
Przesuwa sie w prawo bo na ostatnim miejscu nic już sie nie zmieni i dodaje sie wprost wartość jak sie okręci rejestrem określona ilość razy to i tak wyjdzie dokładnie to co ma wyjść może to troszkę bez logiki ale działa jak powinno. A wynika to z tego że rejestr z wynikiem jest 16 bitowy składa sie z 2 rejestrów. Jak kolega by chciał przesunąć liczbę...
musisz przejść na liczby zapisane w systemie dziesiętnym, gdzie każdą cyfrę masz zapisaną w oddzielnym rejestrze jeżeli każdą cyfrę masz zapisaną w rejestrach to trzeba dodać 30h i masz kod ASCII do wyświetlenia na lcd zobacz in acc2,adcl ; odczytanie wartosci z przetwornika AC ; ADLAR = 1 > wazny tylko adch clr d100 ; podstawa setek w dec ldi acc,0x64...
Odejmowanie to tak naprawdę dodawanie liczby przeciwnej. Dodawanie już masz, więc potrzebujesz wyznaczyć liczbę przeciwną do liczby odejmowanej. Tutaj masz dobry opis: http://www.i-lo.tarnow.pl/edu/inf/alg/nu... . Następnie musisz dobudować blok, który będzie reagował na znak działania i w razie potrzeby wyznaczał liczbę przeciwną do drugiego...
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...
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:...
Sorki nie doczytałem, że zmienna jest 8 bitowa... :) Ale gafa :) W razie czego to jest sposobik na liczby z dowolnego zakresu gdzie każda cyfra jest w oddzielnej komórce tablicy:)
Jaki wynik? Jaki przedział? Czy można po polsku? Jaki jest sens dodawania do liczby całkowitej innej liczby z częścią ułamkową, gdy wynik ma być całkowity?
Dodajesz i odejmujesz 8bitowe kawałki oddzielnie i jeśli nastąpi przeniesienie w młodszym kawałku to dodajesz/odejmujesz jeden do starszego
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)
Rejestrów zawsze brakowało, dopiero w technologii 64 bitowej jest ich garstka więcej. W 32 bitowej masz od 6 do 8 rejestrów do dyspozycji, z tym że ebx, esi, edi, ebp, esp musisz specjalnie traktować. 4 pierwsze musisz zwrócić w postaci nienaruszonej, tzn. ich zawartość przed RET musi być taka jak na początku funkcji. Rejestry esp i ebp można użyć do...
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...
Dawno temu programista ,to był człowiek z wiedzą ,który znał asembler i potrafił myśleć binarnie . Ale że człowiek sobie upraszcza to dziś mamy arma w czajniku który przyspiesza mało optymalny bo uniwersalny kod. Rzeczywiście działa szybciej na 100MHz zegarze w stosunku do starej 0C51 która miała cykl rozkazowy 12 taktów zegara czyli przy zawrotnych...
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...
Zaprojektować układ logiczny dodający dwie n-bitowe liczby NKB Proszę o pomoc bo nie mam pojęcia jak to zrobić....
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...
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
Rozumiem, że układ ma realizować 4 funkcje ? WY=A+B WY=A-B WY=A+1 WY=A-1 ? Są gotowe sumatory 4 bitowe, nie ma co wyważać otwarych drzwi 7483 sumator 4 bitowy 7486 - 4 bramik EXOR - na nich można zrobić negację sterowaną dodatkowo możesz użyć multiplekserów podmieniających liczbę B jedynką a za multiplekserem dodajesz tę negację sterowaną (pamiętaj...
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.
Nie chcę Cię martwić (bo jeżeli Twój kod działa jak powinien to OK), ale to co robisz w pierwszym poście 1 i 3 nie jest sobie tożsame. Kod w #1 jest jak najbardziej prawidłowy. Typ char to dla platformy .NET tak naprawdę 16-to bitowa liczba z zakresu 0...65535 Więc taki kod: znak o kodzie ASCII = 4 . Do tego w zasadzie typ char został stworzony. Jeżeli...
mała poprawka 8 bitowe liczby ze znakiem mają zakres -128..127, binarnie "1000000" równe jest -128 ogólnie zmiana znaku liczby: zamieniamy zera na jedynki i odwrotnie np.: xor 255 i dodajemy jeden, działa to w obie strony
Powinno wystarczyć: .equarg1r26 .equarg1hr27 .equarg2lr30 .equarg2hr31 add_16_16__16: clrarg1h sbrcarg1,7 serarg1h addarg2l,arg1 adcarg2h,arg1h ret Nie testowałem, ale na pierwszy rzut oka jest dobrze. Dodano po 23 Tak na marginesie, liczba wejściowa jest 8-bitowa, stałoprzecinkowa, ze znakiem w formacie U2; liczba wyjściowa jest 16-bitowa w formacie...
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...
Zawsze zamiast dzielić można odejmować np na początek 10000 licząc ile razy to zrobisz zanim wynik będzie ujemny wtedy liczba operacji odejmowania -1 to liczba dziesiątek tysięcy. Dodajesz 10000 żeby wynik był dodatni i zaczynasz odejmować 1000 aż będzie ujemna dodajesz 1000 i odejmujesz 100 itd aż na końcu dodasz 10 a reszta będzie jednostkami . Na...
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...
Użyłbym raczej dzielenia przez 10 i dodawania, jak w tym przykładzie: http://www.8052.com/codelib/bcd.asm (tu gość zamienia 16 bitową liczbę binarną na 4 liczby BCD). Ale własna praca cieszy najbardziej :wink: Pozdrawiam.
Trzeba jeszcze wspomnieć, że start mikroprocesora Z80CPU po załączeniu zasilania, czy też resecie rozpoczyna się czytaniem instrukcji (programu) od adresu 0000h. Wydawać by się mogło, że tam zawsze jest umieszczony program startujący komputera i nie można od tego adresu pisać swoich programów. Nic bardziej mylnego, Cobra1 posiada oszusta adresowego,...
sprawdze te unie:) a co do Twojego pomyslu to jak pozniej z takimi dwoma liczbami 8 bitowymi wykonywac operacje arytmetyczne??? zastanawiam sie nac czyms takim ze mam liczbe 16 bitowa i na niej wykonuje operacje a pozniej wpisuje na porty 2 obszary pamieci po 8 bitow tylko jak to zrobic w C???? Dodano po 1 wtedy cala operacja zajela by 3 takty zegarowe...
Wykorzystując posiadany kod emulatorów DSM-51 oraz CA80 postanowiłem napisać na własne potrzeby eksperymentalny interpreter 8051 i Z80 w jednym. Interpreter jest uproszczony, nie ma kontroli cykli zegarowych, a w przypadku 8051 nie ma emulacji układów licznikowych, transmisji szeregowej itp. Z grubsza ma działać tak, że piszę pewien program w C, kompiluję...
Ale czy to iar skompiluje?, czy można użyć takiej biblioteki czy trzeba napisać po koleji jak wyliczyć np. sinus, Gdy liczba jest 32 bitowa pojawia się problem z działaniami, nie wiem jak sobie z tym poradzić
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...
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...
Prawie dobrze, choć zabrakło ci litery "O". Poza tym, ósmy bit jest bitem parzystości. Możesz to uzupełnić? Przepraszam za moją pomyłkę - rzeczywiście, w bajcie 8-bitowym, ósmy bit jest bitem parzystości, który dodaje jedno zero lub jedynkę i zapewnia, że liczba bitów o wartości "1" w całym bajcie jest zawsze parzysta. Co do charakterystyki...
Co to jest półsumator? Półsumator (half adder) jest jednym z podstawowych elementów cyfrowych układów logicznych, który jest używany do wykonywania binarnych operacji dodawania. Półsumator przyjmuje na wejściu dwie liczby binarne (dwie liczby jednobitowe) i generuje dwa wyniki: sumę (S) i przeniesienie (C - od ang. carry). Półsumator nie uwzględnia...
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ę
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...
Można zrobić DDS o dużej rozdzielczości programowo dla mniejszych częstotliwości, a wyjście powielać np. w pętli PLL *10 czy *100. Robisz zwiększanie liczby 32 bitowej N o liczbę M, a wyjściem jest sygnał z przeniesienia dodawania. Teoretyczne fwy=fzegar * \frac{M}{N} fzegar - częstotliwość zwiększania liczby N o liczbę M. Dla dużych częstotliwości...
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...
A czy to będzie liczba ujemna czy dodatnia to tylko kwestia interpretacji. czuli jest mozliwe ze na "wy" bedzie wartość ujemna?? czy tylko liczba ze znakiem ale dodatnia ? Bo na zdrowy rozsadek to znal liczby ujemnej zostanie usuniaty przed operacja dodawania no nie? wiec ostateczna wartoscia powiniena byc wartosc dodatnia?
witam właśnie zauważyłem ze AVR może mnożyć tylko 8 bit * 8 bit czy znacie jakiś trick żeby mnożyć 16 bit * 8 bit?? od biedy starczyło by mi mnożenie * 10, ale gdyby dało się robić normalne operacje to było by bez kombinowania żeby uprzedzić innych forumowiczów, testy przeprowadzałem na zmiennych 32 i 64 bitowych i zawsze to samo, po prostu sprzętowe...
dodawać liczba sumator bitowy dodawać sumator liczba bitowy
seicento klema jakie playstation polecacie sygna zakodowany
prasa krawędziowa miernik naładowania akumulatorów
Jak wgrać nowe firmware do Telefunken 55? Zmywarka Miele - migające kontrolki i zatrzymanie