Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Зенченко Константин Николаевич
Статус: Профессор
Рейтинг: 163
∙ повысить рейтинг >>
Лысков Игорь Витальевич
Статус: Специалист
Рейтинг: 44
∙ повысить рейтинг >>
Airyashov
Статус: 10-й класс
Рейтинг: 44
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 1105
от 08.11.2008, 10:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 296, Экспертов: 18
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 149309: Здратсвуйте уважаемые эксперты, я тока начал изучать ассемблер.И вот столкнулся с такой проблемкой. Значит,мне нужно, написать программу которая переворачивает биты в числе. Прошу пожалуста помочь....


Вопрос № 149.309
Здратсвуйте уважаемые эксперты, я тока начал изучать ассемблер.И вот столкнулся с такой проблемкой. Значит,мне нужно, написать программу которая переворачивает биты в числе. Прошу пожалуста помочь.
Отправлен: 02.11.2008, 16:30
Вопрос задал: Иван Горбинко (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Овчинников Алексей
Здравствуйте, Иван Горбинко!
Вопрос в том что вы подразумеваете под фразой; "переворачивает биты в числе". От этого зависит какое будет приложение.
Если это инвертирование, то есть замена установленных битов (1) на неустановленные(0), и соответственно (0) на (1). То программа будет простейшей, необходимо применить всего один оператор; "not" инвертирует биты в заданном операнде к форме обратного кода операнда. Не оказывает влияния на флаги. То есть если вам необходимо инвертировать например байт находящийся в регистре AH, то опуская такие функции как ввод и вывод необходимого числа программа будет выглядеть так; "not AH", после выполнения этого оператора в регистре AH будет находится байт обратный заданному.
Если-же вы под переворачиванием подразумеваете замену местами 0на7; 1на6; 2на5; 3на4 биты( а например в слове или двойном слове еще сложнее), то программа будет выглядеть значительно сложнее. И здесь не обойтись без других логических опреаций; "and", "or" и "xor" производят стандартные логические операции, а так-же операций сдвига. Ниже представлена часть кода которая выполняет эту операцию с одним байтом расположенном в регистре AH

Приложение:

---------
Пишу на FASM

Ответ отправил: Овчинников Алексей (статус: 4-й класс)
Ответ отправлен: 03.11.2008, 01:11

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 149309 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Сори за не точную постановку задачи, я имел ввиду под словом "переворачивает" типо как зеркальное отражение допусти вводишь ты 128 а оно выводит 1 ,ну и на оборот.


    Отвечает: Лысков Игорь Витальевич
    Здравствуйте, Иван Горбинко!
    Решается очень просто: выталкиваем очередной бит источника, например, налево в бит переноса С, затем вталкиваем из С направо в регистр-результат.
    В зависимости от разрядности имеем три подпрограммки...
    Удачи...

    Приложение:

    ---------
    Удачи!

    Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
    Ответ отправлен: 03.11.2008, 10:23

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 149309 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Good job)


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2008, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.10 от 5.11.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное