Goto page 1, 2 Next
Thomek
Guest
Sun Sep 26, 2004 8:45 pm
Tak sobie wlasnie przepisuje procedurki na asm i nadszedl szalony pomysl.
Jak mikroprocesor zareaguje na taki oto kod?? Niestety nie moge sprawdzic
:-/.
Oczywiscie wykorzystuje zerowy bank rejestrow.
mov r0, #0
mov @r0, 0
Pozdrawiam
Thomek
Pszemol
Guest
Sun Sep 26, 2004 11:08 pm
"Thomek" <lipin@usunto.poczta.fm> wrote in message news:cj7dah$kto$1@news.onet.pl...
Quote:
Tak sobie wlasnie przepisuje procedurki na asm i nadszedl szalony pomysl.
Jak mikroprocesor zareaguje na taki oto kod?? Niestety nie moge sprawdzic
:-/.
Oczywiscie wykorzystuje zerowy bank rejestrow.
mov r0, #0
MOV RN,#data Move immediate data to register (12xclk)
Czyli wyzeruje pierwszy rejestr zużywając na to 12 taktów zegara.
Quote:
mov @r0, 0
MOV @Ri,direct Move direct byte to indirect RAM (24xclk)
Czyli w Twoim przypadku, odczyta to co w zerze i wpisze pod adres zero.
Na mój gust, te dwie instrukcje to tylko zmarnowane 36 taktów zegara.
Być może celowo wprowadzone opóźnienie wykonania następnych instrukcji?
Ale w 8051 asemblerze już daaaawno się nie bawiłem - może to jakiś myk?
AlexY
Guest
Mon Sep 27, 2004 3:00 pm
Użytkownik Pszemol napisał:
[..]
Quote:
Na mój gust, te dwie instrukcje to tylko zmarnowane 36 taktów zegara.
Być może celowo wprowadzone opóźnienie wykonania następnych instrukcji?
Ale w 8051 asemblerze już daaaawno się nie bawiłem - może to jakiś myk?
tylko z pozoru moze to wygladac na kruczek, w rzeczywistosci jest jak
napisales, rownie "nielogiczne" jest polecenie x=x+1
Pszemol
Guest
Mon Sep 27, 2004 3:55 pm
"AlexY" <alexy@irc.-cut_this-.pl> wrote in message news:cj9dkj$q62$1@nemesis.news.tpi.pl...
Quote:
Użytkownik Pszemol napisał:
[..]
Na mój gust, te dwie instrukcje to tylko zmarnowane 36 taktów zegara.
Być może celowo wprowadzone opóźnienie wykonania następnych instrukcji?
Ale w 8051 asemblerze już daaaawno się nie bawiłem - może to jakiś myk? :-)
tylko z pozoru moze to wygladac na kruczek, w rzeczywistosci jest jak napisales, rownie "nielogiczne" jest polecenie x=x+1
momencik... x=x+1 to jest inkrementacja wartości x o 1...
nie widzę tu niczego nielogicznego
Natomiast przepisanie wartości do tej samej komórki pamięci
z której ta wartość została właśnie odczytana to jakby długi NOP.
Nawiasem mówiąc, w niektórych procesorach nie ma specjalnej instrukcji
NOP tylko do tych celów właśnie wykorzystuje się takie kombinacje
rozkazów które nie robią nic, np. w procesorach MIPS za NOPa robi zdaje
się wpisanie zera do rejestru zerowego (w którym i tak zawsze jest zero).
Albo operacja typu "AND A,A"
Thomek
Guest
Mon Sep 27, 2004 5:10 pm
Quote:
mov r0, #0
mov @r0, 0
Na mój gust, te dwie instrukcje to tylko zmarnowane 36 taktów zegara.
Być może celowo wprowadzone opóźnienie wykonania następnych instrukcji?
Ale w 8051 asemblerze już daaaawno się nie bawiłem - może to jakiś myk?

