Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > помгите пожалуста


Автор: Дима164 25.11.2008, 21:42
помгите пожалуста, очень простой вопрос как с помощью сдвигов x*5?

Автор: Mikl_ 26.11.2008, 06:34
Цитата(Дима164)
как с помощью сдвигов x*5? 

Умножение числа на 2^N это сдвиг влево числа на N разрядов
5=1+2^2 конкретная программа зависит от размерности числа x (байт, слово, двойное слово), допустим размер х байт, учтем,что при умножении на 5, число может оказаться более 255
Код
mov ah,0
mov al,x
cmp al,51
ja a1
shl al,2
add al,x; ax:=x*5
jmp end
a1:   shl ax,2; ax:=x*4
add al,x; ax:=x*4+x
adc ah,0; если при сложении возникнет перенос -- увеличим AH на 1 теперь ax:=5*x
end: 

Автор: Дима164 26.11.2008, 15:01
спасибо большое здорого помог!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)