Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер
Регистрация

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 08.11.2010, 11:03   #1
Alisssa
Новичок
Джуниор
 
Регистрация: 08.11.2010
Сообщений: 2
По умолчанию дано 16-ти битное слово, найти первый ноль справа

Добрый день!
Прошу помощи в решении задачи. Знаю, что задача очень простая, но к сожалению никак не удается её сделать
Если кто-нибудь откликнется буду очень благодарна.

Задача:

Дано 16-ти битное слово, найти первый ноль справа.
Alisssa вне форума Ответить с цитированием
Старый 08.11.2010, 11:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Как-то так:
Код:
 xor cx,cx
 mov ax,52365
loo:
 test ax,1
 je ok;
 shr ax,1
 inc cx;
 jmp loo
ok:
 ret
в сх будет номер первого нуля.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2010, 12:28   #3
Alisssa
Новичок
Джуниор
 
Регистрация: 08.11.2010
Сообщений: 2
По умолчанию

Большое спасибо!
Alisssa вне форума Ответить с цитированием
Старый 08.11.2010, 12:54   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,155
По умолчанию

Alisssa
Код:
найдем номер крайнего справа бита в регистре BX, содержащего ноль
MOV BX,1000000000000111b
NOT BX;BX=0111111111111000b
BSF CX,BX;в CX номер крайнего правого единичного бита
NOT BX;восстановили BX, теперь CX=3 это номер крайнего правого нулевого бита

Последний раз редактировалось Mikl___; 08.11.2010 в 13:30.
Mikl___ вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано 2 слова. Написать программу, которая будет определять присутствует ли слово 1 в слове 2. Паскалька^^ Помощь студентам 5 19.10.2010 00:55
PASCAl ! Найти палиндромом(то есть его запись читается одинаково слева направо и справа на лево ) valerka92 Помощь студентам 4 25.04.2010 12:23
Delphi, ошибка деления на ноль, хотя знаменатель не ноль Эренка Помощь студентам 7 22.04.2010 15:56
Дано действительное число А. Найти среди чисел 1, 1+1/2, 1+1/2+1/3, ... svobodys Помощь студентам 0 09.12.2008 21:22
Найти числа,которые читаются слева-направо и справа-налево одинаково(например, 1001). Паскаль NikLik Помощь студентам 8 23.11.2007 00:00