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

четверг, 13 января 2011 г.

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

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

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

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

    Мои подписки     Мои группы     Мои новости     Друзья     Избранное

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

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

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

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

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

Номер выпуска:1415
Дата выхода:13.01.2011, 15:00
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:217 / 67
Вопросов / ответов:1 / 1

Вопрос № 181786: Здравствуйте, уважаемые эксперты! Прошу Вас помочь с задачей: В массиве А(12) (элемент - символ) найти минимальный в каждой тройке чисел, из низ выбрать максимальный. Среда, ассемблер 16 битный под DOS , tasm и tlink , использовать модель памяти smal...



Вопрос № 181786:

Здравствуйте, уважаемые эксперты! Прошу Вас помочь с задачей: В массиве А(12) (элемент - символ) найти минимальный в каждой тройке чисел, из низ выбрать максимальный. Среда, ассемблер 16 битный под DOS , tasm и tlink , использовать модель памяти small. Просьба написать к каждой строке пояснительный комментарий.

Отправлен: 08.01.2011, 14:22
Вопрос задал: Федоров Иван (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Лысков Игорь Витальевич (Старший модератор) :
Здравствуйте, Федоров Иван !
Вот и программа.

Код:
;В массиве А(12) (элемент - символ) найти минимальный в каждой тройке чисел, 
;из низ выбрать максимальный

lenA equ 12 ;длина массива А

.model small ;модель памяти

.stack 512 ;стек 512 слов

.data ;сегмент данных
strA db 'Array A: $'
strMax db 0dh,0ah,'Max = $'
strAny db 0dh,0ah,'Press any key$'
A db lenA dup (?)

.code ;сегмент кода
start: mov ax, @data ;настроим сегменты данных
mov ds, ax
mov es, ax

lea dx, strA
mov ah, 9
int 21h ;строка приглаш ения для ввода А

;Введем масив А посимвольно, проверяя на цифру
lea di, A ;адрес массива А
mov cx, lenA ;длина массива А
c1: mov ah, 8 ;функция ввода кода без отображения
c2: int 21h
cmp al, '0' ;проверка на цифру
jb c2 ;нецифру игнорируем
cmp al, '9'
ja c2
mov dl, al ;сохраним для вывода
stosb ;сохраним
mov ah, 2 ;функция вывода символа из dl
int 21h
loop c1 ;вводим ровно 12 цифр

;Ищем максимальный из минимальных
lea si, A ;адрес массива А
mov cx, lenA/3 ;число троек 12/3=4
mov bh, 0 ;нусть минимальный=0 (самое маленькое значение)

c3: push cx ;сохраним число троек
mov cx, 3 ;число элементов в тройке
mov bl, 0ffh ;пусть минимальный=256 (самое большое значение)
;ищем минимальный в тройке
c4: lodsb ;очередное значение
cmp al, bl ;сравниваем с минимальным
jae c5 ;>= - обходим
mov bl, al ;сохраним новое
c5: loop c4 ;по всем 3 ;ищем максимальный из минимальных
cmp bl, bh ;сравним с максимальным
jbe c6 ;<= - обходим
mov bh, bl ;сохраним новое

c6: pop cx ;востановим счетчик групп
loop c3 ;по всем тройкам

lea dx, strMax ;адрес строки
mov ah, 9 ;функция вывода
int 21h ;выводим строку Max=

mov dl, bh ;найденный max
mov ah, 2 ;функция вывода символа
int 21h ;выведем

lea dx, strAny
mov ah, 9
int 21h ;press any key

mov ah, 8
int 21h ;ждем нажатия на клавишу

mov ax, 4c00h
int 21h ;выход в ДОС

end start

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

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

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


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

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

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

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

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

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

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


    Обсудить выпуск
     
     Как вам этот выпуск ?  Дайте свой отзыв  или  Оцените   5    4    3    2    1,   можно письмом:  5    4    3    2    1
     
      Рассылки
    Раскрутка сайта с помощью поисковых систем и каталогов
    Раскрутка с помощью поисковых систем и каталогов. Вы узнаете как попасть в первую 10 таких поисковиков как AltaVista, Google и т.д. Статьи + переводы платной информации от наших партнеров

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

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

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

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