WMmail.ru - сервис почтовых рассылок

пятница, 29 апреля 2011 г.

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

 
Если выпуск не отображается, вы можете прочесть его на сайте Отказаться от рекламы
  
  
Примите участие в опросах Ipsos Access Panel и получите вознаграждение!
  
  
Все дело в размере! Все дело в размере!
Easy Curves - первый тренажер для женской груди!

  Надоела сутулая спина и обвислый живот? Надоела сутулая спина и обвислый живот?
Тренажер Ab Rocket - великолепный пресс всего за несколько недель!

  Худеть не напрягаясь - легко! Худеть не напрягаясь - легко!
Теряйте лишние килограммы с поясом для похудения Vibra Tone.

 
  

  Мои подписки      Мои группы      Мои новости     
        Автор 
Калашников О.А.
      
  
Компьютеры и интернет   →   Софт   →   Программирование   →   RFpro.ru: Ассемблер? Это просто! Учимся программировать
  
RFpro.ru: Ассемблер? Это просто! Учимся программировать
 
 

Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

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

Лучшие эксперты данной рассылки

Boriss
Статус: Академик
Рейтинг: 2636
• повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2312
• повысить рейтинг »
Жерар
Статус: Специалист
Рейтинг: 1653
• повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Assembler (Ассемблер)

Номер выпуска:1441
Дата выхода:30.04.2011, 03:30
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:215 / 65
Вопросов / ответов:1 / 1

Вопрос № 182934: Здравствуйте, уважаемые эксперты! Прошу помощи в следующем вопросе: Установить заданный разряд 2-байтового слова в 1 или 0. Исходными данными являются адрес слова и команда, расположенные во внешнем ОЗУ. Формат команды: 0 разряд - значение би...



Вопрос № 182934:

Здравствуйте, уважаемые эксперты! Прошу помощи в следующем вопросе:
Установить заданный разряд 2-байтового слова в 1 или 0. Исходными данными являются адрес слова и команда, расположенные во внешнем ОЗУ. Формат команды: 0 разряд - значение бита, 1-4 разряды - номер бита. ОМК Intel 8051.
P.S. Преподаватель подсказал, что задачу можно решить тремя способами: с помощью масок, с помощью сдвигов и с помощью проверки "больше или меньше 7", чтобы определить в старшем или младшем байте находится заменяемый элемент. вроде так.
вот ссылка на "URL >> АРХИТЕКТУРА И ПРОГРАММИРОВАНИЕ ОДНОКРИСТАЛЬНЫХ МИКРОКОНТРОЛЛЕРОВ MCS-51/52http://depositfiles.com/files/om2ud9mmw

Отправлен: 25.04.2011, 02:57
Вопрос задал: Никита Владимирович (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Лысков Игорь Витальевич (Старший модератор) :
Здравствуйте, Никита Владимирович!
Вот и программа... Идея такая:
1) сдвинаем вправо слово "номер бита" раз так, чтобы нужный бит оказался нулевым в младшем байте
2) вставляем новое значение бита
3) сдвигаем слово обратно, чтобы все встало на те же места
Если что не понятно, обращайтесь...

Код:

ljmp start
Org 100h
start:
mov sp, #60h
mov dptr, #00h
movx a, @dptr ;младший байт
mov 20h, a ;чтобы иметь возможность адресовать биты
inc dptr
movx a, @dptr ;старший байт
mov 21h, a
inc dptr
movx a, @dptr ;номер бита (1-4), бит (0)
mov 22h, a

rrc a ;номер бита 0-7
mov r2, a ;сохраним как счетчик
jz SetBit ;если бит 0, то на установку бита
mov r3, a ;дубль счетчика, он нам еще понадобится

RightLoop: ;цикл сдвига двойного слова вправо так,
; чтобы нужный бит оказался на месте 0 бита
mov c, 20h.0 ;младший бит младшего байта
mov a, 21h ;ст байт
rrc a ;сдвиг вправо, acc.7 = мл биту мл слова,
; С = мл биту ст байта
mov 21h, a ;сохраним
mov a, 20h ;мл байт
rrc a ;сдвиг вправо, acc.7 = мл биту ст байта (из C)
;мл бит теряем (не нужен)
mov 20h, a ;сохраняем
djnz r3, RightLoop ;сдвинаем "номер бита" раз

