Co do kompilatora to spróbuj: ftp://ftp.bielsko.evatronix.com.pl/pub/T... (12,2 MB). Nie gwarantuję ale asembler pod PowerPC powinien w tym być.
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...
Ja w tego typu wyświetlanie zaprzęgam któryś licznik przepełniający się 100 do 200 razy na sekundę (w zależności od ilości segmentów) i tam przy każdym przepełnieniu aktywuje kolejny segment wyświetlając na niego daną ze zdefiniowanego wcześniej rejestru. Tak więc po dokonaniu pomiaru aktualizujesz tylko odpowiednie rejestry z których dane są wyświetlane...
(at)A.T. To jak przekazuje sę argumenty znajdziesz w opisie ABI kompilatora. Ma to znaczenie tylko jeśli całą funkcję C napiszesz w asemblerze - to znaczy umieścisz ją w odpowiednim pliku .S i wyeksportujesz za pomocą .global. Natomiast jeśli definiujesz funkcję w C i w jej ciele umieścisz wstawkę to odwołujesz się nie poprzez rejestry lecz nazwy zmiennych/argumentów....
Adres określa para ds:dx. A więc Oba rejestry powinny być ustawione prawidłowo. A zatem [syntax=asm] mov ax,(at)code ; lub seg bufor mov ds,ax mov dx, offset bufor[/syntax]Tak na marginesie ładniej byłoby trzymać zmienne w segmencie danych (.data)
Co do 1) standard zapisu znaków. Masz 8 bitów i pod nimi ukryte sa literki,cyferki, powrot karetki, nastepnej linii itp. 2)Tak CL mniej znaczacy bajt, CH bardziej znaczacy bajt CX 3) procek 8086 ma dwa bloki BIU i EU (BusInterfaceUnit i ExecutUnit) prauja one niezaleznie. EU dekoduje rozkazy wykonuje je, BIU zapewnia komuniacje z otoczeniem, zapelnia...
Pytanie jak zrobić przeszukiwanie kolejnego indeksu po stwierdzeniu, że pierwszy jest nie poprawny? Bez modyfikacji funkcji Lookdown w bibliotece mcs.lib , raczej nie ma możliwości. Jeżeli znasz asembler możesz zmodyfikować funkcje _LOOKDOWNBYTE i _LOOKDOWNINT . Można też wykorzystać instrukcje RESTORE i READ do przeszukania tablicy: [syntax=basic4gl]$regfile...
Witam! LJMP START ORG 100H START: CLR P1.0 SETB P1.1 LOO: LJMP LOO No fajny program szkoda tylko, że to asembler 51 a attiny26 to avr, to zupelnie inne asemblery. w tiny26 nie ma portu 1 jest portb i porta Dodano po 1 Dodatkowo w avr musisz ustawic dla kazdego portu 2 rejestry ddr i port, a jesli chcesz uzywac jako wejscia to czytasz z rejestru pin...
A czego dokładnie oczekujesz? Co jest złego w tym kodzie? Jakieś są błędy?
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...
Jako przykład podam program dla 8051 napisany przeze mnie w asemblerze realizujący funkcje zegara: - obsługa 4 wyświetlaczy 7seg poprzez rejestry szeregowe 74595 - obsługa 5 przycisków przez rejestry 74165 - obsługa przerwania do generowania dźwięku "piknięcia" przy naciskaniu przycisków, czasu lampki i synchronizacji DCF, wszystko na jednym liczniku...
Używanie argumentu "bo taka jest konwencja" nie różni się niczym od stwierdzenia "bo tak". Aby zrozumieć problem, musisz, przede wszystkim zrozumieć, jak działa asembler i czym są wspomniane rejestry (częstym problemem osób programujących wyłącznie w jęz. wysokopoziomowych jest niemożność odróżnienia ich funkcjonalności od zmiennych). Tak więc na początek:...
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...
Tylko, że porównywanie w procesorach się wykonuje przez odejmowanie (patrz dokładny opis tej instrukcji), a to w przypadku porównywania z zerem jak napisałem nic nie zmieni. Pożyczka, czyli ustawienie przeniesienia C=1 występuje gdy wartość odejmowana będzie większa niż zawartość rejestru. Takie podstawy to kolega powinien znać. A BRLO właśnie sprawdza...
Siedzę na tym cały czas i nie mogę wymyślić ani znaleźć odpowiedzi w jaki sposób w tym programie będzie działać linia: mov esi, OFFSET linie + 4. Sprawdzam sobie rejestry w visual studio i wygląda to tak: http://obrazki.elektroda.pl/3068093500_1... Po wykonaniu ostatniej lini w DX dostaję wartość piątej cyfry w tablicy linii czyli 444,...
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...
Jak Waszym zdaniem powinno się robić? Kod danej funkcji w przerwaniu, czy w przerwaniu tylko ustawianie flagi uruchamiającej tą część kodu. Dziękuję za dotychczasowe cenne wskazówki!! To drugie, zasadą jest aby przerwania były szybkie, wtedy sobie najmniej przeszkadzają, oczywiście są wyjątki jak np falownik gdzie w przerwaniu PWM musisz obliczyć nową...
hmmm generalnie to dopiero zaczynam się bawić w uP, ale wg moich informacji wygląda to tak: aby port szregowy spełniał te kryteria należy odpowiedniu ustawić rejestr SCON, czyli potrzebujesz mode 1(Transmisja szeregowa asynchroniczna slów 8-bitowych, przy czym szybkosc ustalana jest programowo) oraz ustawić ren na 0 (wyłączenie nadawania), reszta bitów...
To ma być program wpisujacy do rejestry R0 liczbe 172 gdzies jednosci sa w Rejestrez R1 dziesiatki sa w rejestrze R2 a setki w rejestrze R3 po prostu program zapisuajcy licbze 172
Ja tylko pisze w asm - bascom to g.....o!!! Niewiem jakim cudem stwierdziłes że to bascom ldi, ret <- te jest asembler a te nazwy to poprostu rejestry
czyli po prostu narysowałem 3 rejestry jeden nad drugim, jakie zostały dodane do stosu, do danej chwili.
Witam. Dzieki pomocy tutejszego forum, znalazlem biblioteke procedur matematycznych w asemblerze AVR, jednak zupelnie nie potrafie ich uzyc. Po pierwsze nie wiem co to za asembler - AVRStudio nie przyjmuje np. takich polecen jak: public adres: Musialem wszedzie zlikwidowac slowo 'public' zostawiajac tylko - adres: AVR Studio nie przyjmuje polecen 'dc.b'...
Witam. Dzieki pomocy tutejszego forum, znalazlem biblioteke procedur matematycznych w asemblerze AVR, jednak zupelnie nie potrafie ich uzyc. Po pierwsze nie wiem co to za asembler - AVRStudio nie przyjmuje np. takich polecen jak: public adres: Musialem wszedzie zlikwidowac slowo 'public' zostawiajac tylko - adres: AVR Studio nie przyjmuje polecen 'dc.b'...
zasadniczą różnicą jest to, że przez rejestry jest możliwe adresowanie pośrednie, czyli wartość w rejestrze wskazuje adres danej, są to rozkazy z (at)
No tak ty wiesz jak zachowuje sie C. Ja wiem że z poziomu asemblera panuję na nad wszystkim co robię łącznie z długością kodu. Ale mam takie wrażenie ze jak coś zapisane w asemblerze to mniej więcej wiem ile to w hexa, Przy C to już dużo więcej (śmieci). W Basic to dużo za dużo. Ale się może mylę tak było kiedyś dla aplikacji. Tylko asembler AVR jest...
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
wiem ze to trudne bo trzeba dobrzre znac rejestry kart graficznej nieiwemc zy to nie mozliwe ale napewno trudne chodzi o to aby sygnaly z kartbyly zgodne dla takiej rozdzelczosci
Witam Moim zdaniem asembler pod AVR jest duzo prostszy niz dla 51.Trzeba tylko sie do pau rzeczy np przyzwyczaic do ustawien portow(tutaj poprzez odpowiednie rejestry ustawiasz np czy to musi byc wejscie czy nie,czy podciagane czy nie itp),natomiast praca z 31-rejestrami to czysta przyjemnosc.Nie wiem jak dobrze znasz asm,bo jesli cos wies to tak jak...
Znalazłem, na razie, dwa sposoby: Pierwszy, to używanie w przerwaniu wartości wpisywanej w rejestry Osccal lub Tcnt0 , oczywiście niewłaściwe, ale przydatne ;-) Drugi, to zerowanie w przerwaniu flagi komendą Cli , a potem powrót z przerwania nie komendą Reti , ale skok do poczatku programu gdzie ustawiam parametry przerwań i je odblokowuję. Nie rozumiem...
Problem jest nieco skomplikowany. Pisząc wstawki asemblerowe należy używać - dla liczb w stałych - notacji bascomowej, czyli: mov r0,#&hff mov r1,#&b10101010 mov r2,#123 można także dla liczb szesnastkowych użyć zapisu: mov r3,#h'AA 'dopiero ten apostrof traktuje jako komentarz ; chociaz takze dziala srednik mov r3,#h'0A ;liczba musi być zapisana dwuznakowo...
Witam. Pisze właśnie 48 kanałowy moduł PWM. Procesor to atmega 169. problem Polega na tym że odświeżanie jest trochę za wolne jak na moje oko - nie wiem czy nie przegiąłem z liczbą kanałów obsługiwanych przez jeden procesor. Pierwotnie napisałem program w bascomie - działa ale zdecydowanie za bardzo miga. Metoda chyba najszybsza z możliwych czyli programowy...
Czym się różni artysta od rzemieślnika? W C pisze się programy, aby zarobić na życie, jak najszybciej, aby klient tylko zaakceptował. W asemblerze raczej trudno w tych czasach zarobić na życie, wszyscy chcą tanio a jakość ich mniej interesuje. p.s. Można napisać program kalkulatora w ASM, tylko po co? Co ma jakość produktu końcowego do użytego języka?...
To bardzo slabo szukales. Taki temat pojawia sie co kilka dni. Srodowisko uruchomieniowe dla AVR-ow za darmo dostepne jest na strone producenta czyli Atmela. Nazywa sie AVR Studio i zawiera kompilator asemblera, symulator. Co do roznic to oczywiscie sa znaczace. AVR to inna architektura wiec inaczej sie robi pewne rzeczy. Do dyspozycji jest 32 rejestry...
No to polecam prosty do samodzielnego wykonania programator i program go obsługujący. Jak znasz asembler na Intelu, to i AVRasm nie powinien sprawić tobie problemu, zasady programowania są identyczne, tylko procesorek ma 32 rejestry tego typu co np. al w Intelu. Są tutaj ludzie, co znają go od podszewki... ;) Lista rozkazów jest dostępna w każdym pdf-ku...
AVR to procesor RISC, czyli o zredukowanej liście rozkazów, za to ma 32 rejestry operacyjne. Rejestry od r0-r15 nie mogą służyć w trybie natychmiastowym. Generalnie to nikt tutaj nie ma ochoty powielać wszystkiego, co już zostało napisane setki razy, w tym w dokumentacji na http://www.atmel.com/dyn/products/datash... Lista rozkazów...
Witam, Widzę, że to architektura '51 - w takim razie złe forum. Rejestry A i B są 8-bitowe, więc jak chcesz tam "zmieścić" 12 bitów? Musisz zapisać 8 bitów w jednym rejestrze, a kolejne 4 w innym. Mnożenie '51 też ma tylko 8x8 bitów, więc musisz też to robic "po kawałku". O konwersję na ciąg cyfr dziesiętnych zapytaj, jak mnożenie Ci będzie już działać...
witam Zaczynam z atmega128 i na wstępie mam problem z uart avrstudio i asembler problem mam mianowicie z dostępem a raczej z wpisem do rejestrów UBRRH UCSRC z tego do czego doszedłem po paru godzinach to to ze avrstudio pokazuje mi te rejestry jako NA . Dodam ze fusebit jest wyłaczony M103 może ktoś mógł by mi to jakoś objaśnić bo nie czaje jak się...
To jest syndrom '51. Tu chyba masz rację ja zaczynałem od 8051 gdzie wpajano nam Asemblera minus taki że trzeba było pojąć całą dokumentację procesora wszystkie rejestry itp. Powiedział bym że Asembler jest naprawdę prosty jednak jego zastosowanie i wykorzystanie napisanie czegoś sensownego to wyzwanie:) jak tylko przestał być obowiązkowy o nim zapomniałem....
Witam wszystkich :-) Moje pytanie jest trochę retro , ale zadam je : "Czy jest jeszcze produkowany i dostępny w handlu procesor Z80" i w jakiej cenie ?? . A może ma ktoś opis do tego procesora ( instrukcje , rejestry itp. ) ?? Jestem też bardzo ciekawy czy jest też rozwijane oprogramowanie dla tego procesora ( asembler , emulator itp. ) , lub czy instnieje...
...co prawda pop i push nie dziala ... Instrukcje push i pop muszą działać, bo one głównie do tego służą. Trzeba tylko pamiętać, żeby, po odłożeniu na stos używanych w obsłudze przerwania rejestrów instrukcją push, przywracać je przed zakończeniem (tejże obsługi) instrukcją pop dokładnie w odwrotnej kolejności. Standardowo wygląda to tak: ... dziala...
51 to 51 i koniec :) Asembler jest taki sam (tzn. instrukcje dla procesora) Trzeba tylko uważać na to żeby wykorzystywać tylko te rejestry i adresowalny obszar pamięci jaki jest dostępny w danym typie uP. W AT89C2051 jest 2KB pamięci programu więc 16-bitowe rozkazy skoków tracą sens :), 128bajtów RAM powoduje że zapis lub odczyt z pamięci IDATA (np:mov...
O ile pamiętam, to avr mają specjalne rozkazy ustawiania i kasowania bitów. Starsze kompilatory wymagały stosowania odpowiednich funkcji/makr, nowsze rozumieją zapis |= n jako ustawienie bitu i wstawiaja odpowiednia instrukcje. Zastosowanie dwóch albo więcej instrukcji logicznych zamiast pojedynczej może powodować problemy z przerwaniami - a często...
Witam! Modyfikować i pobierać zawartości wszystkich rejestrów segmentowych można normalnie, instrukcjami MOV, PUSH/POP itd. np: MOV AX,DS (rejestr segmentowy danych do rejestru AX), PUSH SI/POP AX (do AX ładujesz zawartość rejestru segmentowego SI) Co do rejestru segmentowego CS (rejestr segmentowy rozkazów) to oprócz powyższych instrukcji, można ich...
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...
AVR studio (asembler) to nie Bascom... tu nie ma czegoś takiego jak komendy do obsługi sprzętowych liczników, musisz używać rozkazów uP i konfigurować odpowiednie rejestry i przede wszystkim odpowiednio używać przerwań, bo one są chyba najważniejszym elementem, którego używa się przy pracy z licznikami. Musisz wziąć notkę katalogową tego atmelka i przejrzeć,...
W BASCOMie możesz używać wszystkich rejestrów od R16 do R25 bo BASCOM nic w nich nie trzyma (od R0 do R12 w sumie też ale na nich nie działa rozkaz ANDI). Pozostałe to nie wiadomo. Czasami jakiś wskaźnik może się tam znaleźć więc trzeba uważać.
- brak możliwości bezpośredniego dodania stałej do rejestru A nieprawda. Można odjąć stałą. Można odjąć wartość ujemną... Dodatkowo, organizacja pamięci programu w słowa... bllee, komplikuje to trochę odczyt danych z pamięci programu... w 51 jest 16 bitowy DPTR i jest pięknie, a tu... A tu masz aż trzy rejestry których możesz użyć jako szesnastobitowych...
W pliku "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m8def.inc" jest : .equRAMEND= 0x045f Tak więc (po reset wszystkie rejestry I/O zostają wyzerowane, więc SP=0x000) : ldi r16, low(RAMEND) out SPL, r16 ^ SP=0x005F ldi r16, high(RAMEND) out SPL, r16 ^ SP=0x0004 ldi r16, high(RAMEND) out SPH, r16 ^ SP=0x045F i wszystko...
Procesor będzie się resetował jeśli ustawisz błędną nazwę dla obsługi przerwania lub o niej zapomnisz. Małe wyjaśnienie tylko dodam - to nie będzie reset równy pinowi RESET, czy włączeniu zasilania, watchdog, itp., a jedynie skok do początku programu. Dlatego rejestry zostaną tak ustawione jak były. Warto to prześledzić na prostym programie: [syntax=c]#include...
tak jak poprzednio: liczba to pointer do stringu który chcesz zmienić na int %include "asm.mac" global ToDec SUB ToDec, liczba, podstawa %define wynik ebx mov edi,dekoder mov esi,liczba xor wynik,wynik or ecx,-1 .go xor eax,eax lodsb call instr, edi, eax and al,al jz .quit dec eax push eax mov eax,wynik mul dword podstawa pop ebx add eax,ebx...
rejestry atmega8 atmega128 rejestry mcp23017 rejestry
monitor czarny biały zamknięcie instalacji otwartej zawieszenie przód citroen
ebl21 wzmacniacz liczników przedpłatowy
Schemat elektryczny telewizora JVC LT-40TW51J Schemat serwisowy telewizora JVC LT-40DG51J