Jak rozłożyć bajt na 8 bitów i zapisać je do tablicy w Bascomie?
rozłożenie liczby na bity
From: <piano2_at_nospam_poczta.onet.pl>
Subject: rozłożenie liczby na bity
Date: 30 Oct 2001 22:09:50 +0100
Witam wszystkich
czy wiecie może jak w bascomie (ostatecznie w assemblerze)
rozłożyć bajt na poszczególne 8 bitów i wpisać je np. do tablicy ?
Bogdan
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
From: "Jacek Bogusz" <jacek.bogusz_at_nospam_ep.com.pl>
Subject: Re: rozłożenie liczby na bity
Date: Tue, 30 Oct 2001 23:25:44 +0100
Użytkownik <piano2_at_nospam_poczta.onet.pl> napisał w wiadomości > Witam wszystkich
czy wiecie może jak w bascomie (ostatecznie w assemblerze)
rozłożyć bajt na poszczególne 8 bitów i wpisać je np. do tablicy ?
Cześć! Jeśli chodzi o assembler MCS51, to jest bardzo proste. Robisz
instrukcję przesunięcia w prawo lub w lewo przez carry i badasz stan flagi
C. Może to wyglądać jak poniżej:
MOV A,bajt
MOV B,#8 ;8 badanych bitów
Loop:
RLC A
JC akcja_dla_1
AJMP akcja_dla_0
DJNZ B,Loop ;powtórz 8 razy
W Basicu jest ten sam algorytm, tylko troszkę inaczej. Otoż przesunięcie w
lewo odpowiada podzieleniu liczby przez 2. Czyli dzielisz liczbe w petli
przez 2 i badasz reszte z dzielenia. Jeśli jest 0, to "0", jeśli 0,5 to "1"
Dim B as byte, i as byte, BS as string[8]
BS = ''
B = liczba_do_zamiany
For i = 1 to 8
if ((B - 2*(B MOD 2))<>0) then BS = BS+'1' else BS = BS+'0'
B = B MOD 2
Next i
Chyba nic nie pokopalem w tym Basicu.... ;)))
Jacek
From: Ireneusz Niemczyk <i.niemczyk_at_nospam_multispedytor.com.pl>
Subject: Re: =?iso-8859-2?Q?roz=B3o=BFenie?= liczby na bity
Date: Wed, 31 Oct 2001 10:47:59 +0100
Cześć! Jeśli chodzi o assembler MCS51, to jest bardzo proste. Robisz
instrukcję przesunięcia w prawo lub w lewo przez carry i badasz stan flagi
C. Może to wyglądać jak poniżej:
MOV A,bajt
MOV B,#8 ;8 badanych bitów
Loop:
RLC A
JC akcja_dla_1
AJMP akcja_dla_0
DJNZ B,Loop ;powtórz 8 razy
A nie prościej załadować dają do obszaru adresowanego bitowo i testować ? (np:
jb acc.0,labbel albo jb 20.4,labbel chyba nie bardzo rozumiem sens przykładu.
A może chodzi o umieszczenie 8 bitów bajtu w kolejnych bitach np: zerowych
kolejnych ośmiu bajtów ?
--
PZD, Irek.N.
From: "Marek Lewandowski" <locust_at_nospam_poczta.onet.pl>
Subject: Re: rozłożenie liczby na bity
Date: Wed, 31 Oct 2001 15:13:13 +0100
----- Original Message -----
From: <piano2_at_nospam_poczta.onet.pl>
Newsgroups: pl.misc.elektronika
Sent: Tuesday, October 30, 2001 10:09 PM
Subject: rozłożenie liczby na bity
Witam wszystkich
czy wiecie może jak w bascomie (ostatecznie w assemblerze)
rozłożyć bajt na poszczególne 8 bitów i wpisać je np. do tablicy ?
[posłałem to przez pomyłkę autorowi wątku na priv - sorry]
do czego to doszło... ostatecznie w assemblerze...
Tak na pierwszy rzut klawiatury (może nie być optymalne, może nie działać,
wymyślam na bieżąco):
mov a,bajt_do_rozlozenia
mov b,#08h
mov R0,#adrestablicy
loop:
rrc a
push acc
clr a
rlc a
mov _at_nospam_r0,a
pop acc
inc r0
djnz b,loop
Marek Lewandowski ICQ UIN: 10139051
uyh0_at_nospam_rz.uni-karlsruhe.de
http://locust.republika.pl