| Author |
Message
|
kropek1985 Poziom 10

Joined: 11 Aug 2004 Posts: 47 Location: Ruda Śląska
|
#1
09 Nov 2004 10:53 wstawki assemblerowe w bascomie |
|
|
|
witam! chyba wszyscy, którzy programowali kiedyś w bascomie wiedzą jak dużo pamięci zżerają programy napisane w tym języku. jednak w bascomie można robić wstawki assemblerowe. czy program skladający się z poleceń bascoma i wstawek assemblerowych będzie zajmował mniej miejsca niż taki sam program napisany tylko w bascomie??
|
|
| Back to top |
|
 |
Google

|
#
09 Nov 2004 10:53 |
|
|
|
|
|
| Back to top |
|
 |
Robot_ Poziom 16

Joined: 03 Jun 2004 Posts: 277 Location: Zabrzeg
|
#2
09 Nov 2004 11:11 Re: wstawki assemblerowe w bascomie |
|
|
|
Witam,
to zalezy jeśli użyjesz asemblera do niektorych funkcji to roznica powinna byc zauwazalna, natomiast w niektorych przypadkach niektóre komendy są bezpośrednio tłumaczone na asemblera i zysku nie będzie.
Pozdrawiam
|
|
| Back to top |
|
 |
LordBlick Poziom 23

Joined: 31 Aug 2004 Posts: 3685 Location: Słupsk
|
#3
09 Nov 2004 14:57 Re: wstawki assemblerowe w bascomie |
|
|
|
| Robot_ wrote: |
Witam,
to zalezy jeśli użyjesz asemblera do niektorych funkcji to roznica powinna byc zauwazalna, natomiast w niektorych przypadkach niektóre komendy są bezpośrednio tłumaczone na asemblera i zysku nie będzie. |
W każdym wypadku instrukcje Bascoma są tłumaczone na instrukcje asemblera, na tym polega standardowa kompilacja na język zrozumiały dla procesora. A zysk pisania w asemblerze (szybkość i mała objetość) pojawi się nie z faktu jego zastosowania, tylko "z powodu" dobrze napisanego kodu. Asembler to są po prostu drobniejsze klocki, a Bascom ma część tych klocków poskładane w własne polecenia, przez co do jednych zastosowań się one nadają zupełnie dobrze, a do innych trzeba szukac wydajniejszego sposobu poprzez umiejętne napisanie procedurki w asm. Pisząc procedurkę w asemblerze, można ją napisać na wiele sposobów, a najkorzystniejszy jest taki że np. 3 polecenia razem pełnią jednocześnie 5 funkcji potrzebnych w algorytmie. W końcu to odpowiednio wytrenowany mózg powinien być lepszym kompilatorem kodu, niż jakikolwiek kompilator języka wyższego poziomu, który ma tylko z góry zaprogramowaną ilość możliwych rozwiązań. Inna sprawa, to to, że myślenie też zajmuje sporo czasu, czasem lepiej poszukać na internecie, to nad czym myśleli już inni... :)
Pozdrawiam, LightI
|
|
| Back to top |
|
 |
Google

|
#
09 Nov 2004 14:57 |
|
|
|
|
|
| Back to top |
|
 |
kozak_sc Poziom 19

Joined: 29 Dec 2002 Posts: 635 Location: Sosnowiec
|
#4
10 Nov 2004 18:35 Re: wstawki assemblerowe w bascomie |
|
|
|
ja wszystko pisze w asmie juz porzucilem na szczescie bascoma. ale wstawki kiedys stosowalem. ale powracajac do pytania kolegi bo jak do tej powy nikt nie odpowiedzial wiec tak
mozna bezposrednio stosowac rozkazy asmowe w bascomie ale lepiej uzyc deklaracji :
$asm
tu program w asmie
$end asm
|
|
| Back to top |
|
 |
bobeer Poziom 20

Joined: 25 Aug 2001 Posts: 1011 Location: NowyTarg
|
#5
11 Nov 2004 02:14 Re: wstawki assemblerowe w bascomie |
|
|
|
wlasciwie to procedury o ktorych napisales sa najbardziej pamieciochlonne
bardzo jeste ciekawy co tez robil i jak byl napsiany ten program w bascomie ze az 45% roznicy miedzy asm ??
czy to byl aby nie avr ??
|
|
| Back to top |
|
 |
Google

|
#
11 Nov 2004 02:14 |
|
|
|
|
|
| Back to top |
|
 |
kordirko Poziom 16

Joined: 13 Feb 2003 Posts: 300 Location: Mysłowice
|
#6
11 Nov 2004 04:03 Re: wstawki assemblerowe w bascomie |
|
|
|
| kropek1985 wrote: |
| czy program skladający się z poleceń bascoma i wstawek assemblerowych będzie zajmował mniej miejsca niż taki sam program napisany tylko w bascomie?? |
Będzie zajmował mniej miejca.
Najwięcej możesz zaoszczędzisz zastępując pętle i IF-y
a także dodawanie/odejmowanie na zmiennych dwubajtowych.
Mnie się udawało zbić 20-30% kodu jak próbowałem się zmieścić w 4K kodu.
Tylko że źródła stają się mało przejrzyste, ciężko się to testuje
i w cholerę czasu to zajmuje.
Ale jak się kiedyś przesiadałem się na C to w ramach treningu przepisałem ten programik do C i byłem w szoku - tam gdzie w BASOMIE ze wstawkami
nie mogłem się pomieścić w 4K, to w C kod wyszedł mi poniżej 3K
|
|
| Back to top |
|
 |
