a o co chodzi z tym akumlatorem co to jest Zabierasz się za assembler i nie wiesz co to jest akumulator? https://pl.wikipedia.org/wiki/Akumulator... http://www.ire.pw.edu.pl/~kderzakowski/t... http://www.fizyka.umk.pl/~rkf.chaberski/... Najpierw trzeba poznać procesor, a dopiero później brać się za programowanie....
Adres definiujesz właśnie tak jak pokazałeś - dyrektywą org. Symbol INT0addr to tylko symbol, któremu przypisana jest jakaś wartość. W asemblerze nie ma typów, więc wszystko zależy od programisty. Zdefiniujesz, że INT0addr ma np. 64, to .org INT0addr spowoduje, że następna instrukcja trafi pod adres 64. Co do języka - rozumiem, narzut to dobry powód...
Procedura zerowania RAM: [syntax=asm] MOVR0,#8 MOVR1,#247 ZEROWANIE: MOV(at)R0,#0 INCR0 DJNZR1,ZEROWANIE [/syntax] Zmień sobie wartość którą wypełniasz :-) Tylko uwaga na obszary. Zauważ że "oszczędzam" tylko pierwszy bank rejestrów bo tam są umieszczone R0 i R1, które używam do czyszczenia RAM. A instrukcja MOV A,(at)A+DPTR odczytuje do akumulatora...
Super, że napisałeś o jaki procesor chodzi... Sądząc z instrukcji o '51. mov to instrukcja przeniesieania wartości z/do pamięci wewnętrnej/rejestrów uC, movx to instrukcja dostępu do zewnętrznej pamięci danych (fizycznie inny układ scalony niż uC), DPTR to 16 bitowy rejestr używany generalnie przy adresowaniu komórek pamięci zewnętrznej, choć można...
brne Flaga_Z_0 Zdaje się, że ta instrukcja jest zbędna. [syntax=avrasm]LDIR17, &B01010101 MOVR1, R17 RCALLSprawdz_bit ;------------------------------------- Sprawdz_bit: ldiR16, &B10000000 Sprawdz_bit_x: movR2, R1 andR2, R16 breqFlaga_Z_1 ;Jeśli bit w bajcie = 1 to zrób coś rjmppomin1 Flaga_z_1: ;Jeśli bit w bajcie = 0 to zrób coś Pomin1: lsrR16 brne...
1. .cseg - CODE SEGMENT - użycie pamięci programu (flash) org - wymuś kompilację od danego adresu 2. Stos należy najpierw ustawić na koniec pamięci RAM (bo jest używany przy skokach do podprocedur, przerwań, powrotach z nich(, wynika to z tego, że z reguły na jej początku przechowywane są dane, a rdzeń procesora, czy ATmega128, czy ATtiny2313 jest podobnie...
tablicę z danymi umieść na samym końcu za programem: [syntax=asm].include "tn13def.inc" .cseg .org0x00 rjmpstart .org 0x0A start: cli ; blokada przerwań ldi r16,low(RAMEND) ; stos na koniec RAM out SPL,r16 ldi r16,0b00000111 ;konfiguruje porty B pin0-pin2 na wyjscie out ddrb,r16 ps0:ldiZL,low(Ledy<<1) ;adres tabeli w pamięci programu ldiZH,high(Ledy<<1)...
(at)sq2bvn Gratulacje za złożenie cobry - no i uruchomienie kardridży. co do Z80 - ja uparcie klepie w assemblerze jesli cokolwiek muszę. Na stronie jest fajne ich oprogramowanie tylko ciekai mnie czy idzie to zmusić do pracy (generowanie kodu /symulacja) bez dołączonego systemu docelowego (ichny nowszy procesor) Mój egzemplarz został wstępnie uruchomiony...
nikt nie zechciał podać Nikt nie ma czasu na pisanie programu w asm (nie podałeś jaki procesor, ale bascom sugeruje jakies atmega). To nie jest tak, jak ci się wydaje ... który byłby dokładnym odpowiednikiem mojego programu To nie tak. Program twój jest tylko algorytmem, na podstawie którego trzeba napisać program w asm. Albo zlecenie konkretne, albo...
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...
assembler nie jest specyficznym rodzajem kompilatora To jest bardzo historyczne spojrzenie na asembler - kiedy to był on tylko tłumaczem zbioru nazw instrukcji, liczb i etykiet (nie wiem czy kolega żył w czasach kiedy asemblery generowały na końcu pliku obiektowego tak zwaną erratę). Współczesny asembler jest złożonym językiem programowania dalece...
Akumulator to tylko nazwa rejestru. Potrafił akumulować wyniki z ALU i był docelowym rejestrem do której zapisywany był wynik operacji. Obecnie wyniki mogą być zapisane do dowolnego rejestru z pewnej grupy rejestrów, więc nadaje się im po prostu nazwy R0..R31. Jeżeli, któryś z nich dodatkowo spełnia jakąś funkcję to nadaje się mu ekstra nazwę. Nazwa...
1) Po prostu zapisujesz daną pod segment stosu o przesunięciu rejestru wskaźnika stosu i przesuwasz tenże. Ściąganie w odwrotną stronę. 2) RETURN - to nie jest przypadkiem polecenie mark? Bo nie kojarzę takiego w ogóle.
czym sie roznia etykiety z kropka przed i te bez kropki? Etykiety z kropką są publiczne a te bez kropek nie są (ale można je uczynić publicznymi dyrektywą PUBLIC).
ARM7TDMI ma architekturę v4T. Zawiera ona ok. 35 instrukcji. Nie jest to żadne szaleństwo. O ile dobrze pamiętam to C64 miał mniej więcej tyle samo ;) Fakt, że nie pisałem niczego w asemblerze dla ARM a trochę softu na nie napisałem. Dowodzi to jednak tego, że nie ma takiej konieczności. Mimo wszystko asembler dla ARM wydaje się być bardzo prosty. Te...
Czytać i zapisywać możesz. Ale jak wygląda mnożenie dwóch 8-bitowych zmiennych? Raczje trzeba najpierw znormalizować wartość w rejestrze. Nie wiem, czy jest w asemblerze instrukcja typu pobierz 8-bitową wartość z rozszerzeniem na 32-bity dla wartości signed lub unsigned. A od kiedy dane RGB są signed? LDRSB, STRSB czyta i zapisuje bajty ze znakiem....
Jezeli chodzi o Bascom to Bog jeden wie ile sie wykonuje jedna "instrukcja". Jezeli chodzi o asembler to istnieje cos takiego jak lista rozkazow. Wymienione sa wszystkie instrukcje, co robia i ile cykli maszynowych procesora zajmuja. Nie podales co to za procesor ale zakladam ze to AVR. Wiec AVR jest procesorem w ktorym 1 cykl kwarcu = 1 cykl maszynowy...
Sądzę, że procesory ARM są bardziej predestynowane do programowania w języku wyższego poziomu ( C ), niż bezpośrednio w asemblerze. Niemniej jednak nie przesadzałbym z ogłaszaniem asemblera ARM jako bardzo skomplikowanego. Przed analizą poszczególnych instrukcji, należy zapoznać się z ogólną strukturą rozkazów tych procesorów. Okaże się, że wszystkie...
Program najlepiej byloby w bascomie... ale jak trzeba to i asembler może być... zawsze można dać wstawkę...
Nie umarł i nie umrze, aczkolwiek może zostać "zdegradowany" do pozycji języka, który jest potrzebny tylko do napisania kompilatora. Stanie się tak, jeżeli pojawi się jezyk wysokiego poziomu, a właściwie to kompilator takiego języka, za pomocą którego będzie można uzyskać kod równie wydajny. Chociaż i tak zawsze pozostanie grupa entuzjastów asm. Znajomość...
Poza tym, że w jednym i drugim instrukcja zajmuje jedną linię i ma format "opkod argument1, argument2", to innych podobieństw jest niewiele - różne architektury, różne zestawy instrukcji, rejestry itd. Pozdrawiam, Dr.Vee
Witam. Asembler to język programowania tzw. niskiego poziomu. W uproszczeniu jedna instrukcja w asemblerze przekłada się na jeden rozkaz wykonywany przez procesor. Daje to najpełniejszy dostęp do możliwości oferowanych przez sprzęt, ale jednocześnie silnie wiąże ten język z konkretnym procesorem. Innymi słowy, każdy procesor (a w zasadzie rodzina) ma...
O kurcze, lata świetlne już nie miałem do czynienia z asemblerem dla 68K. :) I zdążyłem zapomnieć o "zakresach rejestrów"... 68K to jest procesor/rdzeń klasy CISC i niektóre instrukcje mają dość rozbudowaną funkcjonalność. Szukając dokumentacji asemblera, szukaj dla całej rodziny MC68K; tu masz przykłady: [url=https://www.google.com/url?sa=t&rct...
instrukcja TEST jest odpowiednikiem instrukcji AND, przy czym wynik operacji nie jest zapisywany z powrotem do pierwszego argumentu, zostają jedynie ustawione flagi S, Z i P stosownie do wyniku operacji. https://en.wikipedia.org/wiki/TEST_(x86_...
Zrób na przykład tak: jz SKOK ... ... ... SKOK: ljmp DZIEL .. ..
dzieki za szybką reakcje wyglada to mniej wiecej tak, z taka roznica ze ponizszy fragment kodu jest tylko przykladem, bity w projektowanym przeze mnie urzadzeniu maja inna kolejnosć czy instrukcja"for lauf = 1 to 24" spowoduje szeregowe przesuwanie 24 bitow jaką instrukcja, i czy da sie wpisac do rejestrow w ATmega8 24 bity naraz, a pozniej jedna instrukcja...
Witam, dopiero zaczynam przygodę z asemblerem i mam pewien problem z instrukcją skoku warunkowego. Chciałbym aby po naciśnięciu klawisza 1 program przeskoczył do etykiety oraz wypisał mi odpowiedni napis ale coś nie idzie. Oto kawałek kodu: MojStos SEGMENT STACK DB 64 DUP ('Stos!!!') MojStos ENDS MojeDane SEGMENT Napis DB "Fajny ten asembler...
...jak użyłem instrukcji push i pop to avr studnio pluło błędami podobnie jak in czy mov. A w ksiązec "Mikrokontrolery AVR w praktyce ― Wydawnictwo BTC autor Doliński" był przykład własnie z ldi i out i poszło... To co najmniej dziwne, jeżeli nie działa instrukcja in , za to działa instrukcja out . Te instrukcje są komplementarne, robią dokładnie...
Witam, poczatkuje w asm i sprawia mi to troche problemow. Nie wiem w jaki sposob zapisac liczbe 12bitowa w jakiejs zmiennej (akumulatorze). Napisalem nastepujacy kod MOV A, ADCDATAH MOV B, ADCDATAL ANL A, #00001111B ORL A, B Chcialbym uzyskac liczbe 12 bitowa (0F FF), natomiast instrukcja ORL daje 8 bitow. Nastepnie chcialbym pomnozyc ta liczbe przez...
Po co w takim razie ten VHDL ? Istnieją jakieś funkcje tylko do symulacji i nijak się to ma do sprzętu, a przecież to język opisu sprzętu ... Czy oznacza to, że np instrukcja LOOP też jest niesyntezowalna ? Trochę się zawiodłem ... Czy faktycznie VHDL jest taki ważny i tak stosowany na świecie ? Jakoś nie widzę sensu uczenia się tego - więcej da chyba...
Slicznie Ci dziekuje... Napisalem pierwsza instrukcje i dziala... Prosze jeszcze o pomoc... wydawalo to mi sie banalne... ale niestety znowu mi tradycyjnie nie dziala :( Program teraz wyswietla mi odpowiedniki w ASCII elementu tablicy data1 ... Jaka instrukcja "zamienie" to na cyfry??? Probuje dodac 0x30 addl $0x30, %ecx ... Ale to jest zle... Liczbe...
Ale mimo wszystko zastanawia mnie czego unikać aby przysłowiowo nie "zamulić" programu. Moze są ogólne rady. Zakładając, że nie korzystamy z wait czy waitms w pętli głównej to widać, że już jakieś doświadczenie masz w programowaniu, i powoli jak mówią koledzy wyżej dochodzisz - jak każdy zresztą- niestety do kresu możliwości Bascoma. Tzn można z niego...
Sądząc z twojej chęci do myślenia i czytania to pewnie jeszcze trzeba by pójść i zaliczyć za ciebie ten projekt :( :( Algorytm był już podany w tym temacie (dla ułatwienia podam, że był zatytułowany algorytm 2. Rozpisz go sobie w formie jakiej od ciebie wymagają. Inne liczby wpisujesz do R0 przed wywołaniem konwersja. Błagam nie zostawaj serwisantem...
Pisząc poprzedni post byłem przekonany, że utrata informacji przy zwykłym przesuwaniu jest dla Ciebie jasna. Instrukcja DIV AB wykona dzielenie "z resztą". Czyli 5/2=2 reszta 1 -> co oznacza 2 i 1 /2 11/10 = 1 reszta 1 -> 1 i 1 /10 Wszystko zależy do czego zmierzasz :-)
Powinno dać się to zrobić za pomocą definicji i makr, ale już dawno nie korzystałem z asemblera w pełnym wymiarze. Obecnie w momentach krytycznych stosuje tylko wstawki asemblerowe w postaci kilku poleceń lub procedur napisanych w ASM, resztę pisze w C. Jednak [url=http://www.atmel.com/dyn/resources/... dokument powinien Ci...
asembler - to jest C, w dodatku C na AVR, więc zamiast gdybać należy spojrzeć do dokumentacji. W przypadku wywołania przerwania dla którego nie ma procedury obsługi następuje skok pod wektor __bad_interrupt, pod którym to znajduje się instrukcja jmp 0, czyli programowy reset. Także efekt nie będzie do końca taki jak po resecie, bo nie zostaną zainicjalizowane...
• XOR AX, AX zerowanie rejestru AX(dla takich samych wartosci wynikiem xora jest 0) • MOV AL, '6' wpisujesz do AL wartosc kodu ASCII jaka ma 6 czyli 0x36 • ADD AL, '7' dodajesz 0x37(wartosc 7) do AL • AAA ; AX:=0103H nie mam pojecia ;) ale znalazlem cos takiego Instrukcja AAA rozdziela liczbę dwójkową w AX nie większą niż 18...
Dzień dobry! Mam mały problem który pewnie wyda się banalny, jednak już sporo czasu nad tym siedzę: a EQU 080h b EQU 040h c EQU 020h d EQU 001h e EQU 002h f EQU 008h g EQU 004h h EQU 010h MOV.B Table(/*Rx*/),0x90 ;W manualu przykład wygląda mniej więcej tak, nie działa powyższa instrukcja choć już wielu rzeczy próbowałem... ;podejrzewam że to...
I częstotliwość nadawania == częstotliwość taktowania Nie, skompiluj i obejrzyj asembler to sie przekonasz ile trwa pętla, poczytaj ile trwa instrukcja ustawiania portu, ile skok. 20Mhz nie osiągniesz z przełączania portu Atmegi, a nawet gdyby, to jest to długość fali będzie 15m antena też nie będzie mała. Teoretycznie jest sposób żeby wygenerować...
Dziękuję za informacje odnośnie kompilatorów, ale napisałem powyżej - na samym początku chodzi mi o translator, a nie kompilator. Język C jest językiem kompletnym co (nie koniecznie w sposób łatwy) umożliwia realizację dowolnego algorytmu, czyli możliwe jest stworzenie własnego języka programowania, który będzie tłumaczony na język C i później kompilowany...
napięcie odniesienia na poziomie ok. 2,5V przy tym doborze elementów nie ma prawa bytu- mierzone napięcia wykraczały by poza zakres. Być może nie do końca zrozumiałem i zasugerowałem się tym 0.7V diody w tranzystorze-może się wyjasni jak się schemat zobaczy. Wartości tych nie można zmienić bo są zaszyte w program- ja oczywiście mogę bo dysponuje źródłem....
Zakładam, że asembler x86... FAILED i D3DADAPTER_DEFAULT to zapewne makro i jakaś stała (jaka?) Po kolei: 1. g_pD3D to wskaźnik (adres) na strukturę/obiekt (jaką?) 2. do tego wskaźnika dodaj offset pola GetAdapterDisplayModel w w/w strukturze/obiekcie. 3. otrzymasz adres funkcji przyjmującej 2 parametry - drugi parametr to adres obiektu/struktury d3ddm....
Pościągaj sobie artykuły Edw z serii - Asembler - język maszynowy procesora ... Tam znajdziesz opis rozkazów i komend.. :) http://www.edw.com.pl/index.php?module=C... ...
Nie jestem pewien, ale przy -5V nie zobaczysz chyba tego co trzeba (może się mylę). O ile dobrze pamiętam, to ja wykorzystałem ujemne napięcie -12V z zasilacza ATX. Regulację napięcia zrobiłem poprzez dzielnik napięcia wykonany z potencjometra. Programujesz w języku Bascom. Tak naprawdę nie wiem na jakie instrukcje maszynowe są tłumaczone instrukcje...
Zła jest idea, bo kompilator nie wie że lea bx, KOWALSKI mov al, Pracownik ptr [bx].staz Nie odpowiedziałem wcześniej, bo nie dostałem powiadomienia o odpowiedzi. Do rzeczy. Podany przez Ciebie sposób też nie działa. Używam Masm32. Faktycznie nie rozumie takiej konstrukcji jako struktury. Chyba jest jakiś sposób właściwego rzutowania, aby instrukcja...
Szczerze powiedziawszy nie mam pojęcia, Bascom jest dla mnie zbyt skomplikowany wewnętrznie i trzeba by podejrzeć kod wynikowy w asm, aby coś stwierdzić, np. czy te wstawki asemblerowe nie kłócą się z resztą kodu. Asembler dla mnie ma proste i przejrzyste klocki, z którymi można zrobic prawie wszystko, a można jak najbardziej uzywać w nim zmiennych...
kolego manekinen i remzibi przestańcie już proszę narzekać i płakać nad tematem usunięcia postu, jak dzieci. No stało się, może i nie dobrze ale widać, że przez pomyłkę, skoro moderator nie usuwa waszych dalszych wypowiedzi. Które wy widzę trkatujecie jak jakieś tajne konspiracyjne informacje z czasów stanu wojennego. tymaczasem kolega pisze: Dopisze...
kod: $MOD51 ;istotne dla kompilatora asm51 (at)(at)(at)(at)(at) ; jesli p3.4 w stanie L to wejscie -- Dodano po 7 Witam !!! Układ ma mierzyć czas wysterowania tranzystora t1= P3.4 wynik pomiaru do komórki sek , zamiana bin na dec każda cyfra do swojej komórki i na 4543 i na wyświelacz stan niski na porcie p1.0;p1.1;p1.2 jest stanem atywnym dla poszczególnych...
Jestem na O0, breakpointy mam w pierwszych liniach main, program działa tak: Przede wszystkim przejdź do widoku asemblera i tam zobacz jak wygląda wykonywanie programu. Breakpointy też postaw na instrukcjach asemblera, przed main. Czasami informacje o debugowaniu, pomiędzy C a asemblerem się rozjeżdżają, chociaż dla O0 nie powinno mieć to miejsca....
Nie zawsze ilość przekłada się na jakość. A może chodziło o to: IF(SDA==0); vs IF(!SDA); generują inny kod mimo iż działanie jest to samo. Zresztą nie ma chyba co się oszukiwać, nawet proste konstrukcje z pętlami będą na PICu inaczej wyglądać niż na AVR czy 51, jeszcze inaczej na ARMie czy motoroli. To co w jednym mikrokontrolerze jest 1 instrukcją...
instrukcja asembler lista instrukcja asembler diody asembler
scania ciśnienie reduktor spalone tranzystory wzmacniacz zdjąć prawą osłonę
mikrokomputer cobra1 ariva reset
Kody błędów przy uszkodzonej grzałce w pralce Miele Różnice między matrycami VES400UNDS-2D-N11 a N12