Witam, Jestem początkującym programistą, a moja wiedza o programowaniu w asemblerze jest raczej znikoma. Dlatego zwracam się z gorącą prośbą o pomoc w poniższym zadaniu: "Napisz program, który wypisuje parzyste indeksy wprowadzonej tablicy na ekran" Bardzo proszę o pomoc
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)...
Sory, źle napisałem, robię tak: mov tab lea dx, tab Co muszę zmienić w kodzie żeby program działał mi tak jak powinien? Edit: problem rozwiązany.
Mam pytanie jak w asemblerze avr zadeklarowac w segmencie danych tablice slow, o wielkosci np. 5. Można jedynie zarezerwować stały dany obszar pamięci .dseg tBuffer: .byte 0x05 Powyższe rezerwuje 5 bajtów w SRAM pod etykietą tBuffer . Można używać ten obszar w róznych nie kolidujacych ze soba procedurach. A tak mozna się odwołać do 3 bajtu : sts...
W każdej nowej linijce dodaj DB i wtedy nie ma znaczenia ile takich danych umiescisz.
Dokladnie chce wyswietlic te 2 tablice, 2 ciagi, scislej mowiac fraze: "Ala_ma_+Kota." (taka konkatenacja tekstu) Prawde mowiac ciekawa koncepcja tylko nie jest az tak latwo przelac to na kod programu... (z racji ze raczkuje w asemblerze jak niestety widac)
Czesc, Dosyc niedawno zainteresowalem sie uC. Pisze program ktory ma rosnąco pokazywac liczby na wyswietlaczu led. Mam 2 siedmiosegmentowe wyświetlacze. Liczby zawarlem w tablicy. Problem jest w tym ze probuje zrobic osobna tablice dla jednosci a osobną dla dziesiątek. Niestety tak to nie działa. Pomoze ktoś ? Oto problemowy kawałek kodu: ldi ZL, LOW(Liczba_LED*2)...
DB Nie jest rozkazem procesora tylko dyrektywą kompilatora. A DPTR jest to 16 bitowy rejestr w 8051. Więcej szczegułów znajdziesz w dokumentacji 8051
program ten służy do sterowania sterownikiem matrycy diod LED. matryca jest 16 diodowa. wyjścia ze sterowników sterowane są PWMem a ich wartość ustalana jest przez wartość która wprowadzę w 192 bitowym rejestrze czyli za jedno wyjście odpowiada 12 bitowe słowo. W tej chwili mam stworzoną tablicę z 24-oma 8 bitowymi słowami. Żeby ustawić wartość PWM...
Spytam jeszcze jak przekonwertować asemblera 8086 na z80? I jaki jest najlepszy emulator do z80?
Pic Picowi nierówny, tablice można wykonać i operowac nimi na rózne sposoby. Na stronie Microchipa poszukaj Aplication Note "AN716". Tam jest rozdział zarówno o tablicach zorganizowanych przy pomocy rozkazu RETLW (powrót z załadowaniem rejestru)i jak to użyć(dla wszystkich PIC-ów), jak i o operowaniu na tablicach przy użyciu dedykowanych rejestrów (dla...
Witam, mam mały problem z następującym programem. Muszę wyszukać maksymalną wartość w tablicy. Program działa w DOSBox'ie, ale muszę robić coś źle bo nic nie wyświetla (jest jakiś krzak). Jestem totalnym początkującym jeżeli chodzi o asemblera :(. Poniżej zamieszczam napisany kod przeze mnie: dane SEGMENT ;segment danych tekst_1 db ": To jest...
Witam! Mam tablice danych .byte. Chce wyswietlic jakis element (np. pierwszy), tzn. odpowiednik liczby w tablicy ASCII. Dlaczego to nie dziala? (GNU As) ########################################... SYSEXIT = 1 SYSREAD = 3 SYSWRITE = 4 STDOUT = 1 STDIN = 0 EXIT_SUCCESS = 0 .section .data data1: .byte 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,...
Chciałem to zrobić, aby lepiej rozumieć asemblera. A jak się ma asembler do bramek i tablic Karnaugha? Czy chcesz zbudować własny procesor, czy zrozumieć asembler istniejącego procesora. Same operacje w asemblerze nie wymagają znajomości rozbudowanych układów logicznych na poziomie bramek. Wystarczą operacje logiczne i arytmetyczne na liczbach zapisanych...
Witaj, może inta jest wskaźnikiem na początek tablicy? Pozdrawiam!
U mnie kod: .org 0 start: inc r1 rjmp start działa poprawnie (AVR Studio 4, ver 4.12 sp1 build 462). No wiec asemblacja przebiega prawidlowo, lecz podczas debugowania program wyskakuje z obiegu. Tzn. co się dzieje ? Co do eeprom, spróbuj tak: .ESEG eevar1: .DW 0x1234 Po asemblacji wygenerowany zostanie plik nazwa_projektu.eep, wrzucasz go za pomoca...
start: mov dx, al mov ah,9 int 21h Nie rozumiem pytania o konwersje, ale moge podpowiedzieć że podany wyżej kod raczej nie zadziała, bo są w nim 2 błędy, składniowy i logiczny. 1. Nie można skopiować wartości 8 bit do wartości 16bitowej 2. Funkcja 9 int21h przyjmuje w rejestrze DX wskaźnik do tablicy znaków a nie wartość.
Witam, mam problem z dwoma zadaniami na tablicach w asemblerze, mianowicie: 1) ustawić bit zerowy na wartość drugiego bitu każdej liczby w tablicy 2) każda liczbę tablicy pomnożyć przez następna, występująca po niej. mam już "ramy" programu- funkcje zmieniające typ wprowadzanych liczb, pobieranie liczb do tablicy z klawiatury, potrzebuje tylko kilka...
Dobrze by było podac w czym programujesz asembler, C++, bascom??
Tak na marginesie kiedyś był taki standard od 14-31 na polskie znaki co powoduje ze mamy tylko 7 bitów na załą tablicę ASCII
Witaj! Nie musisz pisać deklaracji .DW. Możesz pisać deklaracje .DB. musisz pamiętać że Flash kontrolera to 2 bajty poj jednym adresem. Zapraszam do lektury http://www.atmel.com/dyn/resources/prod_... http://www.atmel.com/dyn/resources/prod_... Nie ważne jakiego kompilatora uzywasz gdyż jest dla danej rodziny kontrolerów...
Z innej beczki - problem kresek można również rozwiązać stosując RAM grafiki w wersji dual-port. https://obrazki.elektroda.pl/2008294700_... IDT7132SA/LA Ten byłby idealny do COBRA1. Jedna strona adresowana z liczników i tylko do odczytu - druga podłączona do szyny Z80. Oczywiście przełączniki adresów można pominąć wówczas. To samo...
Witam! Od paru dni uczę się pisać programy w asemblerze na AVR (dokładnie AtMega16) i mam następujący problem na którego nie potrafię rozwiązać: próbuje stworzyć tablice danych w pamięci SRAM aby odwoływać się do nich instrukcją STS jednak wpisanie danych w następujący sposób nie działa: .dseg bus: .db 0xc2, 0xc6, 0xce, 0xcc natomiast "ręczne wklepywanie...
Wydaje mi się , że do takich porównań lepiej użyć XRL , niż SUBB . Piotrek
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...
Strasznie się zapętliłeś z adresowaniem. MOV A,4 oznacza prześlij do akumulatora zawartość komórki o adresie 4 (czyli to samo co MOV A,R4) natomiast MOV A,#4 oznacza wpisz do akumulatora wartość 4 Proponuję zacząć używać symulatora (np. AVSIM'a) Moja propozycja kodu: MOV R1,#4 ;LICZBA ELEMENTÓW MOV R2,#0 ;ZEROWANIE BUFORA SUMY PETLA: MOV DPTR, #Tablica...
Zapomniałem dodać, że piszę w asemblerze.
Tablica owszem, tylko dlaczego zaraz 160 elementów :?: Proponuję 16 elementów i kod w "międzynarodowym" języku, bo PIC-usiowego asemblera nie znam :| unsigned char tablica[]={0xff,0,1,0xff,2,... //... keycode=( ((tablica[wynik>>4]... | tablica[wynik&0x0f]...
Masz zadeklarowaną tablice(pole 16-bajtowe) TABLICA EQU 50 ;od adresu w RAM-e = 50 I teraz nie piszesz gdzie sumujesz te osiem srodkowych wartosci ale zakładam że np do akumulatora, więc najprościej jest tak: CLR A ;zeruję bo tam będę sumował ADD A,TABLICA+4 ADD A,TABLICA+5 ADD A,TABLICA+6 ADD A,TABLICA+7 ADD A,TABLICA+8 ADD A,TABLICA+9 ADD A,TABLICA+10...
Co to za asembler? Na jaki procesor? Na jaki system operacyjny?
Witaj, _Edycja(at)4 I dokładnie taki sam symbol jest wyeksportowany z dll. Taki ciąg znaków powinieneś podać do funkcji GetProcAddress. Zmian nazw, bzw. usunięcia dekoracji, dokonuje się zazwyczaj za pomocą tekstowego pliku .def, dołączanym do etapu linkowania.
W tym miejscu chodziło mi o eth0. Ten pierwszy wpis (z pierwszej tablicy) skądś się przecież bierze. Przez osmozę tego nie złapał ;)
skynet_2: żeby o działało to musiał byś mieć tablicę zawierającą wszystkie kombinacje wartości PWMów. Czyli 128wartości ^ 48 PWMów = raczej dużo.
wiki to nie Koran drogi kolego fundamentalisto. W chrześcjaństwie tak nazywano scholastyków - nie uznających niczego poza tym co powiedziane i napisane i tylko na podstawie tego dokonywać wymyślania tworów kolejnych - co oczywiście prowadziło do absurdów - np. Czy chimera unosząc się w próżni może tworzyć intencje wtórne - co nieco przypomina naszą...
Wartość wyjściowa jest różnicą pomiędzy wartością z tablicy i zmierzoną z ADC, nie analizowałem dokładnie, ale wygląda jakby to był regulator P ze wzmocnieniem 1 (mało) więc nawet jeśli stabilizuje to bardzo kiepsko. Kod programu (Niestety nie mój a pisany przez kolegę z którym już nie mam kontaktu) To trzeba napisać od nowa, poprawić niesprawdzony...
Hej !! Ja mam podobny problem :/ Robiliśmy na lekcji kilka prostych programów na DSM-51 ale teraz na zaliczenie potrzebował bym coś wiekszego np. kasa fiskalna do autobusu, tablica swietlna obslugujaca mecz koszykówki, jakis stoper.. Dzięki. .
Tablicę wskaźników tworzy sam kompilator/asembler, nie ma potrzeby samemu wyliczać kolejnych ofsetów. W złych miejscach szukasz też optymalizacji. Przede wszystkim informację o szerokości znaków w pikselach (nie bajtach) zamieściłbym tuż przed opisem znaku - jest to logiczne, gdyż dotyczy opisu konkretnego znaku. Ale na optymalizację miejsce umieszczenia...
Masz rację. Moja pomyłka, przepraszam (było rano). Powinno być: nr_bajtu_pamięci_ekranu = (x div 8 )+(y - 1) * 5 Przy edycji musiałem skasować te kilka znaków. Teraz chyba to działa. y to oczywiście numer wiersz dla piksela. Masz rację, że w asemblerze natywnie nie ma tablic dwuwymiarowych, ale bardzo łatwo jest oprogramować taką strukturę pamiętając...
Witam mam taki problem , chce odczytać 100 elementów z tablicy której adres efektywny został zdeklarowany symbolicznie jako TABLICA ( chodzi o asemblera 8086), niestety nie wiem jak sie do tego zabrać, może ktoś mi pomóc? pozdrawiam i dzięki za pomoc
Jak jest dużo flash-a, to można jeszcze przejsć przez tablicę. Jak się ją wyrówna do granicy 256 bajtów, to chyba będzie ciut szybciej, niż ta rozwinięta pętla.
... ; tu kod zatrzymujący licznik mov DPTR,#TABLICA ; iicjujemy wskażnik do tablicy mov A,#0 ;A ma teraz wartosc zero movc A,(at)A+DPTR ; pobieramy starszy bajt, teraz jest w A mov B,A ; zachowujemy go, np. w rejestrze B inc DPTR ; przesuwamy wskażnik do tablicy na nastepny bajt mov A,#0 ; tu trzeba wyzerować A movc A,(at)A+DPTR ; pobieramy nastepny...
Mam jeszcze jedno pytanie, potrzebuje wstawic tablice w asm TAB: DW10000 DW1000 DW100 DW10 DW1 I dostaje tylko " Error 106 : Unknown assembler command [DW 10000] Jesli jest to tablica DB to Ok, a DW nie :? ehh....
To nad czym się zastanawiacie intvect jest przecież wyjaśnione (internal vectors = wektory skoków wewnętrzne) czyli tablica przerwań procesora. Np.: .ext0 DC.W it_ret oznacza że jeżeli wystąpi przerwanie wewnętrznego modułu przerwania zewnetrznego EXT0 (.ext0) to procesor wykona skok do etykiety w programie it_ret lub zapewne jest to zakodowana nazwa...
Sprawa jest prosta: orientowac sie w asemblerze (wiedziec co w trawie piszczy), znac dobrze C - to jest podstawa. A jak ktos lubi moze sie douczyc roznych wynalazkow. Oczywiście że tak. Chociaż odwróciłbym to. Znać dobrze asembler, i orientować się w C. Prosta sprawa c + asembler = zrobimy wszystko. Jednak bascom (wogóle Basic) naprawdę uczy złych...
albo ustawiasz BX na początek tablicy i z każdym przebiegiem zwiększasz o długość pola tablicy, albo używasz rejestrów indeksowych i zapisujesz prawie jak tablicę.
Projekt mam napisany w języku "C". W asemblerze mam kilka funkcji, które nie są mojego autorstwa. Funkcje asemblerowe mam zapisane w pliku z rozszerzeniem .s,który jest dołączony do projektu. Tablice w asemblerze STable i SiTable mógłbym skopiować do dowolnego pliku z rozszerzeniem .c i użyć dyrektywy __attribute__((space(prog), address(0x200))) lecz...
Czyli jeśli w kodzie C inicjuję jedynie wektor powiedzmy ADC_vect, to jedynie w kodzie asemblerowym jedynie .org ADCaddr będzie pozbawione komentarza <__bad_interrupt>. A propos wektorów i tablicy: Czy inicjalizacja tablicy wektorów przerwań jest zależna od typu mikrokontrolera? W literaturze i w poradnikach internetowych widzę, że wszędzie wektory...
Witam! Jak w AVR-GCC zapisać tablice z danymi pod konkretnym adresem w pamięci flash procesora? Będę wymieniał te tablice za pomocą bootloadera w zależności od wersji urządzenia dlatego muszę mieć je zapisane pod odpowiednim adresem. Jest coś takiego jak dyrektywa "ORG" w asemblerze? Pozdrawiam
Pamięć jest zorganizowana w komórki 16-bitowe, objawia się to np tym że wskaźnik programu wskazuje na słowo (2 bajty) a nie na bajt. Wszystkie instrukcje muszą być więc wyrównane do granicy dwóch bajtów. Jakkolwiek z poziomu samego programu pamięć flash jest zorganizowana bajtami, więc spokojnie można w niej umieszczać tablice bajtów bez utraty pamięci....
Teraz kumam o co w tym chodzi. Dziekuje bardzo za pomoc i jeszcze jedno pytanie gdzie znajde taka tablice?
Za kod przepraszam, faktycznie trudno cokolwiek z niego odczytać. Porównałem oba przypadki, znalazłem różnicę ale już poprawiłem (w klastrze nowego folderu jako początek sektora dla wpisu ".." wpisywałem numer sektora katalogu nadrzędnego jako 00000002h- w tym sektorze znajduje się katalog główny, trzeba ten wpis pomniejszyć o 2 niewykorzystywane klastry)....
niestety asembler to dla mnie czarna magia :D próbowałem DAC0H = wzorzec[i][1]; DAC0L = wzorzec[i][0]; ale działało wolniej niż z jednowymiarowej tablicy dac[i] nie musi być tablicą i do tego dążę przyspieszając wzór który podałem na początku... sin_180 to cały okres jeśli zrobisz mi tą pętlę w asm to było by ciekawe :)
Mogę spróbować. Nie jest to priorytetowe, ale i tak, chyba pokuszę się na przepisanie procedury przerwania FIQ z języka C na asembler. Nie obiecuję, że wcześnie wrzucę tu moje wypociny. Procedura ta korzysta z zmiennych globalnych z czego jedna jest tablicą. Najpierw muszę właśnie opanować manipulowanie takimi zmiennymi w asemblerze. PS. A czy jest...
zapomniałem "&" Fakt. Teraz wszystko działa jak należy. Oj ten Atembler (miks słów asembler i Atmel) jest bardzo fikuśny. Grunt, że działa. Temat rozwiązany przez vonar. Dzięki wielkie!
Do moderatora: Link do dodawania obrazkow nie dziala. http://img190.imageshack.us/img190/8615/... Gdyby hotlink nie dzialal: [url=http://img190.imageshack.us/img190/... Mam 3 labela w sumie: numer, tresc, punktacja. Problem jest taki, ze w "tresci programu" napisy na guzikach sa zdefiniowane jako czarne a wyswietlaja sie...
a może jeszcze inaczej a. plik asemblera budujący tablice wektorów przerwań b. kompilacja z opcją -nostartfiles lub tez zmiana skryptu linkera ??? Rozwiązanie o tyle nieelastyczne, że trzeba będzie ręcznie edytować każdy element tablicy wektorów podczas gdy potrzebuję zmodyfikować jedynie wektor INT0, a w stosunku do pozostałych wektorów chciałbym aby...
Kolega z Łodzi to coś słyszał ale nie do końca pamięta. Nie zaśmiecam sobie pamięci tego typu szrotem. Algorytm na poczekaniu wyczytałem z sufitu. Ponieważ jest "bardzo szybki" może być użyteczny przy wszelkiego rodzaju konwersjach liczba/łańcuch zwłaszcza w układach wyświetlania wielkości fizycznych, gdzie w procesie kalibracji możemy wyliczyć i wpisać...
Ja jednak mimo wszystko polecam CRC8 na tablicy... 256 Bajtów to nie jest za dużo dla PIC-a, a działa rewelacyjnie. Znajdziesz info w notach dla 1-wire Dallasa.. //--------------------------- int8 crc; //======================fast crc8 for use with dallas //#org 0x200,0x2ff const int8 BYTE_ARRAY [256] = { 0, 94, 188, 226, 97, 63, 221, 131, 194, 156,...
a z tablica bedzie może nie profesjonalnie ale chociaż bez problemów ;) Tylko że za dobrze nie potrafie budować tablic w asemblerze, ale zaraz o tym poczytam :D Więcej pokory kolego Tarczel2 dla zumka, właśnie z tablicą będzie b. profesjonalnie, poprogramujesz trochę to się dowiesz dlaczego.
Każdy kompilator "pisze program w asemblerze" więc oczywiście jest to możliwe. Nie rozumiem tylko w jakim celu programista miałby się katować asemblerem zamiast pisać w C. AVR to nie 51 czy PIC; kompilator języka wysokiego poziomu generuje dość przyzwoity i wydajny kod, więc po co utrudniać sobie życie?
Na poczatku kazdego programu umieszcza sie tzw Tablice wektorow przerwan. Procesor ma zaszyte na stale pod jaki adres ma skoczyc gdy otrzyma przerwanie. Gdy otrzyma takowe skacze w odpowiednie miejsce tablicy. Po drodze na stosie zachowuje aktualny adres licznika programu zeby wiedzial w ktore miejsce ma wrocic po wykonaniu instrukcji reti informujacej...
Co do problemu to chwilowo nic nie dodam. Zauważyłem jednak że nie zwalniasz zaalokowanej pamięci a w C++ to poważny błąd. Każdy new powinien być w parze z delete, a ponieważa alokujesz tablice powinieneś użyć delete[].
Niby tak, ale chętnie sprawdziłbym przekład na asembler obu wersji. Mamy tutaj 512 taktów zegara na obsługę przerwania. Jak się doliczy wszystkie operacje na stosie, zaindeksowanie tablicy (szybciej byłoby na wskaźnikach), to zapasu wielkiego nie będzie, zwłaszcza gdyby komuś przyszło do głowy skrócić okres PWM np. do 100 i ustawić preskaler timera...
Witam. Napisałem sortowanie bąbelkowe pod Asemblera, lecz coś w ogóle nie sortuje mógłby ktoś z Was spojrzeć na Niego. Oto jego kod. Tablica - to moja tablica elementów do sortowania n - ilość elementów asm { //------------ edi=i, esi=j // i=0; mov edi, 0h pierwsza: //j=i; mov esi, edi; druga: //if(tablica A to jego wygląd w C++ (przerobiony aby było...
w ten sposob zapisana tabela jest wlaczana do kodu. po wykonaniu sie instrukcji mov.b 'wykonywane' sa dane zapisane w tabeli. umiesc jmp $ przed tabela i powinno byc w miare dobrze - to taka poprawka na szybko dane stale (czyli tablica) powinny byc umieszczone w innej sekcji, a nie w sekcji na kod, czyli RSEG CODE. 4\/3!!
Generalnie wszystko źle:) Zacznijmy od tego, że nie chronisz rejestru SREG w przerwaniu. Tutaj w tym przypadku moze to chodzic bo nie uzywasz w programie głownym bo go nie masz, ale masz dwa przerwania. Jedno przerwanie moze przerwac prace drugiego i wtedy klops. Oczywiscie długo może to chodzic bez obiawów ale w koncu sie to wywyróci, a ty nawet możesz...
Eh.. coś widzę że każdy drąży wokół tematu a nie w temacie... Ten problem o ile wystąpi (podobno w niektórych licznikach rowerowych nie występuje ale nie mam zamiaru badać tuzina liczników) mam zamiar zwalczyć (o ile się da) ekranowaniem. Licznik własnej konstrukcji wydaje mi się że mogę za ekranować albo umieścić w metalowej obudowie i wyprowadzić...
program powinien zostać napisany w assemblerze. Nie wiem jakich komend powinnam użyć do napisania filtra. To na studiach - zastanawia mnie ten asembler - po kiego ich tego uczą zamiast rozwiązywania algorytmów. Rozumiem że to są rózne filtry. Napisz w C przetlumacz i ręcznie lekko popraw :)
Nie zrozumiałeś mnie i szkoda że tak radykalnie pochodzisz. Nie chcę przekazywać wskaźników. Nie chcę się nigdzie w programie odwoływać przez wskaźnik. Przyjmijmy, że to w tym wykonaniu niemożliwe i nie wracajmy więcej do tematu, za dużo przeróbek. Jeśli nie wskaźnikami, to jak inaczej zminić adres struktury/tablicy w pamięci? PS: czy przyszedł czas...
Grzebiąc po karcie SD telefonu zauważyłem, że w/w kod to nie zapis pliku MP4 a jest to zwykły zapis sektorów w których znajdują się fragmenty filmu. Wychodzi z tego, że SYMBIAN zapisując film szuka wolnych sektorów a w kilku plikach podaje ich adresy. Pliki te są bardzo podobne do fragmentów tablicy FAT32 (taki format plików mam na karcie). Problem...
Dzięki temu w ogóle wiem co to jest asembler W dzisiejszych czasach nie warto sobie zawracać głowy assemblerem. i trochę bardziej rozumiem architekturę tych urządzeń. Poczytaj raczej o Z-80 do którego to było DMA. Moje dalsze przygody, pójdą raczej w różne atmegi i attiny. Raczej ARM, nie warto wchodzić a przestarzałe technologie, drogie i o małych...
Hmmmm... a czy nie możesz w funkcji odczytu po prostu nie wrzucać znaków NULL do tablicy ? Potrzebne Ci są one do czegoś ? Ewentualnie zrób obsługę tablicy w asemblerze i sam poznęcaj się nad zapisem i odczytem do i z pamięci, która odpowiada za tablicę.
Może skorzystaj z rozwinięcia logarytmu w szereg potęgowy? Np. jeśli 0<x<=2 to ln x = suma(od 0 do niesk) z (-1)^(n+1) ((x-1)^n)/n Oczywiście nie liczysz do nieskończoności tylko np. 5 pierwszych składników sumy... wtedy przy sprytnym podejściu będzie działać dość szybko, wystarczy mnożenie i dodawanie ;-) Dla wszystkich x>0 trochę gorzej......
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,...
a wiesz co to sa mnemoniki, rozkazy, stosy, pamięć, język maszynowy, bity bajty rotacje i te inne sprawy?? Assembler to czysta kombinacja z podstawowymi algorytmami. Samych algorytmów nie znajdziesz w książce typowej o procesorach, to zadanie dla książek programistycznych. Każdy procesor programuje sie inaczej ma inny zasób słów a nie wiem czy dostaniesz...
Problem w tym, że ja z asemblerem nie jestem obeznany. Coś tam kiedyś się uczyłem jednak nie miałem zbyt dużo wolnego czasu. Mam jeszcze jedno pytanie. Moja funkcja uart_tx wygląda aktualnie tak: [syntax=c]void uart_tx(char temp[]) { wskaznik = temp; LED_ON; UCSRB |= (1<<UDRIE); } [/syntax] W tym momencie ona działa, jednak nie jestem pewny czy...
nie jest dokładnie wyskalowany wiec np . 2bity odpowiadałoby (wyświetlałoby)0,1V , 4 bity 0,2V ale już np 6bitów 0,3V a 20bitów 1,1V i inne. chodzi mi o zasade tworzenia tablic w asemblerze bo na razie wiem tylko że zaczyna sie to od .db . jak to zrozumiem to licze że dalej mi pójdzie.
bo musisz jeszcze coś do DPTRa wpisać. Takiego sposobu urzywa sie do pobierania danych z tablicy względem DPTR i np R1 masz np tablice tab1: DB 0,2,4,8 do tego twój programi (ale najpierw musisz dodać na poczatku polecenie MOV DPTR, #tab1) i on ci pobierze dane z tej tablicy. Gdy np r1=0 to pobierze ci pierwszą wartosć- czyli zero, gdy np R1=2 to z...
To z asemblerem, to na jaka platforme?? Na x86 nie znam instruckji LUT, jest za to XLAT - a sam skrot LUT rozwija sie jako look-up table, czyli dla danego indexu masz odpowiendia wartosc w tablicy. Istrukcja XLAT pobiera dane z adresu: ds:[bx+al] i zapisuje je w al.
Najszybciej będzie tworząc 256-bajtową tablicę na każdy poziom. Bez podwójnych rejestrów DPTR musiałbyś mieć próbki w pamięci IRAM (mov A, (at)Rn) lub ew. w jednej stronie pamięci XRAM (movx A, (at)Rn): mov DPTR, #tablica_poziomu_x mov R1, #liczba_probek mov R2, #adres_1_probki_w_ram petla: mov A, (at)R2 ; +1 movc A, (at)DPTR+A ; +1 mov (at)R2,...
Jako że asembler jest z reguły samodzielnym niezależnym, i nie związanym z IDE programem wszelkie etykiety i makra są jego wyłaczną domeną. Generalnie etykiety i marka to jest inna droga przy kompilacji ale te rozważania wkraczają w naukę o kompilatorach/translatorach. Jeżeli assembler jest makto-assemblerem (dziś trudno o inny) to wszelkie maka są...
U mnie nie akceptuje tego (wers.1.11.7.4) $hwstack = 32 ' default use 32 for the hardware stack $swstack = 32 ' default use 10 for the SW stack $framesize = 40 ' default use 40 for the frame space Ale to ustawia się w opcjach więc to chyba niema żadnego wpływu asembler Nie zrozumiałeś mnie. Tekst wyświetlany jest w mniej więcej tak: .........TE........
Mam delikatny problem z tym programikiem. Służy on do sterowania silnikiem krokowym. W zależności od wartości R4 resetowany jest odpowiedni pin procka. Jeśli ten program użyje razem z obsługą UARTa (przerwania) to mi wszystko skacze w maliny. Wiem że program jest zły, ale nie wiem gdzie. Jako tako steruje silnikiem, ale też zgłasza „lewe”...
Nie mogę oczywiście napisać za Kolegę ale może coś podpowiem. Klawisz "enter" jest zdefiniowany w tablicy KEY_COD: w ostatniej pozycji "DB 0AEH ;Enter". Najprostszą metodą będzie utworzenie drugiej tablicy TEXT z odwrotnym zapisem i przesłanie jej do LCD. Na razie program działa w pętli i cały czas wysyła dane do LCD (o ile się nie mylę), co wcale nie...
masz tak: ldi r17, high(51) ldi r16, low (51) out ubrrh, r17 out ubrrl, r16 a dokumentacja mówi tak: • Bit 7 – URSEL: Register Select This bit selects between accessing the UCSRC or the UBRRH Register. It is read as one when reading UCSRC. The URSEL must be one when writing the UCSRC. Więc to twoje zapisywanie do ubrrh...
Jest sposób aby wykonać ta procedurkę w asemblerze , ale nie wiem ile ona potrwa- a tobie zależy na szybkim wykonaniu obliczenia. Poniżej opisałem jak według mnie mogłoby to działać: Np. A=256 ; B=64 Deklarujemy tablice w której będą procentowe podzialy liczby (25%,50%,75%,100% itd) 1) porównanie liczb A=B, A>b, A<B 2) A>B (inkrementujemy odpowiednio...
Znalazłem coś takiego: .DSEG .ORG $60 INDEX: .BYTE 1 TABLICA: .BYTE 40 .CSEG LDS R16, INDEX LDI XL, LOW(TABLICA) LDI XH, HIGH(TABLICA) ADD XL, R16 LDI R16, 0 ADC XH, R16 LD R16, X ale nie bardzo to rozumnie. Dużo jest opisów jak to zrobić w C niestety mało w asemblerze. Próbuję się dowiedzieć jak się inicjuje tablice itp.
albertb - ten "and" akurat jest tam nie potrzebny, bo chce odczytać cały port ale to jest maska które piny mają być odczytane w przerwaniu Też tak słyszałem, że Bascom zamuli wszystko a Asembler powinien wyrobić. Może ktoś wie jak tu wstawić jakieś wstawki Asemblerowe do Bascoma, może w tedy wyrobi, tylko że na Asemblerze w ogóle się nie znam. Chce...
Witam Serdecznie. Podczas moich walk z prockami napotkałem taki problem.Przetwornik ADC który mierzy napięcie "oddaje" wynik pomiaru w postaci 8 bitów.Wynik ten umieszczony w Akumulatorze jest adresem dla danej (umieszczonej w tablicy znaków)która ma zostać wyświetlona na LCD.Wszystko działa pięknie ale dla wartości z przedziału 0-255, a ja potrzebuję...
Aby to policzyć musisz sprawdzić pierwszy bit danego bajtu. O ile dobrze pamiętam "0" to + a "1" -. Nie napisałeśjaki procek cie interesuje. I napisz czy chcesz kod w C czy asemblerze.
Kilka błędów: - nie możesz zakładać, że zmienne znajdują się pod stałymi adresami w pamięci, to się będzie zmieniać pomiędzy kompilacjami, w związku z tym istnieje konieczność użycia symboli - register to tylko sugestia dla kompilatora i tych rejestrów wcale nie musi rezerwować. Ale jest też poważniejszy błąd - rejestry te są wykorzystywane przez AVR-libc...
Drodzy koledzy wiem jak programować w C i C++ na PC'ty więc takie, rzeczy jak Warning to dla mnie ważna sprawa i zwracam na to uwagę - kompilator nie zgłasza problemu jak się deklaruje tablice o wielkości N dla stringu o długości N ponieważ znak \0 wpisywany jest tuż za tablicą a nie w niej samej. Łatwo to sprawdzić w wyświetlając w pętli kolejne adresy...
Sortowanie liczb całkowitych w tablicy metodą bąbelkowej. Chodzi może o sortowanie liczb metodą "bąbelkową"? Zadając pytanie należy podać: System operacyjny. Typ pliku wynikowego (com, exe), jeśli pod DOS, Windows. Komunikaty błędów kompilacji.
Bawiłem się w to niedawno , programując PIC-a w asemblerze. Piszesz że jest dla ciebie jasne sterowanie wyświetlaczem LCD kiedy już masz odpowiednie kody w CG_RAM , więc przesyłam ci fragment dotyczący ładowania pamięci CG_RAM całą serią kodów dla polskich znaków. Na samym dole są dwie tablice danych : jedna dla małych znaków a druga dla dużych. Jak...
To jest zwykły asembler Thumb2. Jako że to jest rozbiegówka, to kod musi zapisać odpowiednie liczby w odpowiednie miejsca, i to jeszcze w odpowiedniej kolejności. Cały proces rozbiegania rdzenia CortexM3 jest dostępny w dokumentacji do CortexM3, którą można pobrać ze [url=http://infocenter.arm.com/help/inde...
po pierwsze są 2 atmelowskie assemblery, na '51 i AVR. Chciałem się dowiedzieć w jaki sposób piszecie programy w asemblerze udostępnionym przez firmę atmel. Jak go uruchomić, jak zapisać program i inne rzeczy. ja pisze w Avr Studio 4. w jaki sposób?w kolejności w kodzie: skoki do przerwań, procedury obsługi przerwań, właściwy kod, dodatkowe procedury(w...
Twoja odpowiedz to raczej post++ niz prawdziwa wskazowka :P Tablice kodow mam przed oczami wiem ze trzeba zrobic tak: PSEUDO KOD: JESLI znak_lancucha >= '0' I znak_lancucha <= '9' TO liczba = liczba * 10 + (znak_lancucha - kod znaku 0) Programuje w C++ a teraz musze pobawic sie w asm. To co udalo mi sie wyskrobac wyglada tak. mov cx, 00...
Aha, teraz rozumiem o co biega:) Czy w czystym asemblerze też może wystąpić takie umieszczenie tablicy? Wydaje mi się, że tam zawsze jest umieszczana od początku komórki pamięci, prawda? Moje rozwiązanie jest z programu czysto assemblerowego.
Dziękuję za porady - odnośnie tamtego problemu użyłem właśnie wartości w tablicy:)
Ale rozumiem ze Atmega obsluguje tylko wyswietlacz a dane do wyswietlacza przychodza przez jakies polaczenie z procesora DSP ?? Obliczenie 128 punktowego DFT to nie zadanie dla Atmegi ;) Pozatym te wyswietlacze nie sa zbyt szybkie wiec raczej odswiezanie wieksze jak 10Hz jest bezcelowe bo wszystko sie rozmaze i bedzie jedna wielka plama. Potrzebujesz...
tablice asembler tablice dwuwymiarowe tablice dostęp
kolory kabli audio zasilanie delphi gorący przewód
Wentylator chłodnicy Peugeot 5008 działa po zgaszeniu silnika - błąd 108 Symbol kropli wody na wyświetlaczu Saeco - jak usunąć?