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

четверг, 30 сентября 2010 г.

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

Если выпуск не отображается корректно, то вы можете прочесть его на сайте

Реклама Отказаться от рекламы
 
Subscribe.Ru

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

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

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

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

Boriss
Статус: Академик
Рейтинг: 2475
• повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2000
• повысить рейтинг »
vladisslav
Статус: 6-й класс
Рейтинг: 1235
• повысить рейтинг »

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

Номер выпуска:1373
Дата выхода:01.10.2010, 09:00
Администратор рассылки:Лысков Игорь Витальевич, Старший модератор
Подписчиков / экспертов:225 / 64
Вопросов / ответов:1 / 1
IRC-канал по теме:#assembler

Вопрос № 180037: Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, решить следующую задачу по программированию на Ассемблере. Вывести на экран сумму двух введенных с клавиатуры двузначных чисел (Вводить посимвольно функцией 01 прерывания 21h, значение вводит...



Вопрос № 180037:

Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, решить следующую задачу по программированию на Ассемблере.
Вывести на экран сумму двух введенных с клавиатуры двузначных чисел (Вводить посимвольно функцией 01 прерывания 21h, значение вводить так, чтобы сумма была меньше 100). Для решения задачи применить команды десятичной арифметики.

Отправлен: 26.09.2010, 08:46
Вопрос задал: Aleksandrkib, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Лысков Игорь Витальевич, Старший модератор :
Здравствуйте, Aleksandrkib.
Примерно так. Достаточно прокомментировано, если что осталось непонятно, спрашивайте в мини-форуме
Код:

.model small
.data
sNum1 db 'Enter first number: $' ;Строка приглашения для ввода первого числа
sNum2 db 'Enter second number: $' ;Строка приглашения для ввода второго числа
sSum db 'Result = ' ;Строка вывода результата
sNum db '00$' ;Сюда вставим число-сумму введенных чисел

.code
.286 ;чтобы использовать shr al, 4
.startup ;точка входа
;вводим первое число
lea dx, sNum1 ;строка приглашения
call GetNumber ;в al однобайтное BCD число
mov bh, al ;сох раним в bh
;вводим второе число
lea dx, sNum2 ;строка приглашения
call GetNumber ;в al однобайтное BCD число

add al, bh ;сложим с первым
daa ;делаем коррекцию!
;в al корректное BCD число
;выведем сообщение, для этого сформируем двубайтное символьное число
mov ah, al ;обработам и старший полубайт, и младший
shr al, 4 ;старший десятичный разряд в младшем полубайте al
and ah, 0fh ;младший десятичный разряд в младшем полубайте ah
or ax, '00' ;числа - в символы
mov word ptr sNum, ax ;запишем двубайтное число в строку результата

lea dx, sSum ;выведем
mov ah, 9
int 21h

.exit 0

;ввод однобайтного BCD числа
;результат - в al
GetNumber proc
mov ah, 9 ;подсказка
int 21h

mov bl, 0 ;здесь будем формировать BCD число
mov cx, 2 ;вводим максимум две цифры
GetLoop:
mov ah, 1 ;вводим символ
int 21h
cmp al, 0dh ;по Enter-у заканчиваем ввод досрочно
je GetNumRet
cmp al, '0' ;проверим на цифру
jb GetLoop
cmp al, '9'
ja GetLoop
and al, 0fh ;получаем из символа число 0-9
shl bl, 4 ;старый младший десятичный разряд становится старшим
or bl, al ;вставляем новый младший разряд
loop GetLoop ;вводим максимум две цифры

GetNumRet: ;перейдем на новую строку
mov ah, 2
mov dl, 0dh
int 21h
mov dl, 0ah
int 21h
mov al, bl ;результат в al
ret
GetNumber endp

end

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

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

Оценка ответа: 5

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

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

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

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

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

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

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

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


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.21 от 28.09.2010
    Обсудить выпуск
     
     Как вам этот выпуск ?  Дайте свой отзыв  или  Оцените   5    4    3    2    1,   можно письмом:  5    4    3    2    1
     
    Реклама Отказаться от рекламы
    Вспомни детство! Вспомни детство!
    Аппарат для приготовления сахарной ваты - отличное угощение!

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

     
     
      Рассылки
    Фабрика Мысли: технологии, идеи, инновации
    Все о технологиях Фабрик Мысли - форм общественного (профессионального) объединения людей с целью генерации новых идей, проведения инноваций, решения оперативных и стратегических проблем. От ТРИЗа и НЛП до мозгового штурма и "Знаниевого реактора".

    Подписаться:   на сайте    по почте

     
      Группы
    «Создание настроения на день»
    Создавая рассылку "МентРа" (сокращение от Ментальная Разминка), я столкнулся с тем, что в каталоге Subscribe просто нет подходящей секции для рассылок, ...
    «Рукоделие»
    Всё самое полезное о рукоделии! Уроки, описания, советы, схемы, книги! Вязание, шитьё, вышивание, обработка кожи, лепка, макраме, валяние, ткачество, ко...
    «Фото. Пейзаж»
    В этой группе публикуются и обсуждают фотопейзажи. Цветочки и бабочки пейзажем не являются! Разрешается публиковать только СВОИ фотографии. Любая агресс...
     
    Подписан адрес: admin10383.deep@blogger.com
    Код этой рассылки: comp.prog.assembler
    Архив рассылки
    Отписаться:  На сайте  Почтой
    Поддержка подписчиков
    Убрать рекламу
    Другие рассылки этой тематики
    Другие рассылки этого автора
    Рассылка производится: Subscribe.Ru / ЗАО «Интернет-Проекты» / О компании / Политика конфиденциальности

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

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