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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 13.12.2006, 22:27   #1
zetrix
Delphi/C++/C#
Профессионал
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
Репутация: 626
По умолчанию Битовые операции

Задача вроде бы простая, но я не догоняю её..

Цитата:
В двухбайтной ячейке памяти записана последовательность нулей и единиц. С помощью битовых операций переставьте биты так, чтобы сначала шли все единицы, а затем все нули.
Я думаю сделать так: подсчитать кол-во единиц, потом всё затереть в 0, и допасать столько единиц, сколько насчитали. Но есть есть проблемы со знанием ассем-а. Цикл сделать - труда не составляет, а вот как с битами работат (считать/записать) - проблема...
zetrix вне форума   Ответить с цитированием
Старый 14.12.2006, 12:27   #2
zetrix
Delphi/C++/C#
Профессионал
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
Репутация: 626
По умолчанию

Ну что ж.. Спасибо за внимание, всё решил сам. Кому интересно, вот листинг (использовался ассемблер в Паскале, т.к. это разрешалось):

Код:
uses crt;
var i,s:integer;
label m1,m2,m0;

begin
write('Введите число: ');
readln(i);
 asm
 mov bx, 0
 mov ax, i
 mov cx, 16
m1:
 shl ax, 1
 JNC m2
 inc bx
m2:
 loop m1
 mov cx, bx
m0:
 shl ax, 1
 add ax, 1
 loop m0
mov s, ax
 end;
write('Полученное число: ',s);
readln;
end.

Последний раз редактировалось zetrix; 14.12.2006 в 16:04.
zetrix вне форума   Ответить с цитированием
Старый 14.12.2006, 21:12   #3
rpy3uH
добрый няша
СуперМодератор
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Адрес: Солнечное Тбилиси
Сообщений: 4,806
Репутация: 2006
По умолчанию

ты гигант!!!!!
rpy3uH вне форума   Ответить с цитированием
Старый 14.12.2006, 22:06   #4
zetrix
Delphi/C++/C#
Профессионал
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
Репутация: 626
По умолчанию

не понял...
что ты этим хотел сказать?
zetrix вне форума   Ответить с цитированием
Старый 14.12.2006, 22:23   #5
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Адрес: Химки
Сообщений: 14,541
Репутация: 3001
По умолчанию

zetrix, стандартная фраза восхищения, вообще у rpy3uHа их много...
Alar на форуме   Ответить с цитированием
Старый 15.12.2006, 12:08   #6
zetrix
Delphi/C++/C#
Профессионал
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
Репутация: 626
По умолчанию

А.. ну... спасибо
zetrix вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Битовые операции DrAlexx2121 Assembler 4 14.06.2008 22:26
Операции с массивами Hakman Помощь студентам 10 19.02.2008 19:36
Битовые операции LEX.darnica Помощь студентам 14 23.12.2007 20:40
Операции над данными yulia БД в Delphi 24 21.05.2007 01:18


20:30.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.