Cześć. Chce napisać program, który pobiera znak z klawiatury (liczbe 0-9), i przekazuje ją do pętli, gdzie wyświetlany jest jakiś napis, w pętli o liczniku zadeklarowanym przez użytkownika. mam tyle: .model small .386 .data tekst db "petla znakow",0Ah,0Dh,"$" .stack 100h .code .startup mov dx, offset tekst mov ah, 09h int 21h mov...
Witam wszystkich forumowiczów. Miałbym małą prośbę o pomoc. Otóż jutro mam sprawdzian z mikroprocesorów, no i mój problem polega na tym ze nie umiem wykonać jednego z zadań, które ma być na tym sprawdzianie. Zadanie polega na odejmowaniu za pomocą asemblera. Dlatego chciałbym prosić o pomoc tych, którzy maja pojecie i wiedze na ten temat, aby pokazali...
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...
Witam mam taki chyba łatwy programik w asemblerze na dsm51 i musze zrobic do niego algorytm ale nie mam pojecia jak. Jak ktos wie co z tym zrobic i mi powie to byłbym bardzo wdzieczny. oto program: WY—WIETLACZ ALFANUMERYCZNY LCD - ANIMACJA (dla dsm 51 !!!) ;***************************************... LJMP START ORG 100H START: MOV R0,#LCDWC...
Na pewno, to to jest jakiś program ;)) Z tego co widzę, to usiłuje on wczytać dwie liczby w zakresie 0-65535 i ... nic więcej :))) Żadnego 372 tu nie ma, a za to jest martwa pętla :)) model tiny .stack 2H .data napis1 db 'Pokaz','$' napis2 db 10,13,'Podaj pierwsza liczbe: ','$' napis3 db 10,13,'Podaj druga liczbe: ','$' napis4 db 10,13,'koniec','$'...
Mam cos takiego w pascalu: program port; uses Crt, Dos; const nr_Portu=1; procedure SendByte(zn:Byte); var r:Registers; begin delay(10); r.ah:=1; r.dx:=nr_portu; r.al:=zn; Intr($14,r); end; procedure GetByte(Var zn:Byte); var r:Registers; begin r.ah:=2; r.dx:=nr_portu; Intr($14,r); zn:=r.al; end; procedure Menu; begin ClrScr; Writeln('F1 - wysylanie');...
Rozumiem, że korzystasz z jakiegoś AVRka (po rozkazach wnioskuję). Proponowałbym Tobie zapisać liczbę w postaci zmiennoprzecinkowej, czyli bit znaku + mantysa + wykładnik. Wówczas mantysy mnożysz normalnie, a wykładniki dodajesz (zapomniałem dodać, że wykładnik zapisujesz jako liczbę w kodzie U2) :) No a bity znaku zwyczajnie XORujesz ze sobą, aby otrzymać...
Cześć. Mam program i nie mogę zrozumieć dlaczego skacze mi do: 291: return pgm_read_byte(&(local_lcdspec (at)00000165: lcd_PrepareSpec 309: memset(lcd_spec, 0xff, sizeof(lcd_spec)); +00000165: ED81 LDI R24,0xD1 Load immediate +00000166: E091 LDI R25,0x01 Load immediate +00000167: EF6F SER R22 Set Register +00000168:...
Bez asemblera 59 - 64 cykli, łańcuch może mieć wartość od "000" do "255": [syntax=basic4gl]$sim $regfile = "m8def.dat" $crystal = 16000000 $hwstack = 64 $swstack = 64 $framesize = 64 Dim Liczba_str As String * 3 Dim Liczba_array(3) As Byte At Liczba_str Overlay Dim Wynik As Byte , Temp_b As Byte '---------------------------------------...
Witam. Program możesz napisać tak: 1.Potrzebujesz dodatkowej zmiennej w której będziesz przechowywal wyraz oraz zmiennej zliczającej długość wyrazu. 2. W pętli (ilość obrotów równa jest ilości znaków w zdaniu) wykonujesz: a) jesli aktualny znak jest równy spacji wyświetl wyraz i liczbę znaków oraz powróć do punktu 2 czyszcząc te dwie zmienne. b)dopisz...
Witam, mam na zaliczenie z pracowni napisać taki program: na wyświetlaczu LCD w Dsm-51 w pierwszej lini ma być moje imie i nazwisko a w lini pod spodem imie i nazwisko kolegi z tym ze ma zawierac polskie znaki.z tym sobie umię poradzić. problem jest w tym ze po naciśnięciu klawisza ENTER na klawiaturze matrycowej imiona i nazwiska mają się zamienić...
witam! Na ostatniej lekcji zrobiliśmy duzo materiału i troche nie zrozumiałem kilku poleceń: - jaka jest różnica pomiedzy MOV a MOVX ? - co to jest DPTR ? - co daje znak (at) i # ? to chyba na razie tyle pozdrawiam
Musze zaleście biedy 0. Ogólnie masz słabość do języków, co? 1. W '51 wektor resetu jest pod 0x00, a użycie rozkazu LJMP xxxx, zabiera 3 bajty. Przelicz samodzielnie na jaki adres wskazuje ORG 100000000B i czego można się tam spodziewać. 2. C51 ma 4 banki po 8 rejestrów, więc R9 to chyba ciężko będzie znaleźć. 3. Rozkaz MOV wymaga dwóch operandów....
Nie chce mi sie przeliczac z dwojkowego na 16-kowy, ale generalnie aby otrzymac pomiar z DS1820 powinieneś: 1. zresetowac linie 1-wire 2. wyslac wartosc 55h 3. wyslac wartsc 10h + 48 bitowy Adres urzadzenia + 1 bajtowy kod błędu CRC 4. wysłać wartość 44h - inicjacja pomiaru 5. poczekać aż układ odpowie - wartość FFh 6. zresetować linie 1-wire 7. wyslac...
(...) Innymi slowy: czy bit przepelnienia T1 zmieni sie podczas realizacji przerwania T0 czy dopiero po nim? Flaga TF1 zostaje ustawiona w momencie przepełnienia licznika T1, także podczas obsługi przerwania od T0. (...) Dodam, ze LICZNIK, NEXT MAM ZDEFINIOWANE WARTOSCI, a co do pozostalych nie mam pojecia czemu nie mozna wpisac takich wartosci......
Panowie mam pytanie co robię nie tak że mi nie obsługuje klawiszy. przyciski mam dołaczone do PA0...PA4. Do PA5 i PA6 mam dołączone przekaźniki (wyraźnie słychać czy się przełaczają), zamiast sterowania przekaźnikiem dawałem komendę zerowania LCD i nic. Tak jakby się gdzieś zawiesił albo coś. Wiem że całe życie się człowiek uczy i pewnie jest tu jakiś...
sprawdź czy któryś z katalogów w ścieżce dostepu do tego pliku nie zawiera polskich znaków, jesli zawiera zmien jego nazwe
Nie wiem co jest błędnego w mojej składni. Dyrektywa #define ze znakiem równości lub bez, a kompilator wali błędami. Czy jest coś zamiast low () i high () bo tego też się czepia. #define ma być bez znaku = :!: Co w tym jest źle? #define mc32u1 r17; multiplicand byte 1 #define m32u5 r25; result byte 5 adc m32u5,mc32u1 ; Chyba nie bardzo wiesz , jak...
Witam was wszystkich moi drodzy koledzy z forum elektroda. Obecnie w dniu dzisiejszym mam do napisania program w ASEMBLERZE. Zalozenia odnosnie programu to: W projekcie należy opracować w języku asemblera procesorów Intel aplikację konsolową (tryb 32-bitowy). Aplikacja musi implementować zadany algorytm sortowania lub wyszukiwania danych w tablicy lub...
Skoro masz program, i mówimy o asemblerze to odpowiednie instrukcje potrzebują konkretną liczbę cykli procesora na wykonanie - przeanalizuj program zgodnie z dokumentacją techniczną procesora (uwzględniając częstotliwość z jaką będzie pracował)... co do poprawności - kod U2 służy głównie do wykonywania obliczeń na liczbach ze znakiem. Jak dla mnie -...
Programowania orientowanego obiektowo - podobno - bardzo ciężko jest się nauczyć samemu. Wszyscy guru zalecają przede wszystkim znalezienie sobie mentora - kogoś, kto łagodnie wprowadzi w świat tego programowania. Z mojego doświadczenia wynika ponadto, że osobom, które programowały już proceduralnie, jest jeszcze ciężej. Bardzo ciężko jest wykorzenić...
Nie, nie jest. DIV, to dzielenie liczb bez znaku, IDIV to dzielenie liczb ze znakiem.
Nie. Wszystkie $include mam na samym początku pliku "głównego" - tak jak się to robi np. dołączając pliki nagłówkowe w języku C. Teraz wyjeżdżam, ale jak wrócę to spróbuję powstawiać je w odpowiednie miejsca. Niesądzę jednak, aby to pomogło - pliki te zawierają procedury oraz deklaracje zmiennych w pamięci RAM i Flash, zawsze są poprzedzone odpowiednio...
Witam! Jak juz wczesniej pisalem w ktoryms poscie zaczynam przygode z st7lite i tak sobie koncze czytac ksiazke pana Bogusza. Wlasnie jestem na etapie analizowania przykladowych kodow zrodlowych asemblera. I tu pojawia sie moje pytanko. Otoz wiem ze w przypadku tych mikrokontrolerow stosuje sie notacje motorola. Ale zastanawia mnie co oznacza znak #...
Szperałem forum, ale niestety nie znalazłem odpowiedzi na nurtujące mnie pytanie, O ile w necie można znaleźć gotowe rozwiązanie to ja bym chciał bardziej zrozumieć jak to działa bez tłumaczenia tego sobie z kodu na ludzki. Sprawa dotyczy 8051 i kodu w asemblerze. Potrzebuje wiedzieć jak przekonwertować 16 bitową liczbę na ciąg znaków ASCII. Chodzi...
Znalazłem takie fragmenty kodu, może cię zainteresują: Wczytywanie tekstu z klawiatury: movah, 0ah; funkcja pobierania danych z klawiatury movdx, imie; bufor na dane int21h ; pobierz dane .... imiedb 20 ; maksymalna ilość znaków do pobrania Wyświetlanie tekstu: movah, 9 ; funkcja wyświetlania na ekran movdx, jak_masz; co wyświetlić int21h ; wyświetl...
Witam, potrzebuje pomocy albo rad ,cokolwiek. mam do wykonania projekt który ma polegać na nadawaniu kodu morsa za pomocą przełącznika i ten ma zamieniać znaki kodu morsa na znaki ASCII i mają one być wyświetlane na ekranie komputera . do tego wykorzystam mikroprocesor msp430 eZ430 - F2013 i będę programować chyba w asemblerze. zatem proszę o jakieś...
Przesyłam moją propozycję implementacji algorytmu FFT w asemblerze. Celem nie ma być dokładność, ale możliwość upchnięcia analizy w jak najmniejszych uC. Wymagania co do algorytmu: kontroler AVR (w zasadzie dowolny) z min 128b SRAM (64b zajmują dane, a potrzebne jeszcze miejsce na stos). W przypadku ATMega można spokojnie zastosować mnożenie sprzętowe,...
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ę...
W instrukcji DJNZ B,$ używasz znaku $ okreslającego gdzie program ma skoczyć, a w przykładach niżej ten znak jest zastąpiony *. Zobacz czy kompilator łyknie DJNZ B,*.
Do kompilacji pliku na hex uzywam ASEM-51 w wersji 1.2 oczywiście z odpowiednimi deklaracjami. Do tej pory nie miałem z nim problemów. Spróbuję czegoś innego bo jest trochę tego w sieci i o rezulatatach dam znać. Co do wymiany procka to nie wiem czy to coś pomoże bo jak w jednym miejscu programu uPC "rozumie" co ma zrobić a w drugiej nie to chyba jest...
Witam moich kolegów programistów, Mam do napisania program z asemblera. Kompilacja Fasm32. Program ma zapisywać dwie liczby do pliku (z klawiatury)test.txt. Kompilacja programu przebiega prawidłowo jednak to wpisaniu dwóch liczb nie zapisują się one do pliku. Prośba o wskazanie błędu. Dziękuje z góry wszystkim pomocnym. Trzymajcie się ciepło ;Aplikacja...
W Asemblerze mam napisać program, który będzie odczytywał znaki z klawiatury, ale tylko znaki alfabetu i jeśli pojawi się inny znak niż litera, to będzie słychać dźwięk("buczenie") i program będzie czekał tak długo, aż zostanie wprowadzony znak alfabetu. Dopiero zaczynam się uczyć asemblera i bardzo proszę o pomoc. Zastanawiałem się nad tym i może trzeba...
Program zamienia dane na 2 wskazniakch na 3 i na 6. Czyli mam na 7 seg napisa OLA ALA a po nacisnieciu klawisza enter na klawaiturze sekwencyjnej(chodzi mi o DSMa) zmieniaja sie miejscami wskazniki 3 i 6 czyli bedzie ALA OLA. Wszystko dziala tylko nie rozumiem czemu swieca mi sie wszystkie segmenty na 1 wskazniku? A jesli ustawie escape czyli 00000010b...
Ldi R30, 28 Ldi R31, 78 Rcall _lcd_delay ; 20 ms delay at 4 MHz Witam, przedstawiony kod asemblerowy jest niezmiernie prosty w edytowaniu i zmienianiu parametrów instrukcji. Ldi - jak każdy wie, to ładowanie odpowiedniej wartości do rejestru Rcall - wywołanie programu. _lcd_delay: Sbiw R30,1 ;2 cycles Brne _lcd_delay ;2 cycles Ret Sbiw - instrukcja...
Witam. Próbuję napisać w asemblerze program, który wyświetla odpowiednią ilość razy dany znak, a potem wyświetlić tę ilość znaków znów ileś tam razy. Czyli pętla w pętli. efektem końcowym ma być ****** * ****** ****** * ****** ****** * ****** napisałem tyle: .model small .386 .data tekst db "petla znakow",0Ah,0Dh,"$" tekst2 db "...
Zrodlo programu zamiescilem ponizej. Z tym nachodzeniem to mozliwe, ale ja na razie nie wiem gdzie. Procedury obslugi wyswietlacza zapozyczylem z ksiazki "8051 w praktyce": Aha tutaj sprawdzam, czy kolejne kroki programu sie wykonuja, za pomoca wysylania na port szeregowy kolejnych liczb (1,2,3) po kazdym kroku i odbieram je w terminalu. NAME LCD ORG...
Witam, chcę za pomocą at90s2313 w celach edukacyjnych zaprojektować prosty liczniki. To znaczy klikam jeden przycisk to na wyświetlaczu 7-segmentowym wyświetla się cyfra o 1 większa od poprzedniej. Wczoraj trochę próbowałem zrobić taki licznik, ale jest pewien problem. Chodzi o to, że jak wciśnie się przycisk i go się trzyma to pętla dodaj cały czas...
ale możesz wykorzystywać wewnętrzne funkcje DSM51 czy masz wklepaś instrukce obsługi wyświetlacza komenda po komendzie? Jeśli to drugie to mogę pomóc ale musisz wypisać gdzie i jak jest podpięty konkretnie wyświetlacz i ile ma linii/znaków... Dodano po 6 masz gotowca: ;***************************************... ; WY—WIETLACZ ALFANUMERYCZNY...
jest to deklaracja zmiennej "bufor", która jest tablicą bajtów ("db"), która zawiera kolejno: - bajt o wartości 2 - bajt o wartości 0 - 2 bajty o wartości niesprecyzowanej ( 2 times dup licate value " ? ") Jest to typowa deklaracja buforu służącego np. do odczytu tekstu z klawiatury za pomocą przerwania, w takim przypadku: - przed wywołaniem przerwania...
Witam No wiec tak, zrobilem gre w Asemblerze, taka ze sie porusza strzalkami po labiryncie, i chcialbym jeszcze dorobic licznik kroków (czy tam ruchow) ale mam z tym problem gdyz zamiast wypisywac mi liczbe kroków to wypisuje mi znak ktorego kodem ascii jest ta liczba , czyli np: jezeli jest krok 97 to wypisuje mi znak "a" zamiast tej liczby zrobione...
Witam, mam taki nie typowy problem, dlatego jego rozwiązania nie mogę znaleźć przy pomocy Google. Jest to mój pierwszy post na tym forum, gdyż zawsze korzystam z porad w istniejących już tematach i staram się nie zaśmiecać forum i dlatego jak już wspomniałem potrzebuję pomocy indywidualnej. Przechodząc do meritum. Piszę pracę magisterską, znam języki...
Dzieki wielkie za odpowiedz Zmodyfikowalem troche program liczący w HEXie a noz sie komus przyda [syntax=asm]ORG 000H START: LCALL WAIT_KEY ; czekanie na przycisk z klawiatury SWAP A ; zamiana starszych i młodszych bitów MOV R0,A ; zapamiętanie warości pobranej z klawiatury w rejestrze R0 LCALL WAIT_KEY ; czekanie na przycisk z klawiatury ADD A,R0 ;...
Witam! Od kilku dni uczę się asemblera. Chciałem napisać bibliotekę DLL w asemblerze, która zamienia małe literki na duże, w podanym w argumencie łańcuchu(w ramach nauki). Funkcja biblioteczna otrzymuje w argumencie wskaźnik na łańcuch(char *). Odczyt poszczególnych znaków działa, problem występuje natomiast w momencie gdy chcę coś zapisać pod adresem...
Witam. Na zajęciach napisałem program: [syntax=text]Asm code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 ; Program odczytu danych i zapisu ; .model tiny .data imie_question db "Twoje imie to? $" imie db 20 ,0 ;malna liczba znaków do pobrania ; tu dostaniemy, ile znaków pobrano times...
Witam, mam pytanko. Napisałem program który po wciśnięciu przycisku wyświetla na wyświetlaczu liczby kolejno od 0 do F. Jest to wywoływane przyciskiem na porcie p1.5 teraz druga sprawa. Chciałbym by przyciskiem p1.4 móc obniżać wartość liczby, przypuśćmy gdy będzie 7, a wcisne p1.4 pojawi mi się 6. Jakim sposobem to zrobić? Oto program: [syntax=asm];...
Witam Mój problem polega na tym ,że muszę połączyć dwa programy w języku ASEMBLER. Niestety z programowania jestem słaby, a z języka niskiego poziomu to już w ogóle jest masakra. Ogólnie mam za zadanie zrobić mały projekt, który polega na tym ,że trzeba zaprogramować układ ADuC842 tak ,aby wyświetlił on na wyświetlaczu wpisany tekst z klawiatury (podłączonej...
Z tego co wyczytałem to, to przerwanie jest wywoływane przy każdym naciśnięciu klawisza. Jest ono zwiążane z przerwanie sprzętowym klawiatury. Domyślna procedura odbiera znaki i przekazuje je dalej. Wydaje mi się że procedura ta odbiera dane z portu klawiatury 0x60h. Klawiatura przekazuje bajt po naciśnięciu/puszczeniu klawisza. Po naciśnięciu przychodzi...
ad. 2. W asmemblerze MC68k :], a co? jak dowolny, to dowolny :] (asm x86 nie znam za bardzo) Założenia: argument funkcji podawany jest przez stos (wskaźnik stosu - rejestr A7, stos rośnie w dół) Wartość (wskaźnik) zwracana jest w rejestrze D0. Reszta rejestrów pozostaje niezmieniona. Za obsługę stosu odpowiada funkcja wywołująca, więc po powrocie z...
Witam. Mam problem z ładowaniem danych z pamięci programu w AT90S2313. Procedurka wygląda następująco: ldi r30,0........................ładuj zero do ZL ldi r31,0........................ładuj zero do ZH ldi r30,(tablica*2)..........łaładuj do ZL adres tablicy ...................................z równoczesną rotacją bitów w lewo ...................................(wyma...
Witam. Pierwszy raz mi nie powiodła się przesiadka z asm'51 na asm'avr - ze względu właśnie różnorodności poleceń itp. Teraz podjąłem się drugi raz i nie jest tak źle - piszę po kolei swoje odrębne procedurki - tak jak piszesz muszą zajmować niestety więcej pamięci ale za to atmegi mają jej sporo w porównaniu do '51. Jeśli ty jesteś "skrzywiony" to...
Witam W załaczniku potrzebne pliki. Attiny2313 z nastawionym zewnętrznym kwarcem, div8 wyłączone, kwarc 11.059200MHz, kondensatory 15pF, stos ustawiony na koniec ramu, prędkość zmniejszona już do 2400 a pomimo to dalej nie wysyła wszystkiego co powinno. Obsługa: t - pokazuje w terminalu napis (jakieś 15 znaków) z - załacza jeden reset x - wyłacza reset...
znalazłem operacje dzielenia, ale w ty przykładzie zatwierdzanie jet tylko przez 7 przełącznik, a u mnbie zatwierdzanie ma być na przełącznikach 5, 6, 7 oraz wyświetlenie wyniku odpowiednio na diodach. Oto ten pprzykad: ;DZIELENIE - na podstawie wzoru programu z pracowni. ; Dana w ACC KODWYJ EQU 9216 DASCII EQU 9248 ; INILCD EQU 9408 BSEGAT 0 BLAD:DBIT1...
aby zdefiniować w assemblerze IAR ciąg znaków: ORG 0x.... //miejsce w pamięci tekst: DB 'jakis tekst',0 teraz odwołujesz się do tego tak mov #tekst,R14 petla1: mov.b (at)R14+,R15 jnz petla1 do R15 będą wprowadzane kolejne kody ascii znaków w stringu
Dziękuję za odpowiedź Kolego Dr Vee Dotychczas udało mi sie napisać program który wyświetla mi statycznie do znaków...A wygląda to tak dane (ciąg znaków) są z UART-u zapisywane w zdefiniowanym programowo buforze znaków. Następnie w wyniku przerwania, które następuje co ok. 100us odczytuję z bufora znaków jeden znak i na podstawie biblioteki fontów przekodowuje...
Wydaje mi się, że masz problem ze sformułowaniem problemu i ułożeniem algorytmu. Może spróbuj zrobić tak: 1. Jako wynik ustaw 0 - zmienna, np. "wynik". A jako ostatnią operację dodawanie (też jakaś zmienna, np. 'operacja'" 2. Pobierz liczbę - znacznikiem końca liczby będzie jakikolwiek znak, który nie jest cyfrą (na razie olejemy liczby zmiennoprzecinkowe,...
rejestr indeksowy zwiększasz o 2 w pętli. Do tablicy odwołujesz się poprzez ten rejestr indeksowy. Przenosisz znak do właściwego rejestru i wyświetlasz. Licznik pętli najlepiej ustawić na liczbę wprowadzonych znaków div 2 lub licznik również zwiększać o dodatkowy 1 przy każdym przebiegu pętli.
Chodzi o to, żeby program w pewnych okolicznościach wstawiał znak do buforu klawiatury. Program piszę w C++ vs2003net. Z tego co się dowiedziałem możliwe jest to tylko w asemblerze, z którym jeszcze nie miałem styczności. przerwanie 16H funkcja 05 ... trochę kosmos Pomóżcie mi to zrobić wstawkę asemblera na razie robię tak void SetKEY( BOOL bState...
Witam mam wykonać zadnie w asemblerze które ma na celu wprowadzanie znaków do bufora i ich sortowanie oraz wyświetlenie. Jestem w tym języku początkujący i chciałbym prosić o pomoc w tym zadaniu część już zrobiłem tzn wprowadzanie znaków. Nie potrafię napisać drugiej części czyli ich sortowania (dowolna metodą) Częściowy kod : .model small .stack 100H...
Okej. Panowie wróciłem:D troche pcozytałem, poszukałem i z tej całej mieszanki(raz jest tu kod z 8051, raz 8086) wybralem 8086. mam już coś takiego .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 i zwraca...
Witam Program, który piszę ma działać w następujący sposób: podając w linii poleceń parametry np. nazwa_pliku.txt 3 ma pobrać te parametry do zmiennych otworzyć podany plik i wyświetlić na ekranie (w zależności od podanego parametru) co któryś znak. Aktualnie zrobiłem prawie wszystko parametry pobrane z linii wiersza poleceń: mov si, 80h xor bx, bx...
Witam. Szczęśliwie dla użytkowników praktycznie wszystkie wyświetlacze alfanumeryczne LCD obsługuje się tak samo. Ich chipy sterujące są zgodne z HD44780. W skrócie obsługa LCD'ka wygląda tak: - inicjalizacja (zestaw komend sterujących, ustawia się min. sposób podłączenia 4/8 bit, ilość linii itp itd.). Sprawa dosyć dobrze opisana w większości datasheet'ów...
1. Gdzie w apostrofach jest 0? 2. Myślę, że jakbyś wiedział, do czego służy rejestr (E)SI, to by nie było pytania. Ponadto przecież w następnej linijce go wykorzystujesz. 3. mov byte ptr min, al - przeniesienie bajtu danych do zmiennej min z rejestru AL. Moim zdaniem zupełnie niepotrzebne w tym miejscu stosowanie wskazania rozmiaru danych. Tego typu...
Witam Mam pytanie dotyczące programu. Wyświetlam tekst na wyświetlaczu lcd i chcę przerywać to za pośrednictwem klawisza enter. Gdzie wstawić odpowiedni kawałek kodu, aby wciśnięcie entera powodowało przerwanie wyświetlania tekstu. Kod wyświetlania: [syntax=asm]LJMP START ORG 100H START: MOV R0,#LCDWC ;adres wpisu instrukcji MOV R1,#LCDRC ;adres odczytu...
Domyślam się, że wyświetlasz tekst funkcją przerwania 21h, która służy do wyświetlania ciągów tekstowych. Jeśli wczytać się w opis tej funkcji, to znajdziesz, że wyświetla ona tekst od wskazanego w rejestrze DX adresu aż do najbliższego wystąpienia znaku '$'. Jeśli robisz mov tab , to wpisałeś wartość 1 a nie znak '1', więc wątpię, abyś tak robił ;)
Mam pewien problem otóż program dodaje 2 liczby wprowadzane z klawiatury ale tylko suma do 10 co zrobiłem źle i jak mam przekształcić program żeby zapisywał do pliku wynik?[syntax=asm].MODEL SMALL .STACK 100H .DATA PROMPT_1 DB 'Podaj pierwsza liczbe: $' PROMPT_2 DB 'Podaj druga liczbe: $' PROMPT_3 DB 'Suma liczb to: $' VALUE_1 DB ? VALUE_2 DB ? .CODE...
Witam. Usiłuję od dłuższego czasu napisać fragment kodu pracujący pod DOSem (DOSBox) który ma za zadanie czytać znaki z klawiatury do wektora. Wektor ten ma być później wypisany na konsoli. Poniżej kod - jest jakiś błąd, albo ja nie rozumiem czegoś do końca... [syntax=asm] .model small .stack 100h .code bufor db 8 dup(6h) ;definiuje wektor 8 elementów,...
Nie obraź się ale myślę że najpierw powinieneś powalczyć z migającą diodą. :) Przerabiałem to 2 lata temu w asemblerze od pół roku walczę z C# jednak migającą diodę udało mi się uzyskać poprzez przerwania w C#. Jednak na początku tematu napisałem że pierwszy raz programuję LCD. Zasadniczo przed rozpoczęciem następnej funkcji powinieneś zakończyć poprzednią....
Dzień dobry, mam problem z zadeklarowaniem klawiatury do następującego programu: [syntax=x86asm] start: org 0h mov R2,#34h ; zapis zawartości komórki 34h do rejestru R2 mov SCON,#01010000b ; struktura portu szeregowego mov TMOD,#00100000b; tryb 1, uaktywniony odbiornik mov TH1,#0FAH ; tryb 2 licznika T1 setb TR1 ; wartość początkowa dla licznika T1...
Jeżeli to chodzi o asembler to robisz to tak: Znaki: db n1,n2,n3,n4,.....nx i od miejsca Znaki masz wpisane kody wierszy dla twoich znaków, które oczywiście musisz zdefiniować. Potem je musisz przesłać do wyświetlacza. mov dptr,#Znaki a potem tylko: movc a,(at)dptr i masz w acc pierwszy bajt potem inc dptr movc a,(at)dptr masz kolejny bajt i tak...
Może zróbmy coś takiego. Poniżej zamieszczam program, który w nieskończonej pętli wysyła znaki na terminal. To jest narazie wszystko co udało mi się napisać z pomocą książek. Na samej górze tego programu zadeklarowałem tablicę, w której będę chciał przechować te 6 trzycyfrowych liczb. Czy pomółbyś mi rozbudować ten program w oparciu o Twój pomysł? $NOBUILTIN...
Chciałbym napisać program asemblerze MIPS (dla SPIM), który będzie "przepuszczał" tylko znaki 0 - 9, a - f i A - F oraz będzie odwracał powstały ciąg znaków (tzn. zamiana miejscami pierwszego znaku z ostatnim, drugie z przedostatnim itd.). Napisany przeze mnie program poprawnie "przepuszcza znaki", ale nie odwraca ciągu: .globl main .data s1: .asciiz...
Witam! Przygotowując się do wrześniowej poprawki architektury komputerów natknąłem się na następujące zadanie: Funkcja biblioteczna języka C o podanym prototypie char *strstr( const char *string, const char *strCharSet ); zwraca wskaźnik określajacy miejsce pierwszego wystąpienia ciągu znaków strCharSet w łańcuchu znaków string. Napisać podprogram w...
Witam! Swego czasu pisałem samodzielnie asemblerka na 8048. znak po znaku przechodzić w pętli i badać czy to cyfra 0-9 czy działanie +-*/ Zastosowałem tutaj rekurencję pośrednią. Najwyżej w hierarchii są nawiasy, potem czynniki a na końcu składniki. Pozdrawiam KG PS Zrób sobie diagram przejść na papierze wtedy zobaczysz wszystko jak na dłoni
W C to będzie 15 linijej kodu prymitywnego i 25 optymalnego. Ciekawe ile zajmie Ci napisanie takiej prościzny w asm. Każdy ma prawo się katować na sposób przez siebie wybrany :) Przyznaje ci racje i to podwójnie, :) 1. Warto uczyć się C i innych języków, myśląc o programowaniu w szerszym kontekście. 2. Twoje heroiczne wspieranie potrzebujących na forum...
Witam. Robi się to dokładnie tak, jak napisał Patryk. DB w asemblerze to po prostu Definiuj Bajt, jest to miejsce w pamięci programowej zarezerwowane na definicje np. tekstu. A więc (nie zaczyna się od 'a więc')jeśli ustawisz etykietę np. Linia_1 dla pierwszej linii na LCD i wpiszesz tam 16 bajtów tekstu, to będzie to wyglądać następująco: gdzieś w...
Witam. Po pierwsze będziesz wyświetlał cyfry (od 0 do 9), a więc każdy wyświetlany znak, to jedna cyfra z twojej liczby. Czyli musisz mieć je w kodzie BCD, czyli dziesiętnym - taki kod to cztery bity w zakresie wartości od 0 do 9. Po drugie - cyfrę w takim kodzie musisz zamienić na znak ASCII, bo takie znaki wyświetla LCD. Jest to bardzo proste - dodajesz...
Hello! Może mi Ktoś wytłumaczyć jak się robiło następującą rzecz: załóżmy że odbieram dane z portu szeregowego i chce mieć do tego małą, zgrabna i szybką procedurkę na przerwaniu (odebranie bajtu = zgłoszenie przerwania). Zastanawiam się jak zrobić taki manewr aby każdy odebrany znak został automatycznie zapisany do komórki o adresie większym o jeden...
przerwanie od "nadawania" znaku po RSie chyba nie ma szans wystąpić, wtedy w programie bym musiał miec: MOV SBUF, DANA. co do zapełniania sie stosu to działo sie tak jak chciałem przestawić priorytet przerwań. na początku programu napisałem MOV IP, #0 i nastepnie SETB PS, tak aby przerwanie od UARTU było najważniejsze. jednak coś tutaj pokiełbasiłem......
jak za pomoca asemblera odczytac informacje jaki klawisz klawiatury zostal nacisniety:?: bede wdzieczny za pomoc ,pozdrawiam Temat zamykam. - arnoldziq
takie coś nauczyciel powiedział mi żeby zrobić myślicie że to dobry pomysł ?? ;wizytowka .model small jumps .data napis db 64 dup ('a'),'$' dlug dw 0 brak db 'nic nie wpisales wiec nic sie nie wyswietli$' jest_enter db 0 .code start: mov ax,seg dgroup mov ds,ax mov ax,0b800h mov es,ax mov ah,0 mov al,3 ;reset karty int 10h xor si,si ;zerowanie si wpis:...
Marek_mrk, ciekawy jestem na jakim procesorze to robisz?. Poswięciłem programowi marę minut i już zobaczyłem parę błędów, ale nie dajesz zadnych komentarzy więc nie chce mi się rozgryzać czyjś program. PS. Dwadziescia lat temu kiedy w Polsce nie było internetu na znak (at) właśnie mówiono ampersand i wtedy kazdy programista wiedział o co chodzi.
mam jeszcze jedno pytanie do kolegi? Przeanalizowałem juz cały program i wszystko rozumiem tylko zastanawia mnie co jest ukryte pod deklaracją #BUFOR_NA_TEMPERATURE?CZy to jest komórka pamięci? Bardzo proszę o pomoc. Dokładnie tak jak pisze, jest to obszar RAM-u gdzie zostaje wczytana temperatura, kilka innych bajtów (już teraz nie pamietam jakich)...
Klawiatura od PCta ma byc podpieta pod mikrokontroler 8051 za pomoca ps2. program ma wyswietlac znaki wklepywane z klawiatury na lcd. Jak sobie z tym poradzic??? a wiesz moze dokladnie jaki to byl numer EP?? Z tego co wiem to dane sa przesylane synchronicznie bit startu 8 bitow danych bit parzystosci i bit stopu. chcialem wykorzystac do tego przerwanie...
Problem w tym że to ma być niestety w asemblerze :/, niby żaden problem bo po drugim resecie chodzi ale mnie to wnerwia. Powtarzając całość init. 2 razy okazało się, że wyśw, dalej ma ciemną połowę pól ale zaraz po naciśnięciu przycisku od napisu ten się pojawia i jest wyświetlany normalnie, już zgłupiałem, nie mam pojęcia czemu tak się dzieje. dopisane:...
Problem jest taki: mam wyswietlacz Elatec EL1601A (16 znakow jedna linia), oparty z tego co wiem na kontrolerze KS0066u. Podpiąłem go na 4 (+3) bitach do mikrokontrolera AT90S8515, napisałem swój programik do obsługi (w asemblerze) i odpaliłem. Niestety symbole pojawiły się tylko na pierwszych 8 pozycjach wyswietlacza :|, podczas gdy program ma wyswietlac...
program w ibasic professional instr(x, y) szuka stringu Y w stringu X i zwraca jego index lub zero chr$(x) zmienia liczbę X na znak ascii (string) liczba: string z liczbą do konwersji; tylko cyfry i wielkie litery podstawa: 1-36 print ToDec("157", 8) print ToDec("FFFF", 16) getch() sub ToDec(liczba:STRING,...
Witam :cry: :cry: :cry: nie ukrywam że jest mi ciężko i coraz ciężej na duszy powiem tak nie mogę strawić tego asemblera (a człowiek najbardziej szuka problemu w tym czego nie zna lub nie rozumie ) ale nauczenie się go w ciągu kilku dni to raczej nie możliwe. Powiem szczerze ,pomyślałem tak: - jest schemat ,jest program ,jest kod -myślę pestka więc...
Czesc. Mam problem z odwolywaniem sie posrednio do pamieci w uK AVR. Potrzebuje wyslac na LCD ciag znakow. W tym celu chcialem zapisac w pamieci dane, a nastepnie inkrementowac adres i po kolei dane wyciagac i wysylac na LCD. Powiedzmy ze mam taki program: NAPIS: .DB "HELLO" ; zapisanie danych w pamieci LDI XL,NAPIS ; ustawienie wskaznika do pamieci...
Cóż.. mało wiem o całym urządzeniu, ale proponuję następujące rozwiązanie (rozumiem, że klawiatura przesyła przez RS kod znaku ASCII). ljmp 100h ;skok do poczatku programu org 23h ;wektor odpowiadajacy przerwaniu UART ajmp odbior ;skok do obslugi przerwania org 100h ;poczatek glownego programu mov SCON,#050h ;zaladowanie ustawien do odpowiednich mov...
Problem da sie rozwiazac za pomoca asemblera lub/i przerwan. Osobiscie nigdy nei spotkalem sie z taka funkcja w C. Moze jest cos w bib curses - ale tego tez nie wiem. Gdybys znal adres pamieci pod ktorym przechowywany jest bufor konsoli, mogl bys go odczytac ale pojawiaja sie 2 problemy: 1. jak znalezc ten adres? 2. czy bedziesz mial dostep do tej pamieci?...
Najprościej będzie Ci to wyswietlać w postaci szesnastkowej. 1. Masz wartość w edx, 2. pobierasz ostatnie 4 bity (przesuwając je jednocześnie do początku), 3. konwertujesz tak otrzymaną liczbę na ASCII (0...15 -> '0'...'F'), 4 . wyswietlasz, 5. przesuwasz edx o 4 bity w lewo, 6 jesli nie zostały przesuniete wszystkie bity (8 obiegów pętli) to skocz...
Implementacja jezyka asm w poszczegolnych kompilotorach moze sie roznic np rodzajem znaku okreslajacym adresowanie. Kod jest z TP7.0 i tam dziala napewno tak jak i w VPW32. Problem moze byc tego typu, ze mozesz miec w ustawieniach kompilacje asm 32 bitowego, a tam rejestry nazywaja sie inczej, czyli eax, zamiast ax. Nowe kompilatory sa pisane pod aplikacje...
hmm.... niestety nie bardzo rozumiem co miałoby oznaczać "jaki jest format znaku przy transmisji szeregowej", tzn nie bardzo wiem jakiego znaku
a wiec tak: ( zakładam ze rezonatorek to 11,059200) mov scon,#01000000b ;tryb1 wylaczony odbiornik ;nastepnie ustawiasz timer1 mov tmod,#00100000 ;timer 1 - 8 bit ( GATE = 0, C/T = 0 , M1 = 1 , M0 = 0) mov pcon,#10000000b ; podwajasz predkość transmisji ( bit SMOD = 1 ) ;teraz wpisujesz wartosc do th1 - od tej wartosci zalezy predkość mov th1,#FDh ;FDh...
Jak wyślesz wartość al jako znak też dasz rade odczytać mając tablice kodów ascii, ale najprościej stworzyć napis 'xx',13,10,$ i pod dwa pierwsze znaki wstawić przekodowaną wartość al na liczbe szesnastkową w kodzie ascii.
Tak czy siak - nie zapomniałem o F_CPU. Dodałem też definicję XTAL, ale nie ma wpływu. Jak wstawić do kodu w C fragment asemblera? Wymyśliłem, żeby wstawić pętlę, powiedzmy 255 razy po 255 razy NOP i zmierzyć, jak długo się wykonuje. Powiedziałoby mi to jednoznacznie z jaką prędkością działa układ. Może ktoś ma jakieś doświadczenie z takimi wstawkami...
Ja wyszukalem dodatkowo takie rzeczy. Bardzo dobrze napisane. (opis przerwan dla starych '51) (kurs asemblera, w III wariancie rowniez przerwania) Dzieki za uwage.
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...
Programowałem już w C w basic ale jak wiadomo to to nie to co ten edytor ;) - niestety ;|. Zaczynam przygode nie bo chce ale bo musze. Ogólnie to potrzebuje napisać program, który będzie pobierał z czujnika z magistralą IIC wartość temperatury, i na podstawie wpisanych danych do komputera będzie storował dwoma przekaźnikami grzanie i chłodzenie obiektu....