Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 19:53   #1
A_L_E_N_K_A
 
Регистрация: 28.11.2010
Сообщений: 7
Подмигивание

Б4-3. Дана матрица 5х5. Для данного натурального М найти сум-
му тех элементов матрицы, сумма индексов которых равна М.

При выполнении заданий каждого раздела разработать программы в
двух вариантах:
А) в виде «минимального» модуля с просмотром результатов работы в
отладчике ,
Б) с выводом результата работы на экран

Последний раз редактировалось A_L_E_N_K_A; 28.11.2010 в 20:16.
A_L_E_N_K_A вне форума Ответить с цитированием
Старый 28.11.2010, 19:57   #2
A_L_E_N_K_A
 
Регистрация: 28.11.2010
Сообщений: 7
По умолчанию

Вторая модуль
Код:
; сумма елементов сумма индексов которых равна m
; результат см. в EBX 
.386 
.model flat, stdcall 
includelib kernel32.lib 
ExitProcess proto:DWORD 
.data 
; задаем матрицу из 5 строк и 5 столбцов 
   A BYTE   1,2,3,12,5, 
			1,2,3,4,5,
			1,2,3,4,5,
			1,2,3,4,5,
			1,2,3,4,5 
	m BYTE 3
	cikl_stop DWORD ?
	;summ dword ?
.code 
start: 
  xor eax, eax 
  xor ebx, ebx 
  xor ecx, ecx 
  xor edx, edx 
  xor esi, esi 
  xor edi, edi
	MOV al,0  ; сумма искомых елементов
; внешний цикл по строкам 
  MOV ECX,5   ; счетчик внешнего цикла 
  MOV EBX,0 ; смещение от А до начала строки (20*I) 
   MOV SI,0  ; индекс элемента внутри строки (j) 
  mov dl,0 ; псевдо i
  
L: 	MOV cikl_stop, ECX  ; запоминание CX внешнего цикла  				```````````
; внутренний цикл по столбцам 
  MOV ECX, 4  ; задание счетчика внутреннего цикла   
mov dh,0 ;	псевдо j
L1: 
	xor ah, ah
	mov ah, dl 
	add ah, dh
	
	inc dh
	inc esi
	cmp ah, m 
	LOOPNE L1 
	add al, A[EBX][esi]
	LOOPE L1
	JNE L2
;конец внутреннего цикла 
L2: MOV ECX, cikl_stop  ; восстановить CX для внешнего цикла 
  ADD EBX, 5  ; на начало следующей строки 
  inc dl
  ;inc esi
  LOOP L    ; цикл 5 раза 
  MOV bl, al 
invoke ExitProcess, 0 
end start

Последний раз редактировалось A_L_E_N_K_A; 28.11.2010 в 20:17.
A_L_E_N_K_A вне форума Ответить с цитированием
Старый 28.11.2010, 20:07   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И в чем вопрос?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.11.2010, 20:15   #4
A_L_E_N_K_A
 
Регистрация: 28.11.2010
Сообщений: 7
По умолчанию

в программе в середине идет перескок.
в первом цикле считает правильно,во втором на единицу меньше,не могу понять в чем дело...
A_L_E_N_K_A вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь с программированием микроконтроллера в Ассемблере quart Фриланс 9 10.02.2011 14:49
нужна программка на ассемблере Святойspb Фриланс 1 24.05.2010 20:42
как описать массивы на встроенном ассемблере паскаля mandarinka27 Паскаль, Turbo Pascal, PascalABC.NET 0 25.12.2008 19:28
нужна помощь в написании программы на ассемблере marsela Помощь студентам 4 25.04.2008 21:42