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

понедельник, 18 апреля 2016 г.

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

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

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

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

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

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 356
• повысить рейтинг »
Куликов Роман Евгеньевич
Статус: 1-й класс
Рейтинг: 0
• повысить рейтинг »
Козлова Ольга Александровна
Статус: 1-й класс
Рейтинг: 0
• повысить рейтинг »

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

Номер выпуска:1598
Дата выхода:18.04.2016, 14:51
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:18 / 7
Вопросов / ответов:1 / 1

Консультация # 189181: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Скоро курсовая я не знаю как че делать в ассемблере Найти произведение матриц произвольного размера(должна проводиться проверка на возможность умножение(необез)) Прошу программу написать на начальном уровне,заранее спасибо(программу писать в TASM)...

Консультация # 189181:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Скоро курсовая я не знаю как че делать в ассемблере

Найти произведение матриц произвольного размера(должна проводиться проверка на возможность умножение(необез))

Прошу программу написать на начальном уровне,заранее спасибо(программу писать в TASM)

Дата отправки: 13.04.2016, 11:52
Вопрос задал: radik (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, radik!

Смотрите приложение:

Код (Assembler) :: выделить код
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:вопросы задавайте в мини-форуме.
Удачи!

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 15.04.2016, 16:25
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!

 
     Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программироватьRFpro.ru: Ассемблер? Это просто! Учимся программироватьRFpro.ru: Ассемблер? Это просто! Учимся программироватьВсе выпуски рассылки
 
 
Subscribe.Ru / АО «Интернет-Проекты» / О компании / Политика конфиденциальности

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

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