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...
Nie wiem dlaczego to chcesz napisać w Asm, ale musisz wiedzieć, że Bascom generuje plik OBJ który mozesz załadować do Atmel Studio i podejrzeć wygenerowany kod Asm. Mój program NoSave Tool także potrafi te dane wyciągać z pliku OBJ tyle że szybciej i przyjemniej - jednym klikiem. Proszę to zdeasemblowany kawałek (nie cały) kodu wraz z opisami która...
Witam wszystkich :) Przyjąłem już strategię działania. Otóż, wersja MikroLuk v2.0 zostanie wypuszczona z moim własnym asemblerem, obsługą dwóch, może trzech programatorów, symulatorem i następującymi możliwościami integracyjnymi: 1. Będzie można zdefiniować obsługę programatora poprzez wywoływanie zewnętrznego oprogramowania, będą również dodane standardowe...
wynik ma byc cyfrą.Przy obliczaniach gdzie nie wychodzi cyfra,np 9+5=14 uwzgledniamy bledny wynik:D co najwyzej komunikat o blednym wyniku ma sie pojawic
pokaz swoje wypociny
a może chodzi o dodawanie w kodzie bcd MOV A,#liczba1 ADD A,#liczba2 DA A; poprawka dziesietna wynik jak wyżej
Sproboj chociaz cos nagryzmolic..jakies mov'y add'y Poki nie zaczniesz nikt nie rozwiarze ci zadania za ciebie. Proszę poprawić pisownię! Robak
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 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:...
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?
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...
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...
mam już zapis do pliku ale nie umiem przekształcic na liczby dziesiętne ,,, Są gotowe procedury służące do tego celu. Spróbuj znaleźć w sieci. Jeśli Ci się to nie uda podam link.
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.
no ja nie wiem...dla mnie asembler trudniej wygląda ;) Dodaje w załączniku ten plik hex i pliki w C
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...
No przecież jest addc. Czyli dodawanie z przeniesieniem.
Spróbuj tak: #include <avr/io.h> .global Dodawanie Dodawanie: add r24,r22 ret Dodano po 1 Zdaje sie że bajtowe parametry zwracane są właśnie w r24.
Ale zawsze masz stałe opóźnienie, czyli wykonanie inkrementowania sekund byłoby stale po prostu przesunięte względem impulsu z zegara. No niekoniecznie ten czas będzie stały. Licznik trzeba odpowiednio sterować, po 60s inkrementować już minuty, potem godziny. Konieczne jest też zerowanie odpowiednich wartości. Zatem ten czas będzie się zmieniał. Jednak...
Witam. Gratuluje pomysłu, fajne urządzenie z b szerokim zastosowaniem. Mam kilka pytań do autora; 1 - jak się zapala pojedynczy piksel? To jest LCD 84pixle*84pixle? tzn jest 7056 wszystkich pixli? Jeżeli tak to jak to jest realizowane? 2 - na laborkach uczę się C++ w Visual studio 2005 i patrząc na Twój program większość była dla mnie zrozumiała, pytanie...
no ok... ale wynik czego ? dodawania czy zliczania to po pierwsze a po drugie jaka '51 ma port P5 ? Czy jak wystąpi przeniesienie to wyświetlić wynik występujący po nim (nie 8 bitów) czy przed nim. od którek komurki pamięci zacząć dodawać ? jak sprecyzujesz pytanko to ci pomogę.
Najwyraźniej skopiowałeś funkcję bez zrozumienia. Twoje "Oblicz_długosc" funkcjonalnie odpowiada strlen() z języka C, czyli liczy długość łańcucha znaków aż do wystąpienia znaku o kodzie równym 0, którym w języku C (i nie tylko) oznacza się koniec łańcucha. W pierwszej tablicy masz napis i asembler sam dodaje znacznik końca o kodzie 0 - dla kompatybilności...
Wystarczy jakiś mały mikrokontroler najlepiej z 2 licznikami. Napisanie programu nawet w asemblerze nie będzie trudne. Dodajesz jeszcze mały wyświetlacz alfanumeryczny i po spr`awie.
Chyba faktycznie zaczne sie uczyc assemblera bo ten mikropascal nie ma wogóle żadnej pomocy Wiesz, powiem Ci, że aby zacząć programować w asemblerze wystarczy znać nazwy najważniejszych rejestrów, wiedzieć za co odpowiadają i mieć pod ręką listę rozkazów dla danego procka. W porównaniu z Micropascal, Microbasic, BASCOM lub nawet z C, w przypadku programowania...
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...
Masz 2 wyjścia. 1. Funkcji obsługi przerwania trzeba ustawić atrybut : __attribute__ ((interrupt ("IRQ"))) który dodaje prolog i epilog funkcji obsługi przerwania. Ale podobno nie zawsze dziala... 2. Piszesz sam prolog i epilog funkcji obsługi przerwania w asemblerze. I zamiast skoku pod AIC skaczesz do etykiety obsługi przerwania która powinna zachowywać...
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...
No tak sie przymierzam żeby odstapic od bibliotek, narazie chce poznac procka i jego mozliwosci przez przyklady ktore mam. Mysle ze na poczatek to jest dobre potem nastepny poziom tajemnej wiedzy - max to chyba asembler gdzie umiem tylko dodawac :)
Po pierwsze to powinieneś najpierw zadbać o TL0 bowiem to on "ucierpi" w pierwszej kolejności pod wpływem impulsów z licznika. Korekty dokonujesz dodając niezerową zdefiniowaną stałą do obecnej wartości młodszego bajtu licznika. TL0=TL0 | 0x30; TH0=0xF8; W asemblerze będzie to: ORL TL0,#30h MOV TH0,#0F8h Można także dokonać dodawania jak zaproponował...
Kod dodający nie ma teraz sensu.
Możliwe że pierwsza "cyfra" nie jest cyfrą tylko oznacza znak.
Jest taka sprawa. Stworzyłem sobie pętlę For Krok Next w Asemblerze [syntax=armasm]For_plus: ADIW R24 ,4 CP R24,R26 CPC R25,R27 BRNE For_plus[/syntax] Można w niej zarówno dodawać, jak i odejmować. W przypadku odejmowania należy ADIW zastąpić SBIW Jednak ma ona kilka wad. Po pierwsze maksymalną liczbą do której doliczy jest 65536. Po drugie krok może...
Tak masz rację, nie orientuję się w asemblerze, ładnych parę lat pisałem jakieś proste programiki na zajęciach i tyle... Potrzebne mi to tylko po to, żeby pokazać, że język drabinkowy może być uproszczeniem takiego programu w asemblerze i szczerze mówiąc tylko po to mi potrzebny ten program... nie chcę się uczyć asemblera, moje zadanie dotyczy czego...
W asemblerze da się to napisać w postaci pętli bez problemu. Spokojnie mógł bym to napisać, tyle że jest dużo szczegółów do obgadania - ja w asemblerze pisze tylko dla WinAVR, nie dla Codevision, więc niewiem jak są przekazywane parametry do funkcji w asemblerze, jak się dodaje wstawki, ile trwa jeden przebieg przy próbkowaniu ciągłym (musiał bym się...
A jak mogę wyświetlić zawartość rejestru w konsoli, żeby nie wyświetlały się krzaki? Musisz zrobić konwersję znaków z rejestru na ASCII. Do znaków 0-9 dodajesz '0' (30h), a do znaków A-F dodajesz '7' (37h).
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...
Najprościej jest tak: do zawartości rejestru w momencie wyświetlania dodać "poprawkę" ASCII - czyli trzeba zajrzeć do tablicy ASCII i tam 0 odpowiada chyba 30hex - czyli do zawartości rejestru dodać trzeba 30hex czy coś takiego, dokładnie nie pamiętam. Ale to załatwia tylko jedną tetradę, żeby mieć liczbę np. dwu cyfrową chyba najłatwiej jest liczyć...
To jest kwestia podstaw znajomości systemów operacyjnych i dostępu do systemu plików na dysku. Kiedyś to była podstawa wiedzieć. Znak "\" czy "/" to dla OS tylko inne znaki ASCI - jądro systemu musi interpretować co ma z tym zrobić. W zamierzchłych czasach, kiedy DOS 6.22 był nowością było coś takiego jak pojecie programu rezydentnego. Złośliwcy dodawali...
Ja w takim przypadku dodaję moduł w asemblerze. #include <avr/io.h> #include <avr/interrupt.h> ; przepełnienie timera0 - nic (wybudzanie) .global SIG_OVERFLOW0 SIG_OVERFLOW0: ; tu można wstawić kod reti Szablonowo wygląda to tak mniej więcej tak.
Adresy urządzeń mi nie pomogą. Dla jasności, nie znam asemblera, miałem dopiero jedną lekcję z niego.
W r6 jest T0TC czyli licznik timera. Jest on zwiększany co 40 cykli (T0PC - timer prescaler). Jeśli chodzi o samo wejście do przerwania, to czasu wystarczy - pierwsze spróbkowane bity ewidentnie odpowiadają bajtowi synchronizacji bez 2, 3 pierwszych bitów, ale to bez znaczenia, ważne jest wyłapanie początku pierwszego bajtu danych (PID). Spróbuję to...
Rzeczywiście da się. Dodajemy trzy linijki a kod w asemblerze staje się krótszy . Czy to nie jest genialne ? Faktycznie jeśli powodem dyskusji stają się "przyzwyczajenia", to warto wrócić do tematu.
dziękować :) ale asemblera nie znam. wiem że dwa razy jest zero dodawane. ale nie powinno to powodować nie wyświetlania się znaku. dzieki za wersje ze wskaźnikami. też taką miałem pierwotnie. sprawdze jeszcze raz na tej Twojej.
Kiedy już widzisz okno Dissasembly jesteś w domu. Po prostu widzisz jak to kompilator obsługuje, które rejestry i jakimi instrukcjami....Każda instrukcja języka wyższego poziomu jest tłumaczona na ASM a tak naprawdę to jest opisem poprzedzajacym to co na podstawie tej instrukcji wygenerował kompilator. Przedstawiłeś drogę maksymalnie na około. Po prostu...
dodaje dwie liczby dwucyfrowe do 372 to jest pewne na pewno to robi poprawdzie to pomocy
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...
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...
nie wiem-zainstalowałem tego Codevision ale z tego co wyczytałem to tam poruszać się tylko można w C a dla mnie to czarna magia. Próbowałem skopiować kilka programów w C na ATM16 i dodawałem tam komendy zwiazane z funkcjami ale podglądu do asemblera nigdzie tam nie widzę. Chyba dalej bedę siedział nad jak najprostszym liczeniem moze z przybliżeniem...
Czy ktos mi pomoze zdobyć jakieś infornacje związane z prostymi operacjami arytmetycznymi zmiennoprzecinkowymi (dodawanie, odejmowanie, mnozenie?. dzielenie?) na MCS-51. Będe wdzięczny za jakis programik (w asemblerze) na ten temat. Dzięki.
dodawać liczba asembler dodawać kolumna dodawać załącznik
oporność głośnik zalewa elektroniki whirlpool piekarnik błąd
pompa ciepła vaillant atmega8 programator
Brak jazdy w górę w napędzie bramy Hörmann A445 Konieczność trzymania przycisku przy otwieraniu bramy Hormann A445