🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
8 messages
8 total messages Started by Solaris Mon, 16 Apr 2007 12:50
8051, porównanie
#1047
Author: Solaris
Date: Mon, 16 Apr 2007 12:50
24 lines
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
#1048
Author: Solaris
Date: Mon, 16 Apr 2007 13:06
23 lines
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
#1049
Author: Bernard
Date: Mon, 16 Apr 2007 17:27
24 lines
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
#1050
Author: Solaris
Date: Mon, 16 Apr 2007 18:04
36 lines
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
#1051
Author: Solaris
Date: Mon, 16 Apr 2007 18:09
12 lines
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
#1054
Author: Solaris
Date: Mon, 16 Apr 2007 18:37
17 lines
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
#1052
Author: Bernard
Date: Mon, 16 Apr 2007 22:20
39 lines
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
#1053
Author: Solaris
Date: Tue, 17 Apr 2007 13:52
22 lines
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