bobeer Poziom 20

Joined: 25 Aug 2001 Posts: 1011 Location: NowyTarg
|
#7
13 Nov 2004 02:05 Re: wstawki assemblerowe w bascomie |
|
|
|
tylko czy warto sie tak meczyc skoro mamy 51ki do 64kb romu ?
(szkoda ze malych 4051 niema z wiekszym romem narazie )
a avr to co mega to wiecej ?
jusz keidys o tym chyba wspominalem
jedyna zrozumiala przezemnie optymalizacja (przesiadka na asm) to pod wzgledem czasu:
szybkosci
dokladnosci
|
|
| Back to top |
|
 |
kozak_sc Poziom 19

Joined: 29 Dec 2002 Posts: 635 Location: Sosnowiec
|
#8
13 Nov 2004 11:03 Re: wstawki assemblerowe w bascomie |
|
|
|
myslicie tak samo jak programisci komputerowi : po co optymalizowac programy ?? lepiej niech ktos kupi sobie nowego procka wiecej ramu itd.. jeszcze ktos inny na szarym czlowieczku dodatkowo zarobi ....................ludzie to jest chore wiekszosc programow na kompa po zoptymalizowaniu chodzila by na 486 !!!!
ja kiedys pisalem w bascomie potem zaczalem robic wstawki asmowe to juz duzo dawalo ale pisanie w czystym asmie daje o wiele wicej. przedgladal ktos kiedys pierwsze 100 bajtow kodu skapilowanego w bascomie ????
org 0
;
ljmp X00c1
;
reti
;
org 0bh
;
reti
;
org 13h
;
reti
;
org 1bh
;
reti
;
org 23h
;
reti
;
org 2bh
;
reti
;
org 43h
;
reti
;
org 4bh
;
reti
;
org 53h
;
reti
;
org 5bh
;
reti
;
org 63h
;
reti
;
org 6bh
;
reti
;
org 7bh
;
reti
;
org 8bh
;
reti
;
org 93h
;
reti
;
org 0a3h
;
reti
;
org 0abh
;
reti
;
org 0aeh
no i niech mi ktos teraz zarzuci ze to nie jest marnotrawstwo ?? jak czesto korzystamy z kazdego przerwania ?? niezmiernie zadko.
|
|
| Back to top |
|
 |
bobeer Poziom 20

Joined: 25 Aug 2001 Posts: 1011 Location: NowyTarg
|
#9
13 Nov 2004 21:02 wstawki assemblerowe w bascomie |
|
|
|
godekm masz racje w 100%, choc niepodales konkretnego przykladu tego magicznie odchudzonego programu.
Umiejetnie piszac w bascomie mozna rowniez duzo zaoszczedzic
do kozaksc:
nawet jesli zostanie ci troche miejsca miedzy wektorami to nie wiem czy tak fajnie umieszczac tam fragmenty kodu ?
|
|
| Back to top |
|
 |
kozak_sc Poziom 19

Joined: 29 Dec 2002 Posts: 635 Location: Sosnowiec
|
#10
14 Nov 2004 13:37 Re: wstawki assemblerowe w bascomie |
|
|
|
| bobeer wrote: |
nawet jesli zostanie ci troche miejsca miedzy wektorami to nie wiem czy tak fajnie umieszczac tam fragmenty kodu ? |
nie - ale jezeli kozystasz tylko z przerwania np int0 a z innych nie to program moze ci sie zaczynac od adresu pod ktorym w jest umiezczona obsluga kolejnego przerwania co daje ci juz troche miejsca a chyba nie zbyt czest korzystasz z wielu przerwan w je3dnym programie.
|
|
| Back to top |
|
 |
Xitami Poziom 21

Joined: 10 Aug 2004 Posts: 1126 Location: Gliwice
|
#11
14 Nov 2004 14:07 wstawki assemblerowe w bascomie |
|
|
|
Teoretycznie jest możliwe na etapie kompilacji stwierdzenie które przerwania będą odblokowane, ale tylko teoretycznie, kompilator musiał by przeprowadzić symulację działania programu, można by w zasadzie zrezygnować z wstawiania takiego „bezpiecznika” (instrukcji RETI) dla każdego możliwego poza jawnie wskazanymi, idę o zakład że w wielu przypadkach programy w Bascomie wykonują taki „dziwne” przerwania, a że to nie szkodzi to nawet nie jest zauważane.
|
|
| Back to top |
|
 |
Google

|
#
14 Nov 2004 14:07 |
|
|
|
|
|
| Back to top |
|
 |
kozak_sc Poziom 19

Joined: 29 Dec 2002 Posts: 635 Location: Sosnowiec
|
#12
14 Nov 2004 15:53 Re: wstawki assemblerowe w bascomie |
|
|
|
moze ty tego nie zauwazasz ale czas wykonywania programu rosnie i ni jest mozliwe w bascomie wygenerowanie precyzyjnego przebiegu w czasie.
|
|
| Back to top |
|
 |