Mov AX,25
Mul Arr ;I–индекс максимального элемента
Mov BX,DX
Mov CX,AX
Ассемблер (массив)
Найти результат умножения максимального элемента массива на 25 и записать его в Rg BX, Rg CX (формат элементов массива - слово).
Исходный массив хранится в сегменте данных, результаты необходимо сохранить в РОНы.
:confused:
Код:
P.S.DOS,я так понимаю?
проблема то в том, что я ваобще мало смыслю в ассемблере, и не знаю как обявить массив инайти его макс элемент(
Объявляется массив,например,так:
Код:
Arr DW 25 Dup(0)
Код:
Arr DW <значение 1>,<значение 2>,<значение 3>,…,<значение N>
А вообще,рекомендую тебе сначала изучить ассемблер,дабы хотя б такие простые задачи решить самому
Просто первое задание я сам осилил, а на массивах застопорился.
Я сейчас то что получилось выложу посмотриш на предмет ошибок, если не затруднит?
А за подсказки спасибо)
PS
Совсем забыл спрасить, а как найти макс элемент массива?
или подразумеваеццо что это нужно делать в ручную?
А максимальный элемент массива ищется любым из возможных способов.Как вариант,присваиваешь некой переменной значение 1го элемента,а затем сравниваешь поочерёдно со всеми последующими.Если больше,то запоминаешь
Вот вариант(не буду делить по секциям):
Код:
Arr DW 1,5,2,4,7,34,23,7
Mov AX,Arr
XOr DX,DX
Mov BX,7
FindMax:
Cmp Arr[BX*2],AX
JBE @F
Mov AX,Arr[BX*2]
Mov DX,BX
@@:
Dec BX
JNZ FindMax
Mov AX,Arr
XOr DX,DX
Mov BX,7
FindMax:
Cmp Arr[BX*2],AX
JBE @F
Mov AX,Arr[BX*2]
Mov DX,BX
@@:
Dec BX
JNZ FindMax
Отлаживал в 32-битной среде,соответственно,регистры тоже были такой же разрядности.Не знаю,как они отреагируют на то,что я в коде изменил их на 16 разрядов.Пробуй:)