Thread View: pl.comp.lang.asm
8 messages
8 total messages
Started by Solaris
Mon, 16 Apr 2007 12:50
8051, porównanie
Author: Solaris
Date: Mon, 16 Apr 2007 12:50
Date: Mon, 16 Apr 2007 12:50
24 lines
1186 bytes
1186 bytes
Czy istnieje jakaś funkcja do porównania dwóch liczb w 8051? W sensie czy równe? Zawsze mogę zrobić coś w stylu: PUSH A SUBB A, B CJNE A, #0, ROZNE JMP ROWNE ROZNE: POP A ... ROWNE: POP A ... Ale to bezzsensowne.. -- Born to raise hell. Linux registered user: 408584 Contact: GG#3802676, solaris#idns.pl 19:16:28 -!- Platyna Erroneous Nickname
Re: 8051, porównanie
Author: Solaris
Date: Mon, 16 Apr 2007 13:06
Date: Mon, 16 Apr 2007 13:06
23 lines
1357 bytes
1357 bytes
Dnia Mon, 16 Apr 2007 14:50:23 +0200, jakże pięknego
Solaris <solaris@be.inspired> wystukał co zawarte poniżej:
:: Czy istnieje jakaś funkcja do porównania dwóch liczb w 8051? W sensie czy równe?
CJNE A, #data, rozne
rowne:
SJMP dalej
rozne:
SJMP dalej
dalej:
SJMP $
To powinno przejść?
--
Born to raise hell.
Linux registered user: 408584
Contact: GG#3802676, solaris#idns.pl
19:16:28 -!- Platyna Erroneous Nickname
Re: 8051, porównanie
Author: Bernard
Date: Mon, 16 Apr 2007 17:27
Date: Mon, 16 Apr 2007 17:27
24 lines
1287 bytes
1287 bytes
Solaris wrote: > Czy istnieje jakaś funkcja do porównania dwóch liczb w 8051? W sensie czy równe? Funkcja może i istnieje, ale zapewne pytasz o instrukcję, prawda? > Zawsze mogę zrobić coś w stylu: > > PUSH A > SUBB A, B > CJNE A, #0, ROZNE > JMP ROWNE > > ROZNE: > POP A > ... > > ROWNE: > POP A > ... > > Ale to bezzsensowne.. Istotnie bezsensowne. Zastanowiłeś się przypadkiem, co ozancza nazwa CJNE? Sprawdź i pomyśl...
Re: 8051, porównanie
Author: Solaris
Date: Mon, 16 Apr 2007 18:04
Date: Mon, 16 Apr 2007 18:04
36 lines
1870 bytes
1870 bytes
Dnia Mon, 16 Apr 2007 19:27:00 +0200, jakże pięknego Bernard <bernard@earth.net> wystukał co zawarte poniżej: :: Solaris wrote: :: > Czy istnieje jakaś funkcja do porównania dwóch liczb w 8051? W sensie czy równe? :: :: Funkcja może i istnieje, ale zapewne pytasz o instrukcję, prawda? Funkcja tak, instrukcja nie. :: > Zawsze mogę zrobić coś w stylu: :: > :: > PUSH A :: > SUBB A, B Odejmuje A od B :: > CJNE A, #0, ROZNE Jeżeli A jest 0 to znaczy, że dwie liczby czyli ta w A i B są takie same. Co daje wynik 0. W takim razie, jeżeli CJNE (Compare Jump NOT Zero) skacze do ROZNE. :: > JMP ROWNE :: > Ale to bezzsensowne.. :: :: Istotnie bezsensowne. Zastanowiłeś się przypadkiem, co ozancza nazwa :: CJNE? Sprawdź i pomyśl... Tak wiem co oznacza. To wymyśl coś lepszego. -- Born to raise hell. Linux registered user: 408584 Contact: GG#3802676, solaris#idns.pl 19:16:28 -!- Platyna Erroneous Nickname
Re: 8051, porównanie
Author: Solaris
Date: Mon, 16 Apr 2007 18:09
Date: Mon, 16 Apr 2007 18:09
12 lines
1395 bytes
1395 bytes
Dnia Mon, 16 Apr 2007 20:04:36 +0200, jakże pięknego
Solaris <solaris@be.inspired> wystukał co zawarte poniżej:
:: Co daje wynik 0. W takim razie, jeżeli CJNE (Compare Jump NOT Zero) skacze do ROZNE.
^^ Equal
--
Born to raise hell.
Linux registered user: 408584
Contact: GG#3802676, solaris#idns.pl
19:16:28 -!- Platyna Erroneous Nickname
Re: 8051, porównanie
Author: Solaris
Date: Mon, 16 Apr 2007 18:37
Date: Mon, 16 Apr 2007 18:37
17 lines
1296 bytes
1296 bytes
Dnia Mon, 16 Apr 2007 14:50:23 +0200, jakże pięknego Solaris <solaris@be.inspired> wystukał co zawarte poniżej: :: Czy istnieje jakaś funkcja do porównania dwóch liczb w 8051? W sensie czy równe? Dobra już wiem co i jak... CJNE A, #x, nierówne ..rowne.. Czyli tylko to wystarczyło ;-) -- Born to raise hell. Linux registered user: 408584 Contact: GG#3802676, solaris#idns.pl 19:16:28 -!- Platyna Erroneous Nickname
Re: 8051, porównanie
Author: Bernard
Date: Mon, 16 Apr 2007 22:20
Date: Mon, 16 Apr 2007 22:20
39 lines
2112 bytes
2112 bytes
Solaris wrote: > Dnia Mon, 16 Apr 2007 19:27:00 +0200, jakże pięknego > :: > Czy istnieje jakaś funkcja do porównania dwóch liczb w 8051? W sensie czy równe? > :: > :: Funkcja może i istnieje, ale zapewne pytasz o instrukcję, prawda? > > Funkcja tak, instrukcja nie. > > :: > Zawsze mogę zrobić coś w stylu: > :: > > :: > PUSH A > :: > SUBB A, B > > Odejmuje A od B I jeszcze przeniesienie, o czym zapomniałeś. > :: > CJNE A, #0, ROZNE > > Jeżeli A jest 0 to znaczy, że dwie liczby czyli ta w A i B są takie same. > Co daje wynik 0. W takim razie, jeżeli CJNE (Compare Jump NOT Zero) skacze do ROZNE. > > :: > JMP ROWNE > > > :: > Ale to bezzsensowne.. > :: > :: Istotnie bezsensowne. Zastanowiłeś się przypadkiem, co ozancza nazwa > :: CJNE? Sprawdź i pomyśl... > > Tak wiem co oznacza. To wymyśl coś lepszego. Problem w tym, że NIC nie trzeba wymyślać, a Tobie nie chce się ani czytać, ani myśleć. CJNE - to PORóWNAJ i skocz jeśli różne. Ta instrukcja porwnuje (np. A z czymkolwiek, chociażby B), a więc NIC nie musisz wcześniej odejmować. Po prostu CJNE A, B, nierówne ; a tu lądujemy jeśli było równe.
Re: 8051, porównanie
Author: Solaris
Date: Tue, 17 Apr 2007 13:52
Date: Tue, 17 Apr 2007 13:52
22 lines
1796 bytes
1796 bytes
Dnia Tue, 17 Apr 2007 00:20:20 +0200, jakże pięknego Bernard <bernard@earth.net> wystukał co zawarte poniżej: :: Problem w tym, że NIC nie trzeba wymyślać, a Tobie nie chce się ani :: czytać, ani myśleć. CJNE - to PORóWNAJ i skocz jeśli różne. Ta :: instrukcja porwnuje (np. A z czymkolwiek, chociażby B), a więc NIC nie :: musisz wcześniej odejmować. Nie, poprostu ktoś mi wkręcił że CJNE sprawdza czy różne a jeśli nie to czy większe. :: Po prostu CJNE A, B, nierówne :: ; a tu lądujemy jeśli było równe. Tak, już sam do tego doszedłem i sprostowalem w tym wątku to. Coś mi nie pasowalo i chciałem się upewnić. -- Born to raise hell. Linux registered user: 408584 Contact: GG#3802676, solaris#idns.pl 19:16:28 -!- Platyna Erroneous Nickname
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads