Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/35: Рейтинг темы: голосов - 35, средняя оценка - 4.83
Klimovfedor92

Определить максимальное значение элементов массива и его индекс

01.04.2013, 20:44. Показов 7317. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
задание такое-Задан двумерный массив однобайтовых целых чисел без знака. Определить максимальное значение элементов массива и его индекс
сама программа
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
;Задан двумерный массив двухбайтовых целых чисел без знака.
;Определить максимальное значение элементов массива и его индексы.
 
.model small ; один сегмент кода, данных и стека
.stack 100h ; отвести под стек 256 байт
 
.data ; начало сегмента данных
M equ 4 ; задаем число строк массива
N equ 3 ; задаем число столбцов массива
T equ M * N; всего элементов в массиве 
mas db 222,5,3
db 1,9,4
db 65,2,7
db 8,2,5 ;задаем элементы массива
max db ?; значение мaксимального элемента 
maxindx db ?; индекс мaксимального элемента
s db 'position:$' 
 
.code ; начало сегмента кода
start: 
;Вывод строки на экран
mov ax,@data 
mov ds,ax ; настройка DS на начало сегмента данных
mov ah,9 ; номер функции DOS
mov dx, offset s ; DS :  DX < - адрес строки S
int 21h ; Вывод строки на экран в текущей позиции курсора
 
xor ax,ax
 
mov cx,T 
dec cx
xor di,di; указатель на 1-й элемент, принятый за начальный мaксимум 
mov maxindx,dx
mov si,2; адрес 2-го элемента (его индекс 1, а адрес=индекс*2)
 
;поиск максимального элемента
maximum:
mov ax,mas[si] ;запоминаем текущий элемент
cmp ax,mas[di] ;сравниваем текущий элемент с максимумом
jbe next ;если он меньше идём дальше к метке
mov di,si ;если больше запоминаем его индекс;
next: ;переходим к следующему элементу
inc si 
loop maximum 
mov maxindx,di; запись индекса мaксимального элемента
mov max,ax; запись значения максимального элемента 
;нахождение индекса двумерного массива
mov al,maxindx
mov bl,N
div bl ;ah=остаток(столбец), al=частное(строка)
 
;вывод индекса элемента элемента
add al,30h ;коррекция ascii
inc al ;увеличиваем на 1 для представления индексов с 1
int 29h ;вывод индекса строки
mov al,' ' ;заносим в al пробел для разделения
int 29h ; выводим пробел для разделения
xchg al,ah ;меняем местами содержимое al и ah для удобного вывода
add al,30h ;коррекция ascii
inc al ;увеличиваем на 1 для представления индексов с 1
int 29h ;вывод индекса столбца
 
;Выход из программы
mov ah,4ch 
int 21h 
end start
в итоге после компиляции пишет переполнение

Помогите пожалуйста
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2013, 20:44
Ответы с готовыми решениями:

Подсчитать количество четных элементов массива, и определить индекс последнего четного
Не могу понять как организовать нахождение последнего чётного. В задании Количество чётных я просто увеличивал счётчик,но вот как найти...

Определить количество элементов массива, у которых индекс строго меньше N, а старший бит равен 1
Даны массив А и целое число N &lt;=25. Определить количество его элементов, у которых индекс строго меньше N, а старший бит равен 1. ...

Определить сумму элементов массива и количество его элементов, которые меньше -13
Задан массив А нужно написать программу определения суммы элементов массива и количество его элементов элементы в массиве должны быть...

1
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
02.04.2013, 07:38
Цитата Сообщение от Klimovfedor92 Посмотреть сообщение
mov max,ax; запись значения максимального элемента
;нахождение индекса двумерного массива
mov al,maxindx
mov bl,N
div bl ;ah=остаток(столбец), al=частное(строка)
Команда div здесь не будет делить байт на байт.
У div всегда размер делимого в два раза больше размера делителя.
Т.е. тут она будет делить слово AX на байт BL.
А в слове AX в его младшей половине AL то, что ты собираешься делить.
А в старшей половине AH - старший байт максимального элемента max.
В результате при делении - делимое оказывается не совсем таким,
каким ты имел ввиду.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.04.2013, 07:38
Помогаю со студенческими работами здесь

Определить среднее значение элементов массива
Определить среднее значение элементов массива А(I) и В(I). Определение среднего значения оформить в виде подпрподпрограммы.I= 1,2,..,10. ...

Определить среднее значение элементов массива
Определить среднее значение элементов массива А(I) и В(I). Определение среднего значения оформить в виде подпрограммы.I= 1,2,..,10. ...

Найти максимальное значение среди четных элементов массива и его индекс
1.​ Найти максимальное значение среди четных элементов массива и его индекс. 2.​ Найти максимальное значение среди элементов от...

Определить значение минимального элемента массива и его индекс
Даны вещественные массивы А, F. В каждом массиве определить значение минимального элемента и его индекс. Вывести на печать исходный массив...

найти максимальное значение и его индекс
Добрые люди помогите решить задание. Напишите алгоритм на языке блок-схем и на языке паскаль. задание для работы. задан массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru