РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты по данной тематике Номер выпуска: | 1598 | Дата выхода: | 18.04.2016, 14:51 | Администратор рассылки: | Лысков Игорь Витальевич (Старший модератор) | Подписчиков / экспертов: | 18 / 7 | Вопросов / ответов: | 1 / 1 | Консультация # 189181: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Скоро курсовая я не знаю как че делать в ассемблере Найти произведение матриц произвольного размера(должна проводиться проверка на возможность умножение(необез)) Прошу программу написать на начальном уровне,заранее спасибо(программу писать в TASM)... Консультация # 189181: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Скоро курсовая я не знаю как че делать в ассемблере
Найти произведение матриц произвольного размера(должна проводиться проверка на возможность умножение(необез))
Прошу программу написать на начальном уровне,заранее спасибо(программу писать в TASM) Дата отправки: 13.04.2016, 11:52 Вопрос задал: radik (Посетитель) Всего ответов: 1 Страница онлайн-консультации » Консультирует Зенченко Константин Николаевич (Модератор): Здравствуйте, radik!
Смотрите приложение:
model small,pascal ;задаем размеры матриц szRowA equ 4 szColA equ 3 szRowB equ szColA szColB equ 5 szRowC equ szRowA szColC equ szColB code 186 start: mov ax,@data mov ds,ax;адресуем сегменты mov es,ax ;выводим обе матрицы call outMatrix,offset A,szRowA,szColA call outMatrix,offset B,szRowB,szColB ;начинаем умножение матриц mov cx,szRowC;szRowA xor si,si xor bx,bx ;цикл по строкам матрицы С @@01: push cx mov cx,szColC;szColB xor di,di ;цикл по столбцам матрицы С @@02: call CalcMatrix;считаемм ;записываем значение mov C[bx],ax add bx,2;следующий элемент матрицы С add di,2;сдедующий столбец матрицы В loop @@02 pop cx add si,2*szColA;следующая строка матрицы А loop @@01 call outMatrix,offset C,szRowC,szColC mov ah,4Ch int 21h ;п/программа вывода матрицы outMatrix proc x:word,y:word,z:word uses ax,cx,di mov di,x mov cx,y ;цикл по строкам om1: push cx mov cx,z ;цикл по столбцам om2: mov ax,[di];читаем число call outNumber,ax,6;выводим add di,2;следующий loop om2 ;переходим на другую строку экрана mov al,10 int 29h mov al,13 int 29h pop cx loop om1 ;разделитель между матрицами mov al,10 int 29h mov al,13 int 29h ret outMatrix endp ;п/программа вывода одного числа с выравниваем outNumber proc x:word,y:word uses ax,cx,dx,si mov si,10;система счисления xor cx,cx;счетчик цифр oN1: xor dx,dx div si;получаем младший разряд push dx;запоминаем его в стеке inc cx;увеличиваем сетчик or ax,ax;пока не ноль jnz oN1 ;разделяющие пробелы mov ax,' '-'0' oN2: push ax inc cx cmp cx,y jb oN2 ;извлекаем число со стека oN3: pop ax add al,'0';переводим в символ int 29h;выводим loop oN3 ret outNumber endp ;п/программа подсчета одного элемента CalcMatrix proc uses bx,cx,dx,si,di ;считаем один элемент матрицы С mov cx,szColA xor bx,bx @@03: mov ax,A[si];число матрицы А xor dx,dx mul B[di];умножаем на число из В add si,2;к следующему столбцу add di,2*szColB;к следующщей строке add bx,ax;суммируем loop @@03 mov ax,bx ret Calcmatrix endp data dat = 1 A label word rept szRowA rept szColA dw dat dat = 1+dat mod 10 endm endm ;dat = 1 B label word rept szRowB rept szColB dw dat dat = 1+dat mod 10 endm endm dwRow dw ? C dw szRowC*szColC dup(?) stack 256 end start Матрицы генерируются макросами. ps:вопросы задавайте в мини-форуме. Удачи!
Оценить выпуск | Задать вопрос экспертам главная страница | стать участником | получить консультацию техническая поддержка | восстановить логин/пароль Дорогой читатель! Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно! МЫ РАБОТАЕМ ДЛЯ ВАС! |
Комментариев нет:
Отправить комментарий