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

воскресенье, 9 мая 2010 г.

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

Приглашение на международную выставку ЛОГИСТИКА. Северо-Запад.
 
Реклама Отказаться от рекламы
 
Subscribe.Ru Читать выпуск на сайте

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

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

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

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

Boriss
Статус: Академик
Рейтинг: 2256
• повысить рейтинг »
_Ayl_
Статус: Практикант
Рейтинг: 1837
• повысить рейтинг »
vladisslav
Статус: 6-й класс
Рейтинг: 1239
• повысить рейтинг »

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

Номер выпуска:1333
Дата выхода:10.05.2010, 10:00
Администратор рассылки:Лысков Игорь Витальевич, Модератор
Подписчиков / экспертов:292 / 60
Вопросов / ответов:1 / 1
IRC-канал по теме:#assembler

Вопрос № 178137: Доброго времени Суток дорогие эксперты: Требуется с помошью TASM организовать решение задачи Дана квадратная матрица Найти минимальное из значений элементов побочной диагонали матрицы и соседних с ними справа и слева. Хар-ки:


Вопрос № 178137:

Доброго времени Суток дорогие эксперты:

Требуется с помошью TASM организовать решение задачи

Дана квадратная матрица Найти минимальное из значений элементов побочной диагонали матрицы и соседних с ними справа и слева.

Хар-ки:
1)процессор intel core 2 solo CPU U3500
2)window vista home premium 32х разрядная
3)Turbo Assembler Version 4.1 в папке asm находится фаил TASM поэтому думаю он предпочтителен
4)вычисления производить в сопроцессоре

Элементы матрицы целые числа

пример:

1 6 0 4
2 5 7 1
8 9 0 4
1 2 3 5

Использовать побольше коментариев ипроцедур очень желательно! Спасибо за внимание!

Отправлен: 01.05.2010, 09:46
Вопрос задал: Юдин Евгений Сергеевич, 1-й класс
Всего ответов: 1
Страница вопроса »


Отвечает Лысков Игорь Витальевич, Модератор :
Здравствуйте, Юдин Евгений Сергеевич.
Вот Вам программа:
Код:
N equ 4   ;размерность матрицы

cseg segment para public 'code'
assume cs:cseg, ds:dseg, es:dseg
start: ;точка входа
mov ax, dseg ;настроим сегментные регистры
mov ds, ax
mov es, ax

call GetMin ;ищем минимум в нужных диагоналях

lea dx, sMin ;сообщение
mov ah, 9
int 21h

mov ax, min ;минимум
call PrDec ;выведем знаковое десятичное число

lea dx, sPress ;Pres any key
mov ah, 9
int 21h

mov ah, 0 ;ждем нажатие на клавишу
int 16h

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

;ищем минимум в указанной диагонали
;параметры:
; BX - адрес (база) массива
; SI - индекс перв ого элемента диагонали
; DX - приращение для индекса следующего элемента диагонали
; CX - число элементов диагонали
Diagonal proc
mov ax, [bx+si] ;очередной элемент диагонали
cmp ax, min ;сравниваем (сравнение знаковое) с минимумом
jge D_next ;если >=, то на следующий
mov min, ax ;сохраним очередной минимальный
D_next:
add si, dx ;индекс следующего элемента
loop Diagonal ;по всем элементам диагонали
ret
Diagonal endp

;ищем минимум по трем диагоналям
GetMin proc
mov min, 7fffh ;заведомо самое большое число
lea bx, array ;адрес массива
mov dx, 2*(N-1) ;приращение для следующего элемента (*2, потому что слова)
;диагональ выше побочной
mov si, 2*(N-2) ;индекс первого элемента
mov cx, N-1 ;число элементов
call Diagonal
;побочная диагональ
mov si, 2*(N-1) ;индекс первого элемента
mov cx, N ;число элементов
call Diagonal
;диагональ ниже побочной
mov si, 2*(2 *N-1) ;индекс первого элемента
mov cx, N-1 ;число элементов
call Diagonal
ret
GetMin endp

;вывод десятичного числа из ax
PrDec proc
test ax, ax ;проверим на знак
jns pd_unsigned ;если неотрицательное, то на вывод
push ax
mov al, '-' ;выведем '-'
int 29h
pop ax
neg ax ;получим модуль числа
pd_unsigned:
mov bx, 10 ;будем делить на 10, чтобы получить остатки
xor cx, cx ;счетчик цифр
pd_dig: ;цикл формирования цифр,
xor dx, dx ; как остатков от деления на 10
div bx
push dx ;очередной остаток = десятичному разряду
inc cx ;считаем
or ax, ax ;есть ли еще?
jnz pd_dig
pd_pr: ;цикл вывода цифр
pop ax ;извлекаем из стека в обратном порядке
add al, '0' ;в символ
int 29h
LOOP pd_pr ;по всем
ret
PrDec endp

cseg ends

dseg segment para public 'data'
sMin db 'Minimum = $'
sPres s db 0dh,0ah,'Press any key for exit$'
min dw 0
array dw 1,6,0,4
dw 2,5,7,1
dw 8,9,0,4
dw 1,2,3,5
dseg ends

end start ;конец программы

-----
Удачи!

Ответ отправил: Лысков Игорь Витальевич, Модератор
Ответ отправлен: 06.05.2010, 12:19
Номер ответа: 261236
Украина, Кировоград
Тел.: +380957525051
ICQ # 234137952
Mail.ru-агент: igorlyskov@mail.ru
Абонент Skype: igorlyskov

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

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

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

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

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

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

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

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


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

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

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

     
     
    Реклама Отказаться от рекламы
    Новый Firefox3.6
    Быстрый и удобный браузер. Скачай бесплатно прямо сейчас!<>fx.yandex.ru

    Как заработать в интернете?
    Начните бизнес на Forex с надёжным партнёром! Зарегистрироваться.<>promo.akmos.ru

    Новости на gzt.ru.
    Все главные новости дня, обзор происшествий, мнения экспертов.<>www.gzt.ru

     
      Рассылки
    SoftSoft.ru - свежий софт
    Дайджест новых поступлений программ в каталог Softsoft.ru

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

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

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

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