Odp: Przesuwanie 1024 bitow...

Autor: Tomek Lisowski (Lisowski.Tomasz_at_sssa.nospam.pl)
Data: Tue 30 May 2000 - 15:15:11 MET DST


Użytkownik Witold Romaniak <witoldr_at_kki.net.pl> w wiadomości do grup
dyskusyjnych napisał:8gb6ev$ktb$1_at_sunsite.icm.edu.pl...
> "Marcin 'Qrczak' Kowalczyk" <qrczak_at_knm.org.pl> wrote:
> > > Zadanie polega na napisaniu (pod)programu zdolnego do przesuwania
liczby
> > > 1024-robitowej o 1 do 1023 pozycje.
> > >
> > > Program ma byc w assemblerze x86.
> >
> > Przesunąć najpierw o całkowitą liczbę bajtów przez skopiowanie pod
> > przesunięty adres, a potem w pętli przesunąć o pozostałe bity po
> > jednym, wykorzystując znacznik przeniesienia.
>
> No dobra, ale jak w ogole wczytac tak duza liczbe do pamieci ?

Nie wiem, czy Cię dobrze rozumiem: czy chodzi Ci o wczytanie danych ze
standardowego wejścia, czy też samo wczytanie danych do rejestrów procesora
i ich obróbkę. Jeżeli to pierwsze, to są na to odpowiednie funkcje DOS-u
(INT 21h), co pozwoli wczytać liczbę do obszaru segmentu danych programu. To
drugie, to już sprawa pętli wewnątrz programu.

BTW. Jeżeli masz prawo wykorzystać instrukcje 80386, to istnieją takie
instrukcje jak SHLD i SHRD, które załatwią Ci bez pętli przesuwanie o
pozostałe bity, o których pisał Witold.

Tomasz Lisowski



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 20:09:57 MET DST