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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2009, 12:41   #1
AFA
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 69
По умолчанию Умоножение двойных слов на двойные слова..

Нужна помощь в debug'e, как перемножать двойные слова на двойные, без потери точность...не имея 32-битные регистры??
Задача такая:
Перемножить число 0338 9769 само на себя 5 раз! Помогите пожалуйста!!
AFA вне форума Ответить с цитированием
Старый 06.05.2009, 12:42   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не имея 32-битные регистры??
А что имея?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2009, 13:08   #3
AFA
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 69
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А что имея?
в смысле, что нельзя использовать регистры еdx,eax и т.д.
AFA вне форума Ответить с цитированием
Старый 06.05.2009, 19:03   #4
|{ot
Форумчанин
 
Аватар для |{ot
 
Регистрация: 09.03.2008
Сообщений: 127
По умолчанию

Тогда можно в цикле прибавлят: 5*3=5+5+5=3+3+3+3+3 ну или как в столбик...
Код:
....
a equ 9769
b equ 0338
....
xor еcx,еcx
mov cx,5;5 раз
mov ax,a
mov bx,b
xor dx,dx; результат будет dx:bx:ax
F:
	push ecx
	mov cx,b
		F1:
			push ecx
			mov cx,a
			F2:
				add ax,a
				adc bx,0
				adc dx,0
			loop F2
		pop ecx
		loop F1
pop ecx
loop F
...
в столбик будет быстрее...

если уж совсем без 32-х битных регистров то loop метка нужно заменить на
cmp cx,0
jnz метка
ну и pop ecx на pop cx

Последний раз редактировалось |{ot; 06.05.2009 в 19:10.
|{ot вне форума Ответить с цитированием
Старый 06.05.2009, 23:11   #5
AFA
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 69
По умолчанию

в столбик так:
аx
*ax
____ при умножении результат в 2 раза больше и помещ. dx:ax
dx:ax
dx:ax
dx:ax
dx:ax
_________ примерно так...но я не особо представляю как это воплатить! =(((

Смотри ниже:
4.txt

Последний раз редактировалось AFA; 06.05.2009 в 23:37.
AFA вне форума Ответить с цитированием
Старый 07.05.2009, 12:24   #6
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

воплотить не сложно, но в debug не хочется лезть
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 08.05.2009, 01:39   #7
AFA
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 69
По умолчанию

Цитата:
Сообщение от airyashov Посмотреть сообщение
воплотить не сложно, но в debug не хочется лезть
попробуй, плиззз!!!
AFA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" Mashaa Помощь студентам 13 09.12.2009 13:28
Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов. KAPAHDAW Паскаль, Turbo Pascal, PascalABC.NET 2 17.02.2009 01:19
Как удалить текст до слова, потом от слова ? littlecoder Общие вопросы Delphi 7 29.12.2008 00:57
Двойные темы Ulex О форуме и сайтах клуба 1 23.12.2008 00:59
На печать выдать новую строку в которой все слова расположены в порядке возрастание длин слов Siluet Паскаль, Turbo Pascal, PascalABC.NET 1 13.12.2008 00:12