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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2015, 15:49   #1
barbaroe
Новичок
Джуниор
 
Регистрация: 08.10.2015
Сообщений: 2
По умолчанию Найти сумму последних положительных элементов массива, MASM32

Пробовал что-то написать, но результат выдает неверный. Подскажите, где ошибаюсь.

Код:
.586
.model flat, stdcall
option casemap: none


include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
include \masm32\include\debug.inc
include \masm32\include\user32.inc 

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\debug.lib
includelib \masm32\lib\user32.lib

.data
Arr dd -5,6,2,22,3,45,-6,234,-55,13
Var dw 7
.code
start:
    mov ecx, 1
    mov bx, 0
sum:
    xor eax, eax
    mov eax, [Arr+ecx*4-4]
    cmp eax, 0
    jg addnumb
    inc ecx
    cmp ecx,11
    jne sum
    jmp _exits
addnumb:
    add edx, eax
    inc bx
    cmp bx, Var
    je _exits
    inc ecx
    cmp ecx,11
    jne sum
    jmp _exits
 _exits:
    PrintDec edx
    invoke ExitProcess, NULL
 end start
barbaroe вне форума Ответить с цитированием
Старый 08.10.2015, 16:13   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я в ассемблер 32 не силён, но хочу сказать, что задание у Вас какое-то мутное!!
что значит "последние положительные элементы массива" ?!
допустим, взять ваш массив:
Код:
 -5, 6, 2, 22, 3, 45, -6, 234, -55, 13
какие тут положительные элементы ПОСЛЕДНИЕ и почему?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.10.2015, 16:23   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пишу с потолка:
Код:
.data
Arr dd -5,6,2,22,3,45,-6,234,-55,13
q dd 0
.code
start:
 mov ecx,10
 mov esi,Arr
 xor eax,eax
@for:
 cmp [esi],0
 jl next
 xchg [q],eax
 mov eax,[esi]
 add esi,4
@next:
loop for
add eax,[Arr+ecx*4]

Выводим EAX
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.10.2015, 16:38   #4
barbaroe
Новичок
Джуниор
 
Регистрация: 08.10.2015
Сообщений: 2
По умолчанию

Извиняюсь за неправильную формулировку вопроса, найти надо сумму N последних положительных элементов массива. В своем коде я обозначил количество положительных чисел, которые надо сложить под именем Var.
barbaroe вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Найти сумму и произведение положительных элементов массива Звездочка 22 Паскаль, Turbo Pascal, PascalABC.NET 4 01.02.2015 12:24
Найти сумму положительных элементов двумерного массива Denis26 Visual C++ 2 23.10.2013 15:09
Pascal. Найти сумму отрицательных и сумму положительных элементов линейного массива. badname47 Паскаль, Turbo Pascal, PascalABC.NET 1 07.02.2012 06:29
Найти максимальный из положительных элементов матрицы и сумму отрицательных элементов. bessonov12 Microsoft Office Excel 7 04.05.2009 05:44
Найти сумму последних L положительных элементов в массиве A={a[i]}. Assembler Kasim Помощь студентам 2 16.12.2007 16:12