Tak sie wlasnie zastanawialem co sie stanie szkoda ze nie moge sprawdzic
tego.
Pewnie nic czyli w r0 nadal bedzie 0. Hmm a pytanie zadalem troche z nudow i
czystej ciekawosci.
Pozdrawiam
Thomek
Thomek
Guest
Mon Sep 27, 2004 5:13 pm
Quote:
Tak sie wlasnie zastanawialem co sie stanie szkoda ze nie moge sprawdzic
tego.
Pewnie nic czyli w r0 nadal bedzie 0. Hmm a pytanie zadalem troche z nudow
i
czystej ciekawosci.
Pozdrawiam
Thomek
Ok ;] Toche za wczenie wyslalem zanim hamster sciagnal inne wiadomosci.
Dla mnie to jakies dziwne jednak kopiowac z tej samej komorki do tej samej
dobrze wiedziec ze to dziala.
Pozdrawiam
Thomek
Pszemol
Guest
Mon Sep 27, 2004 5:50 pm
"Thomek" <lipin@usunto.poczta.fm> wrote in message news:cj9l9d$mq0$1@news.onet.pl...
Quote:
Ok ;] Toche za wczenie wyslalem zanim hamster sciagnal inne wiadomosci.
Dla mnie to jakies dziwne jednak kopiowac z tej samej komorki do tej
samej dobrze wiedziec ze to dziala.
Dlaczego ma nie działać? Przecież komputer to nie jest inteligentna
maszyna - robi co się mu każe... To programista, układając kod programu
ma wiedzieć co program robi... Jeśli programista ułoży kod tak, aby
cały czas procesor mozolnie wyciągał z adresu zero wartość i pod ten
sam adres zero ją pakował, to procesor posłusznie i bez ględzenia
będzie wykonywał te rozkazy, mimo iż ani sensu w tym nie ma, ani
żadnego pożytku... Ale przecież procesor "nie wie" co ma sens a co
go nie ma - to maszyna która wykonuje rozkazy, nie zadaje przy tym
zbędnych pytań, nie męczy się, nie będzie znużony - o to właśnie chodzi.
AlexY
Guest
Tue Sep 28, 2004 12:06 pm
Użytkownik Pszemol napisał:
Quote:
"AlexY" <alexy@irc.-cut_this-.pl> wrote in message
news:cj9dkj$q62$1@nemesis.news.tpi.pl...
[..]
tylko z pozoru moze to wygladac na kruczek, w rzeczywistosci jest jak
napisales, rownie "nielogiczne" jest polecenie x=x+1
momencik... x=x+1 to jest inkrementacja wartości x o 1...
nie widzę tu niczego nielogicznego
dobrze ze dodales usmieszek bo bym se pomyslal
dla niezorientowanych - matematyk by dostal szalu :)
Quote:
Natomiast przepisanie wartości do tej samej komórki pamięci
z której ta wartość została właśnie odczytana to jakby długi NOP.
Nawiasem mówiąc, w niektórych procesorach nie ma specjalnej instrukcji
NOP tylko do tych celów właśnie wykorzystuje się takie kombinacje
[..]
osobiscie z takimi sie dotad nie spotkalem, zapewne za malo ich
rozgryzalem
Pszemol
Guest
Tue Sep 28, 2004 12:41 pm
"AlexY" <alexy@irc.-cut_this-.pl> wrote in message news:cjbnrj$aa0$1@nemesis.news.tpi.pl...
Quote:
Użytkownik Pszemol napisał:
"AlexY" <alexy@irc.-cut_this-.pl> wrote in message news:cj9dkj$q62$1@nemesis.news.tpi.pl...
[..]
tylko z pozoru moze to wygladac na kruczek, w rzeczywistosci jest jak napisales, rownie "nielogiczne" jest polecenie x=x+1
momencik... x=x+1 to jest inkrementacja wartości x o 1...
nie widzę tu niczego nielogicznego :-)
dobrze ze dodales usmieszek bo bym se pomyslal
dla niezorientowanych - matematyk by dostal szalu
Powtarzam, tym razem całkowicie poważnie - tu nie ma nic
nielogicznego. Operator '=' w języku C nie jest operatorem
równości, jest operatorem PRZYPISANIA wartości zmiennej...
Matematyk żaden nie dostałby szału, tylko zapytałby czy
przypadkiem operator '=' w tym zapisie nie oznacza czegoś
innego niż w "normalnej" matematyce...
Weź pod uwagę, że języki programowania komputerów mają
niewiele wspólnego z zapisami matematycznymi...
W szczególności, w języku C++, możesz sobie dowolnie
definiować operatory, i dla np. klasy obiektów jakiegoś
typu dowolny operator zdefiniować sobie aby znaczył
cokolwiek Ci przyjdzie do głowy... Free up your mind!
J.F.
Guest
Tue Sep 28, 2004 1:58 pm
On Tue, 28 Sep 2004 15:06:45 +0200, AlexY wrote:
Quote:
Natomiast przepisanie wartości do tej samej komórki pamięci
z której ta wartość została właśnie odczytana to jakby długi NOP.
[..]
osobiscie z takimi sie dotad nie spotkalem, zapewne za malo ich
rozgryzalem
Tu zasadniczo nie ma nic nadzwyczajnego. instrukcje wykonujemy
cyklicznie, dana zostanie pobrana, i potem zapisana, problemow
nie ma.
w '51 jest pare rozkazow ktore moglyby budzic watpliwosci:
INC @R0 .. gdy R0 zawiera 0
XCH/XCHD A,@R0 .. . gdy R0 zawiera 0
XRL A,ACC
POP SP
PUSH SP
POP/PUSH gdy SP jest ustawiony .. na SP..
J.
AlexY
Guest
Tue Sep 28, 2004 2:49 pm
Użytkownik Pszemol napisał:
[..]
Quote:
Weź pod uwagę, że języki programowania komputerów mają
niewiele wspólnego z zapisami matematycznymi...
wiem to doskonale, niemniej gdy zglebialem tajniki BASIC'a na timex'ie
mialem problemy ze zrozumieniem takiego "dzialania matematycznego" za co
wowczas to bralem. i osoby nie myslace dwojkowo rowniez nad tym sie
dluzej zastanowia o co w tym zapisie chodzi
[..]
AlexY
Guest
Tue Sep 28, 2004 3:19 pm
Użytkownik J.F. napisał:
Quote:
w '51 jest pare rozkazow ktore moglyby budzic watpliwosci:
oto co zrobil symulator:
Quote:
INC @R0 .. gdy R0 zawiera 0
R0=01
Quote:
XCH/XCHD A,@R0 .. . gdy R0 zawiera 0
dla XCH zawartosc A i R0 zostaja zamienione
dla XCHD mlodsze 4 bity A i R0 zostaly zamienione
Quote:
XRL A,ACC
zeruje akumulator
Quote:
POP SP
jesli pod adresem 81h jest ram to powinno zadzialac, moj symulator sie
wylozyl na tym
"Wrong internal RAM address"
Quote:
PUSH SP
jak wyzej
> POP/PUSH gdy SP jest ustawiony .. na SP..
Pszemol
Guest
Tue Sep 28, 2004 3:31 pm
"AlexY" <alexy@irc.-cut_this-.pl> wrote in message news:cjc1c1$adu$1@nemesis.news.tpi.pl...
Quote:
Użytkownik Pszemol napisał:
[..]
Weź pod uwagę, że języki programowania komputerów mają
niewiele wspólnego z zapisami matematycznymi...
wiem to doskonale, niemniej gdy zglebialem tajniki BASIC'a na timex'ie mialem problemy ze zrozumieniem takiego "dzialania
matematycznego" za co wowczas to bralem. i osoby nie myslace dwojkowo rowniez nad tym sie dluzej zastanowia o co w tym zapisie
chodzi
[..]
Ja w ogóle nie wiedziałem o co Ci chodzi jak pierwszy raz to
napisałeś właśnie dlatego, że od razu mi się to odczytało
w głowie jako operacja przypisania a nie przyrównania
RoMan Mandziejewicz
Guest
Tue Sep 28, 2004 5:08 pm
Hello Piotrek,
Tuesday, September 28, 2004, 6:33:48 PM, you wrote:
Quote:
wiem to doskonale, niemniej gdy zglebialem tajniki BASIC'a na timex'ie
mialem problemy ze zrozumieniem takiego "dzialania matematycznego" za co
wowczas to bralem. i osoby nie myslace dwojkowo rowniez nad tym sie
dluzej zastanowia o co w tym zapisie chodzi
W Spectrun(Timexi) pisało sie:
Let x=x+1
co ja rozumiałem jako :Niech x= tylo co w nim jest i do tego dodaj jeszcze 1
He he he.To były czasy
To były wspaniałe czasy. Dyskutowało się o wyższości Commodore na
Spectrum i na odwrót. I oba stronnictwa mniej więcej zgodnie psioczyły
na Atari 800 ;-)
--
Best regards,
RoMan mailto:roman@pik-net.pl
Pszemol
Guest
Tue Sep 28, 2004 5:17 pm
"RoMan Mandziejewicz" <roman@pik-net.pl> wrote in message news:1906624585.20040928200808@pik-net.pl...
Quote:
To były wspaniałe czasy. Dyskutowało się o wyższości Commodore na
Spectrum i na odwrót. I oba stronnictwa mniej więcej zgodnie psioczyły
na Atari 800
Chyba coś ci sie pomyliło... ZX Spectrum nie miało szans ani
do Commodore ani do Atari 800. Święte wojny były miedzy Atarowcami
i Commodorowcami... Spectrumowcy zawsze byli w tyle
Goto page 1, 2 Next