Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Эксперт GPSS
 Аватар для SergProgC++
555 / 414 / 105
Регистрация: 02.07.2010
Сообщений: 1,729

Вывод максимального отриц. элемента массива

25.12.2010, 21:38. Показов 1183. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане изучаю ассемблер недавно. Сделал сортировку массива по убыванию , но как обрабатывать отрицательные числа не пойму. Подскажите как работать с отрицательными значениями
вот задание и то что уже сделал. Прошу помощи!!!

Задание : Найти максимальный отрицательный элемент массива

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
COD segment ;сортировка массива
    assume CS:COD, DS:COD, SS:COD, ES:COD
    org 100h
Main:
    mov dx,offset Text
    call Viv
    mov dx,offset Massiv
    call Viv
    mov dx,offset Tab
    call Viv
    call Sort
    call V2MElement
    mov dx,offset Tab
    call Viv
    call Exit 
    
Sort proc; процедура сортировки исходного массива
    xor ax,ax
    xor bx,bx
    mov cx,000Ah
    lea si,Massiv
    mov di,si
 
Sort1:      
    mov al,[di]
    inc si
    mov bl,[si]
    cmp bl,'$'
    jz ex
    cmp al,bl
    jg max
    mov [si],al
    mov [di],bl
    jmp Sort1
max:    
    jmp Sort1       
ex: 
    mov si,di
    inc di
    loop Sort1  
    ret
Sort endp
 
V2MElement proc; процедура вывода 2макс элемента
    lea si,Massiv
    lea di,M2El
    mov al,[si]
    mov [di],al
    mov dx,offset Text1
    call Viv 
    mov dx,offset M2El
    call Viv
    ret
V2MElement endp     
 
Viv proc  ;процедура вывода сообщений
    mov ah,9
    int 21h
    ret
Viv endp
 
Exit proc ;процедура выхода из ДОС
    mov dx,offset Str1
    call Viv
    mov ah,10h
    int 16h
    int 20h
    ret
Exit endp
 
 
Str1 db 'Ќ*¦¬ЁвҐ «оЎго Є«*ўЁиг...$'
Massiv db '5698123A0F$';исходный массив
M2El db 0,'$';буффер для максимального элемента
Text db 'исходный массив: $'
Text1 db 'максимальный элемент*: $'
Tab db 10,13,'$'
COD ends
 
end Main
Но что делать если массив 5-698-1-3А0F не пойму и как отрицательные значения обрабатывать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.12.2010, 21:38
Ответы с готовыми решениями:

Построить массив В путем вычитания максимального значения исходного массива А из соответветствующего элемента этого массива
идет экзаем очень нужно... дан одномерный массив А из N элементов. По данному массиву построить массив В. каждый элемент массива В ...

Вывод элементов, находящихся после максимального элемента в массиве
Требуется помощь начинающему программисту в ассемблере. Задание: Дан одномерный массив, вывести элементы, находящиеся после максимального...

Вывод номера элемента максимального и минимального элемента массива
Вечер добрый. Есть вот такая вот задача: Заполнить массив из 10 элементов случайными числами в интервале и найти в нем максимальный и...

2
4192 / 1839 / 222
Регистрация: 06.10.2010
Сообщений: 4,125
26.12.2010, 09:17
Находит максимальное отрицательное. Если отрицательных нет - максимальное положительное.
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
.model tiny
.code
.486
org 100h
_start:
 mov si,offset Massiv
 mov cx,len
 xor dx,dx
 a:lodsw
   cmp dx,ax
   ja b        ;
     mov dx,ax ; cmova dx,ax
   b:          ;
 loop a
 
 mov  ax,dx
 call OutInt
   
 xor ax,ax
 int 16h  
ret
 
OutInt:
  mov   si,offset _str
  cwd
  xor   ax,dx
  sub   ax,dx
  mov   byte ptr ds:[si],'-'
  sub   si,dx  
  xor   bx,bx
  bsr   bx,ax
  mov   di,bx
  cmp   [decnum+bx+di],ax
  adc   bx,0
  movsx bx,[declen+bx]
  add   si,bx
  lea   edi,[ebx*4-4]
  neg   bx
  cwde  
  mul  dword ptr ds:[multiplier+di]
  mov  ecx,10
  c:mul ecx
    add dl,'0'
    mov ds:[si+bx],dl
    inc bx
  jne c   
  mov byte ptr ds:[si+bx],'$'
  mov ah,9
  mov dx,offset _str
  int 21h  
ret
  multiplier dd 429496730,42949673,4294968,429497,42950
  declen     db  1, 1, 1, 1, 1, 2, 2, 2,  3,  3,  3,   4,   4,   4,   4,    5           
  decnum     dw  9, 9, 9, 9, 9,99,99,99,999,999,999,9999,9999,9999,9999,65535
 
 
  Massiv dw 5,-698,-1,3A0Fh
  len = ($-Massiv)/2
  _str db 7 dup('$')
end _start
0
Эксперт GPSS
 Аватар для SergProgC++
555 / 414 / 105
Регистрация: 02.07.2010
Сообщений: 1,729
26.12.2010, 12:23  [ТС]
Поясни некоторые строки например что за набор цифр внизу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.12.2010, 12:23
Помогаю со студенческими работами здесь

Затруднения с нахождения максимального отриц. элементов среди двухмерного массива
Определить наибольший среди отрицательных элементов четных столбцов матрицы целых чисел размером 4x6. Ввод реализовал, дошел до...

Вывод максимального элемента массива
For i = 1 To UBound(z) If Abs(z(i)) > Abs(Max) Then Max = z(i) Next i Нужно вывести индекс max, как это...

Вывод максимального элемента массива
Помогите,пожалуйста,написать задачу в Delphi7. Дан массив из n элементов (n- вводить через объект edit, сами элементы через inputbox)....

Вывод максимального элемента двумерного массива
Есть двумерный массив 5 на 5 элементов Вывести максимальный элемент всего массива

Вывод на экран максимального элемента одномерного массива
Программа которая выводит на экран максимальный элемент одномерного массива .


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru