Помогите пожалуйста решить задачу: Вывести индекс массива, с которго начинается самая длинная цепочка четных элементов.
volvo
21.04.2009 15:39
Какой Ассемблер у тебя? TASM? MASM?
Гость
22.04.2009 1:47
MASM
BAEVIK
22.04.2009 2:57
Цитата(volvo @ 21.04.2009 12:39)
Какой Ассемблер у тебя? TASM? MASM?
MASM
volvo
22.04.2009 3:10
Ну, раз MASM, то основная процедура может выглядеть вот так, например:
; Вот так описан массив и переменные: .data A dword 1, 2, 32, 4, 5, 61, 72, 8, 92, 14 sz dword 10 b dword 0 i dword 11
; а так - основная процедура: main proc mov edx, 0 ; evens mov ebx, 0 ; max
mov esi, offset A mov ecx, sz .while ecx > 0 mov eax, [esi] test eax, 1 jnz not_even
inc edx jmp check_max not_even: mov b, 1
check_max: cmp b, 1 je inside cmp ecx, 1 jne go_next
inside:
cmp edx, ebx jle not_change
mov i, ecx mov ebx, edx
not_change: mov edx, 0 mov b, 0
go_next: add esi, sizeof(dword) dec ecx
.endw
print chr$('index = ') mov eax, sz inc eax
sub eax, i sub eax, ebx print str$ (eax) ret main EndP
Под MASM 6.14 отработало.
Гость
16.05.2009 17:42
А можно ли оформить эту программу без использования макросов, на прямую делать обращение.
volvo
16.05.2009 21:44
Можно и сразу в машинных кодах написать, только зачем? Если, используя MASM (для тех, кто не в курсе, это означает Macro Assembler), писать без Макросов, то зачем использовать MASM? Используй TASM, например... Да мало ли еще трансляторов... Хочешь - меняй программу. А я извращениями не занимаюсь. Если в языке есть нужная мне функциональность, я ее использую, а не заменяю своими велосипедами...
BAEVIK
21.05.2009 5:51
Цитата(volvo @ 16.05.2009 17:44)
Можно и сразу в машинных кодах написать, только зачем? Если, используя MASM (для тех, кто не в курсе, это означает Macro Assembler), писать без Макросов, то зачем использовать MASM? Используй TASM, например... Да мало ли еще трансляторов... Хочешь - меняй программу. А я извращениями не занимаюсь. Если в языке есть нужная мне функциональность, я ее использую, а не заменяю своими велосипедами...
ясно
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.