Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Вниз

Pascal срочно, плзззз...   Найти похожие ветки 

 
Rooman   (2002-04-08 12:59) [50]

Торможу и не бибикаю:))) Саму маску нельзя сдвигать:)

Вот так правильно (вроде окончательно):

function rotatemaxN(N:word):word;
asm
and ax,ax
jz @5
mov cx,$8000
mov dx,ax
@1:
mov bx,cx
test ax,cx
jnz @2
shr cx,1
jmp @1
@2:
shr dx,1
jnc @3
or dx,cx
@3:
cmp ax,dx
jae @4
mov ax,dx
@4:
shr bx,1
jnz @2
@5:
end;


и на Паскале:

function rotateN(N:word):word;
var mask,tmp:word;
begin
if N=0 then exit;
mask:=$8000;
while (mask and N)=0 do mask:=mask shr 1;
result:=N;
tmp:=mask;
while tmp>0 do
begin
asm
xor ax,ax
rcr N,1
jnc @1
mov ax,N
or ax,mask
mov N,ax
@1: shr tmp,1
end;
if N>result then result:=N;
end;
end;



Страницы: 1 2 вся ветка

Форум: "Основная";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.009 c
6-69938
PL
2002-02-01 20:51
2002.04.22
traceroute


3-69682
Pashafess
2002-03-22 08:41
2002.04.22
Помогите с CreateDatabase !


1-69905
inko
2002-04-09 15:43
2002.04.22
Сообщения.


14-69973
tovSuhov
2002-03-13 11:45
2002.04.22
Настройка принтера под DOS...


4-70076
Ewgenij
2002-02-18 00:15
2002.04.22
Как обработать появление окна при его создании?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский