IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Найти и вывести максимальный из четных элементов массива, удовлетворяющих условию (28 < i < 232)
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Найти и вывести максимальный из четных элементов массива, удовлетворяющих условию (28 < i < 232).

При этом даётся массив в файле, который нужно подсоединить к программе. Ещё не понятно, чтобы удовлетворяло условию 28 < i < 232 - индекс, или само число, скорее всего индекс good.gif smile.gif Если кто может помочь - помогите rolleyes.gif

P.S. Компилятор юзается masm32

Сообщение отредактировано: NightMan665 -


Прикрепленные файлы
Прикрепленный файл  array_16.rar ( 10.65 килобайт ) Кол-во скачиваний: 314
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
Ещё не понятно, чтобы удовлетворяло условию 28 < i < 232 - индекс, или само число, скорее всего индекс
Ну, это уж тебе видней - число это или индекс. По написанию - вроде индекс... Тогда задача решается вот так, например:

.486
.model flat, stdcall
option casemap :none

include D:\masm32\include\windows.inc
include D:\masm32\macros\macros.asm

include D:\masm32\include\masm32.inc
include D:\masm32\include\kernel32.inc

includelib D:\masm32\lib\masm32.lib
includelib D:\masm32\lib\kernel32.lib

; Подключаем твой файл данных
include array_16.dat

.code

start:
call main
exit

main proc
mov bl, 0 ; max

mov esi, offset file1
add esi, 28

mov ecx, fsize1
sub ecx, 203 ; (232 - 28 - 1)
.while ecx > 0
mov al, [esi]

test al, 1
jnz go_next

cmp al, bl
jbe go_next ; a[i] <= max ?
mov bl, al

go_next:
inc esi
dec ecx
.endw

print chr$('max of evens = ')
xor eax, eax
mov al, bl
print str$ (eax)
ret
main EndP
end start
Если все-таки 28 < arr[ i ] < 232, то придется чуть-чуть переделать. Попробуй сделать это самостоятельно.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 0:49
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name