-
191. Data: 2011-09-18 23:46:09
Temat: Re: Nauka programowania od czego zacząć?
Od: "J.F." <j...@p...onet.pl>
Dnia Fri, 16 Sep 2011 09:08:30 +0200, Zbyszek napisał(a):
> Mam 8 letnią córkę. Chciałbym ją w jakiś sposób zarazić sztuką programowania.
A propos
http://www.simplecodeworks.com/website.html
-
192. Data: 2011-09-19 00:41:19
Temat: Re: Nauka programowania od czego zacząć?
Od: "Remek" <d...@g...com>
Użytkownik "Darek" napisał:
> Asembler ma pewne zalety i to w specyficznych sytuacjach, głównie
> tam gdzie chodzi o szybkość i to pod warunkiem, że koder jest biegły,
> jednak nie te, które strał się kolega powyżej udowodnić.
Twoje opinie są typowe dla ludzi nie znających asma. Takie typowe ble, ble o
nieprzenośności, nieczytelności itp. A co to ma do rzeczy? Asembler to dłuto
rzeźbiarskie, a HL to taśma produkcyjna. I oba te zastosowania mają swoją
specyfikę i przeznaczenie. A Twoja argumentacja mnie osłabia. Programista ma
rozumieć jak działa procesor, a nie jak się dodaje jabłka do koszyka. A
przenośność kodu to miraż. Nie ma przenośnego kodu wynikowego. W pewnym
zakresie może być przenośny kod źródłowy, ale to musi umieć kompilator.
Remek
-
193. Data: 2011-09-19 00:50:03
Temat: Re: Nauka programowania od czego zacząć?
Od: "Remek" <d...@g...com>
Użytkownik "Marcin Wasilewski" napisał:
> > A do rzeczy? Wiesz jak wygląda zmienna w asm i gdzie jest zapisana?
> > Konkretnie.
> LOL, a nie słyszałeś o przechowywaniu często używanych zmiennych w
> rejestrze procesora?
Sam jesteś LOL :) Zrozum o co pytałem. Chodzi o zmienną w ASEMBLERZE. Jasne?
Zmienna jest deklarowana w żródle i jej wartość, oraz adres są w kodzie. Co
nie przeszkadza, jeśli taka potrzeba załadować jej argument, czy adres do
rejestru. Tylko to są dwie różne sprawy.
Remek
-
194. Data: 2011-09-19 00:54:02
Temat: Re: Nauka programowania od czego zacząć?
Od: "Remek" <d...@g...com>
Użytkownik "Marcin Wasilewski" napisał:
> ostatnio gdy miałem do czynienia z assemblerem peceta, to przypominało to
architekturę
> 8-bitowego procesora i się zraziłem.
Jeśli masz na temat asm wiedzę z przed potopu, to postaraj się poduczyć,
albo milcz i nie obrażaj innych. To, że się zraziłeś nie upoważnie Cię do
nazywania mnie epitetami. Po prostu niewiele wiesz o asm.
Remek
-
195. Data: 2011-09-19 08:28:07
Temat: Re: Nauka programowania od czego zacząć?
Od: AlexY <a...@i...pl>
Użytkownik Remek napisał:
[..]
> A coś do rzeczy? Napisałem to z własnego doświadczenia. W UK kilku moich
> znajomych/naprawiaczy RTV znalazło pracę. Inni wyłącznie ze znajomościa
> języka nie.
Podpisuję się wszelakimi kończynami, na rozmowie kwalifikacyjnej jak
babeczka spytała czy umiem obsługiwać oscyloskop to musiała słowo
oscyloskop napisać na kartce bo nie mogłem zidentyfikować wymówionego
przez nią słowa, po sprawdzeniu mnie przez technika robotę dostałem od
ręki na naprawdę niezłych warunkach, i widzę masę polaków po studiach ze
świetnym angielskim pracujących za najniższe stawki na najniższych
stanowiskach przez agencje.
--
AlexY
http://nadzieja.pl/inne/spam.html
http://www.pg.gda.pl/~agatek/netq.html
-
196. Data: 2011-09-19 09:07:47
Temat: Re: Nauka programowania od czego zacząć?
Od: "Darek" <d...@p...onet.pl>
> Twoje opinie są typowe dla ludzi nie znających asma. Takie typowe ble, ble
> o
> nieprzenośności, nieczytelności itp. A co to ma do rzeczy?
a Ty wiesz odnośnie czego odpowiadasz? przeczytaj to coś Ty tutaj narzeźbił
4 odpowiedzi wcześniej. To Ty głosisz bzdury, że asembler jest bardziej
czytelny
od HL i do tego się ustosunkowuje i chyba w tym kontekście ma to wiele do
rzeczy co nie?
>Asembler to dłuto
> rzeźbiarskie, a HL to taśma produkcyjna.
jeżeli coś ma być dłutem rzeźbiarskim to chyba maszynowy.
>I oba te zastosowania mają swoją
> specyfikę i przeznaczenie. A Twoja argumentacja mnie osłabia. Programista
> ma
> rozumieć jak działa procesor, a nie jak się dodaje jabłka do koszyka.
przecież nie ja wymyśliłem ten przykład kolego.
>A
> przenośność kodu to miraż. Nie ma przenośnego kodu wynikowego.
a kto wspominał o przenośności kodu wynikowego? :-)
Ty chyba kod wynikowy utożsamiasz najwyraźniej z asemblerem.
Tylko proszę teraz się nie czepiaj że formalnie to się nazywa język
asemblera a asembler to program produkujący kod maszynowy... ok?
>W pewnym
> zakresie może być przenośny kod źródłowy, ale to musi umieć kompilator.
panie kolego, program napisany w np. C jest w kodzie źródłowym.
Co musi umieć kompilator? Programista znając różnice pomiędzy uC
musi wiedzieć jakich modyfikacji dokonać w programie przed przeniesieniem
a nie kompilator.
definitywnie EOT
-
197. Data: 2011-09-19 10:35:33
Temat: Re: Nauka programowania od czego zacząć?
Od: "Marcin Wasilewski" <j...@a...pl>
Użytkownik "Remek" <d...@g...com> napisał w wiadomości
news:j563sb$o9o$2@inews.gazeta.pl...
> Użytkownik "Marcin Wasilewski" napisał:
> Sam jesteś LOL :) Zrozum o co pytałem. Chodzi o zmienną w ASEMBLERZE.
> Jasne? Zmienna jest deklarowana w żródle i jej wartość, oraz adres są w
> kodzie. Co nie przeszkadza, jeśli taka potrzeba załadować jej argument,
> czy adres do rejestru. Tylko to są dwie różne sprawy.
> Remek
Nie, zmienna w assemblerze to jest przechowywana wartość - tyle i tylko
tyle. W jaki sposób sobie jej przechowywanie rozwiążesz, to jest tylko twoja
sprawa.
W assemblerze nie ma zmiennych w rozumieniu np. języka C, są tylko
etykiety, bloki pamięci i wartości wpisane do pamięci. Jeśli sądzisz inaczej
to powiedz mi w jaki sposób w assemblerze deklaruje się zmienną, zmienia jej
wartość, czy też zmienia jej typ z poziomu kodu źródłowego. To wszystko o
czym piszesz to są przechowywane wartości pod określonym adres pamięci, dla
uproszczenia oznaczane etykietą, a nie określonym adresem. Nic nie stoi na
przeszkodzie aby dla danego adresu pamięci nadać kilka etykiet, lub też nie
nadawać ich wcale i odwoływać się bezpośrednio do komórki pamięci.
Assembler to język, który za pomocą skrótów literowych symbolizuje
instrukcje kodu maszynowego procesora. Jeśli sprzęt nie obsługuje zmiennych
(cokolwiek to jest) to i assembler tego nie robi.
-
198. Data: 2011-09-19 10:53:49
Temat: Re: Nauka programowania od czego zacząć?
Od: "Marcin Wasilewski" <j...@a...pl>
Użytkownik "Remek" <d...@g...com> napisał w wiadomości
news:j563sb$o9o$3@inews.gazeta.pl...
> Użytkownik "Marcin Wasilewski" napisał:
> Jeśli masz na temat asm wiedzę z przed potopu, to postaraj się poduczyć,
> albo milcz i nie obrażaj innych. To, że się zraziłeś nie upoważnie Cię do
> nazywania mnie epitetami. Po prostu niewiele wiesz o asm.
To pokaż mi w tym assemblerze np. pętlę for?
Assembler to język symbolizujący mnemonikami instrukcje kodu maszynowego
wykonywane bezpośrednio przez procesor. Podstawową cechą assemblera jest
zasada, że 1 instrukcja assemblera = 1 kod maszynowy procesora. To, że
gdzieś wprowadzono jakieś kombajny i uproszczenia, pozwalające się mniej
napisać, to jeszcze nie znaczy, że to czysty assembler.
Raczej to ty niewiele wiesz, co to assembler, dorwałeś się do jakiegoś
kombajna pod windows posiadającego tysiące udogodnień i wydaje Ci się, że to
assembler. Czysty assembler to zasada:
1 instrukcja = 1 kod maszynowy procesora.
Jeśli jest inaczej, to to nie jest assembler, a coś pośredniego pomiędzy
assemblerem a językami wyższego poziomu.
-
199. Data: 2011-09-19 11:11:12
Temat: Re: Nauka programowania od czego zacząć?
Od: "Remek" <d...@g...com>
Użytkownik "Marcin Wasilewski" napisał:
> Nie, zmienna w assemblerze to jest przechowywana wartość - tyle i tylko
> tyle.
Pisałeś coś w asm pod Windows?Kiedy i na jakim poziomie?
> W assemblerze nie ma zmiennych w rozumieniu np. języka C, są tylko
> etykiety, bloki pamięci i wartości wpisane do pamięci.
Mylisz pojęcia. Definicje zmiennych:
.data ; zmienne z przypisanymi wartościami
Bufor1 db 16 dup(0)
Bufor2 db 16 dup(0)
Len dd 0
.data? ; zmienne bez przypisanej początkowej
wartości
hInstance HINSTANCE ?
Hwnd dd ?
.const ; stałe
Button1ID equ 33
Button2ID equ 34
.code
start: ; etykieta
invoke GetModuleHandleA, 0
mov hInstance, eax
call WinMain
invoke ExitProcess, 0
..............
messag: ; etykieta
invoke MessageBox, hWnd, addr Tekst2, addr Tytul2, MB_OK
invoke SetFocus, hEdit1
lea esi, Bufor1 ; pobranie adresu zmiennej (!) Load
Effective Address.
> przeszkodzie aby dla danego adresu pamięci nadać kilka etykiet, lub też
nie
> nadawać ich wcale i odwoływać się bezpośrednio do komórki pamięci.
No i co ma z tego wynikać? Że w asm nie ma zmiennych i na dodatek nie mają
adresów?
Remek
-
200. Data: 2011-09-19 11:50:01
Temat: Re: Nauka programowania od czego zacząć?
Od: Michoo <m...@v...pl>
W dniu 19.09.2011 13:11, Remek pisze:
> Użytkownik "Marcin Wasilewski" napisał:
>
>> Nie, zmienna w assemblerze to jest przechowywana wartość - tyle i tylko
>> tyle.
>
> Pisałeś coś w asm pod Windows?Kiedy i na jakim poziomie?
>
>> W assemblerze nie ma zmiennych w rozumieniu np. języka C, są tylko
>> etykiety, bloki pamięci i wartości wpisane do pamięci.
>
> Mylisz pojęcia.
Mylisz pojęcia.
> Definicje zmiennych:
Definicje ciągów bajtów w różnych sekcjach i ewentualnie, zależnie od
argumentów kompilacji symboli linkera (które nie są częścią assemblera).
>
> .data ; zmienne z przypisanymi wartościami
Zmienna to twór logiczny - powiązanie kontekstu z wartością.
> No i co ma z tego wynikać? Że w asm nie ma zmiennych i na dodatek nie mają
> adresów?
A widzisz różnicę pomiędzy assemblerem a makroassemblerem?
Ztcw przyjmuje się, że assembler operuje na mnemonikach rozkazów
procesora - coś więcej to już są makropolecenia.
Np wszystkie etykiety zostaną (zarówno danych jak i kodu) zostaną na
etapie assemblacji (a najdalej linkowania) zamienione na adresy/offset
zależnie od kontekstu - bo one tylko tym są, a etykieta jest dla
ułatwienia życia programiście. Natomiast makra zostaną rozwinięte etap
wcześniej - np invoke na odłożenie argumentów na stos+call, tak samo
pętla - oidp (trochę już nie pisałem w MASM) możesz ten kod spokojnie
obejrzeć.
--
Pozdrawiam
Michoo