Найти и вывести максимальный из четных элементов массива, удовлетворяющих условию (28 < i < 232).
При этом даётся массив в файле, который нужно подсоединить к программе. Ещё не понятно, чтобы удовлетворяло условию 28 < i < 232 - индекс, или само число, скорее всего индекс Если кто может помочь - помогите
P.S. Компилятор юзается masm32
Прикрепленные файлы
array_16.rar ( 10.65 килобайт )
Кол-во скачиваний: 310
.486Если все-таки 28 < arr[ i ] < 232, то придется чуть-чуть переделать. Попробуй сделать это самостоятельно.
.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
Какой-то интересный у нас MASM... в общем сразу когда компилил выдал мне:
main proc
LOCAL fsize1 :DWORD
mov bl, 0 ; max