Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2010, 11:17   #1
фантомаз
 
Регистрация: 11.02.2009
Сообщений: 5
По умолчанию Умножение

Помогите сделать программу!
Задание такое: реализовать алгоритм умножения беззнаковых двоичных чисел не используя команду умножения.

Я думаю, что можно использовать следующий алгоритм:
1. вначале объявляем 3 переменные (x,y - их нужно перемножить и k-"2" в двоичной системе)
2. сравниваем y и k
3. если y<k, то ответ x
4. если y=k, то мы удваиваем x с помощью команды сдвига влево (х-ответ)
5. если y>k
6. удваиваем k и х
7. сравниваем y и k
8.если y<k, то увел. х на 1 (х-ответ)
9. если y=k, переходим к шагу 4
10. если y>k, переходим к шагу 6

Код:
model small
.stack 100h
.data
x db 0001b
y db 0001b
z db (?)
k db 0010b
.code
start:
	mov ax,@data
	mov ds,ax
	xor cx,cx
	mov ah,x
	mov al,y
	mov dh,k
	mov dl,z
 cmp al,dh
	jb l1
	je l2
	ja l3
l2: shl x,1
jmp l1
l3: shl ah,1
shl dh,1
cmp al,dh
jb l4
je l2
ja l3
l4: inc ah
     inc ah
jmp l1
l1: mov dl,ah
mov ah,4ch
int 21h
end start
фантомаз вне форума Ответить с цитированием
Старый 20.05.2010, 11:40   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

фантомаз
Переведи X и Y в двоичную форму и перемножь их столбиком и сразу поймешь, как перемножать числа используя только сдвиги и сложения, а потом в googl'e или вики поищи "Алгоритм Бутса (Booth)" и этим окончательно "добъешь" своего препода...
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение KoBRaAndrey Общие вопросы Delphi 4 03.10.2009 12:23
умножение PAWLO1993 Паскаль, Turbo Pascal, PascalABC.NET 4 29.07.2008 18:55
Умножение в SQL Родион БД в Delphi 4 12.06.2008 17:27
Умножение и деление StiTch_Parazit Помощь студентам 10 20.05.2008 14:32