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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2009, 14:28   #11
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

что показывает мой пример? проверьте пожайлуста.
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 30.10.2009, 14:43   #12
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

unsigned int a[5] = {1, 0, 0xfffffffe, 0xffffffff, 0xffffffff};
unsigned int b[5] = {1, 0, 0, 0, 1};
unsigned int c[5] = {0, 0, 0, 0, 0};

1 0 7fffffff 80000000 80000000

bt eax,31
вопрос: а почему именно 31?

Последний раз редактировалось NiCola999; 30.10.2009 в 14:49.
NiCola999 вне форума Ответить с цитированием
Старый 30.10.2009, 14:45   #13
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

и вы считаете это правильно?
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 30.10.2009, 14:46   #14
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

Я полагаю ответ должен быть такой
1 0 7fffffff 80000000 00000000
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 30.10.2009, 14:52   #15
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

0xffffffff+1 >> 1 = 0x80000000
NiCola999 вне форума Ответить с цитированием
Старый 30.10.2009, 14:55   #16
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Это среднее только 0xffffffff и 1, а вам нужно среднее полностью числа.
Может быть должно быть как-то так ?
Код:
cycle:
	mov eax, [ebx+4*ecx-4]  ; сохранение каждого элемента первого массива в eax для сложения
	adc eax, [edx+4*ecx-4]  ; сложением с каждым элементов второго массива с учетом cary
	rcr eax,1                       
	jnc m1
	bts dword ptr [esi+4*ecx],31
m1:
	btr eax,31
	mov [esi+4*ecx-4],eax   ; в массив c кладется результат
	loop cycle ; ecx --
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 30.10.2009 в 14:59.
Goodwin98 вне форума Ответить с цитированием
Старый 30.10.2009, 15:01   #17
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

на счет этого я не подумал, но препод сказал просто каждые элементы сложить и сдвинуть

обьясните мне пожалуйста
bt eax,31 почему именно 31 ?
btr почему r ?

Последний раз редактировалось NiCola999; 30.10.2009 в 15:07.
NiCola999 вне форума Ответить с цитированием
Старый 30.10.2009, 15:06   #18
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

31 - крайний слева бит в 32-х разрядном регистре. Нумерация идет с нуля.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 30.10.2009, 15:10   #19
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

еще вопрос

команда bt просто проверяет побитово, но ведь ничего не делает с этим, или нет?

Последний раз редактировалось NiCola999; 30.10.2009 в 15:18.
NiCola999 вне форума Ответить с цитированием
Старый 30.10.2009, 15:41   #20
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Из хелпа к фасму
Цитата:
"bt", "bts", "btr" и "btc" оперируют с единичным битом, который может быть в памяти или регистре общего назначения. Расположения бита определяется как смещение от конца нижнего регистра операнда. Значение смещения берется из второго операнда, это может быть либо регистр общего назначения, либо байт. Эти инструкции первым делом присваивают флагу CF значение выбранного байта. "bt" больше ничего не делает, "bts" присваивает выбранному биту значение 1, "btr" сбрасывает его на 0, "btc" изменяет значение бита на его дополнение. Первый операнд может быть словом или двойным словом.

bt ax,15 ; тестирует бит в регистре
bts word [bx],15 ; тестирует и ставит бит в памяти
btr ax,cx ; тестирует и сбрасывает бит в регистре
btc word [bx],cx ; тестирует и дополняет бит в памяти
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поменять большие буквы на маленькие и маленькие на большие в си++ Барби Помощь студентам 4 08.04.2008 01:25
csv-файл большие числа nevadimka Microsoft Office Excel 1 14.03.2008 10:25
Большие числа Лубышев Помощь студентам 6 27.02.2008 22:57
Большие комплексные числа xoz Общие вопросы Delphi 0 24.02.2008 03:12