SetBit: ;установка бита 0 в младшем байте
mov c, 22h.0 ;новое значение бита
mov a, 20h ;изменяемый байт
mov acc.0, c ;устанавливаем
mov 20h, a ;сохраняем

;вернем слово на место
mov a, r2 ;счетчик сдвигов
jz SaveData ;если бит 0, то сдвигать не надо
LeftLoop: ;цикл сдвига влево
mov c, 21h.7 ;ст бит ст байта
mov a, 20h ;мл байт
r lc a ;сдвиг влево, acc.0 = ст биту ст слова,
; С = ст биту мл байта
mov 20h, a ;сохраняем
mov a, 21h ;ст байт
rlc a ;сдвиг влево, acc.0 = стл биту мл байта (из C)
;ст бит теряем (не нужен)
mov 21h, a ;сохраняем
djnz r2, LeftLoop ;сдвинаем "номер бита" раз

SaveData: ;сохраним во внешней памяти
mov dptr, #00h
mov a, 20h
movx @dptr, a
inc dptr
mov a, 21h
movx @dptr, a

Wait: ;бесконечный цикл
jmp Wait

End

-----
Люби своего ближнего, как самого себя

Ответ отправил: Лысков Игорь Витальевич (Старший модератор)
Ответ отправлен: 26.04.2011, 13:05
Номер ответа: 266842
Украина, Кировоград
Тел.: +380957525051
ICQ # 234137952
Mail.ru-агент: igorlyskov@mail.ru

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


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

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

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

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

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

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

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


     
     
    Комментировать выпуск
         В избранное

    Прошлые выпуски
    RFpro.ru: Ассемблер? Это просто! Учимся программировать    28 апреля 2011, 15:05
    RFpro.ru: Ассемблер? Это просто! Учимся программировать    19 апреля 2011, 20:06
    RFpro.ru: Ассемблер? Это просто! Учимся программировать    11 апреля 2011, 17:06

    Все выпуски рассылки
     
     
      
    Здоровая пища: миф или реальность? Здоровая пища: миф или реальность?
    Аэрогриль Flavorwave Turbo Oven - новое слово в кухонном досуге!

      Вспомни детство! Вспомни детство!
    Аппарат для приготовления сахарной ваты - отличное угощение!

      Скачай журнал "FHM" Скачай журнал "FHM"
    100 самых сексуальных женщин мира! Девушка гоу-гоу. 9 идей для извращенца.

     
      

    Subscribe рекомендует
     
    Компьютеры и интернет  →   рассылки   и   группы
      
    Отношения между мужчиной и женщиной
    Группа об отношениях между мужчиной и женщиной. Для того, чтобы лучше понять мужчину, нужно узнать его психологию, знать о чём он говорит и что на самом деле имеет ввиду.
    Темы: 2261   Участники: 4897
      Интернет для начинающих пользователей
    Группа начинающих пользователей Интернета. Советы, статьи, инструкции новичкам. Если вы недавно подключились к Интернету и у вас на счет него есть куча ...
    Темы: 1413   Участники: 6355
      Клуб для людей, у которых дома живут Кошки
    Я знаю всё о кошачьих повадках и вообще о кошках! Поэтому я решил создать свою группу о кошках где я смогу отвечать на ваши вопросы о кошках и т.д. и т.п. !
    Темы: 3325   Участники: 2888
     
     
     
    Подписан адрес: admin10383.deep@blogger.com
    Код этой рассылки: comp.prog.assembler
    Архив рассылки
    Отписаться:  На сайте  Почтой
    Поддержка подписчиков
    Убрать рекламу
    Другие рассылки этой тематики
    Другие рассылки этого автора
     
    Рассылка производится: Subscribe.Ru / ЗАО «Интернет-Проекты» / О компании / Политика конфиденциальности

    Комментариев нет:

    Отправить комментарий