464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
1 | |
В массиве найти минимальный и максимальный элемент11.09.2012, 02:25. Показов 56835. Ответов 22
Метки нет (Все метки)
Здравствуйте! На ассемблере последний раз писал что-то ещё на 1-м курсе универа и всё забыл за неимением практики. А тут пришла знакомая и попросила помочь с заданием.
Если не сложно, помогите мне. Буду очень благодарен. Задание: 1) в массиве найти минимальный и максимальный элемент; Добавлено через 8 минут Желательна максимальная простота кода и, если не сложно, комментарии, т.к. это потом ей ещё защищать.
0
|
11.09.2012, 02:25 | |
Ответы с готовыми решениями:
22
Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами Найти в этом массиве минимальный элемент N и максимальный элемент M Найти в массиве минимальный и максимальный элемент Найти минимальный и максимальный элемент в массиве |
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
|
|||||||||||
12.09.2012, 19:34 | 2 | ||||||||||
Добавлено через 22 часа 34 минуты body90, пардон))) хотел повыпендриваться)))
3
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
12.09.2012, 21:42 [ТС] | 3 |
И не понимаю, что делает "lodsb". Можете пояснить, для чего эта команда в этом коде?
0
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
12.09.2012, 21:57 [ТС] | 4 |
Вот что у меня получается:
0
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
12.09.2012, 22:11 [ТС] | 5 |
В архиве то, что я написал. Запускаю по run.bat.
0
|
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
|
|
12.09.2012, 22:14 | 6 |
body90, ты наверно думаешь, что представленный код является полным?
это только выполнение твоего задания(поиск min,max), оформление здесь отсутствует, как допишешь его, так и сможешь проверить.. возми ту же элементарную программку - Hello World, впиши туда то что тебе написали и всё.. только вот ещё одно, результата на экране ты не увидишь, пока не допишешь вывод, либо ч/з отладчик..
2
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
||||||
12.09.2012, 22:25 [ТС] | 7 | |||||
А как вывод делать?
0
|
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
|
|
12.09.2012, 22:28 | 8 |
ну у тебя часть кода находится в данных, перенести надо..
по поводу вывода - https://www.cyberforum.ru/asse... 54461.html, выбирай, что душе угодно..
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
||||||
13.09.2012, 02:16 [ТС] | 9 | |||||
.data должен быть пустым?
Добавлено через 36 минут Так тоже вылетает с ошибкой:
Подскажите, пожалуйста, что я ещё неправильно делаю. А то мне сегодня её уже надо отдать...
0
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
13.09.2012, 02:49 [ТС] | 10 |
Вот как оно вылетает (первое изображение) после нажатия F9 в TLINK.exe.
На втором изображении то, что видно на консоли, если я сделаю это же через DosBox. После этого курсор просто мигает и не реагирует ни на какие нажатия.
0
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
13.09.2012, 05:31 [ТС] | 11 |
Почему-то мне кажется, что приложение просто зацикливается.
Добавлено через 2 часа 18 минут И с этим разобрался, но в bh и bl ложатся числа, которых даже нет в массиве. Посмотрел в Turbo Debuggere в окне Wotches. Что может быть не так?
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
13.09.2012, 05:47 | 12 |
body90, опять используется массив двойных слов вместо массива байтов, и массив array убери из секции code в секцию data
будь внимательнее и думай головой
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|||||||||||
13.09.2012, 11:08 [ТС] | 13 | ||||||||||
Mikl___, сделал так, как Вы сказали. Совсем теперь по "циклу" один раз стало проходить.
А тут точно можно использовать bh и bl? Я не могу понять их поведения. Они по прежнему получают значения, которых вообще нет в массиве. Ещё и меняют значение, когда выполняется последний кусок кода
Добавлено через 25 секунд Может кто-то скомпиллировать мой код и сказать что не так?
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
13.09.2012, 11:40 | 14 |
body90, тебе же сказали -- помести array в сегмент данных!
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|||||||||||
13.09.2012, 11:46 [ТС] | 15 | ||||||||||
Всё равно результат тот же.
bl = 159
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
13.09.2012, 11:47 [ТС] | 16 |
Вот скрин.
1
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
||||||
13.09.2012, 11:50 | 17 | |||||
должно быть вот так
2
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
13.09.2012, 11:56 [ТС] | 18 |
bh работает, а в bl теперь всё время лежит 0, хотя в массиве минимальный элемент = 2.
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
13.09.2012, 12:03 | 19 |
body90, естественно, потому что изначально BL=0, а ноль всегда меньше двух
поставь вместо xor bx,bx команду mov bx,7Fh и всё заработает
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
||||||
13.09.2012, 12:03 [ТС] | 20 | |||||
Не знаю правильно ли, но вышел из ситуации так:
0
|
13.09.2012, 12:03 | |
13.09.2012, 12:03 | |
Помогаю со студенческими работами здесь
20
Найти минимальный и максимальный элемент в массиве Найти максимальный и минимальный элемент в массиве Классы. В массиве чисел размером 6х6 элементов найти максимальный элемент, минимальный элемент и их индексы Найти в массиве минимальный элемент m и максимальный элемент M Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |