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

Если в векторе есть хотя бы один отрицательный элемент, то отсортировать элементы вектора по убыванию

12.06.2019, 18:23. Показов 1936. Ответов 5

Студворк — интернет-сервис помощи студентам
Правильно ли я написала программу на ассемблере?

Если в векторе есть хотя бы один отрицательный элемент, то отсортировать элементы вектора по убыванию.

Программа запускается, но правильно ли она выполняется?

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
Dseg segment para public 'data'
 mas db -1,-2,3,4,5
 n dw 5
 kol db ?
Dseg ends
Sseg segment para stack 'stack'
 dw 30 dup(0)
Sseg ends
Cseg segment para public 'code'
osn proc near
assume cs:cseg,ds:dseg,ss:sseg
 mov ax,dseg
 mov ds,ax
 
 mov cx,n
 mov al,0
 mov di,0
 ;Нахождение кол. отрицательных эл-ов
start: cmp mas[di],0
 jge met
 inc al
met: inc di
 loop start
 mov kol, al 
 
 ;если отрицательные эл-ты присутствуют, то отсортировать массив по убыванию
 cmp al,0
 jle Cicl3
 
 ;сортировка по убыванию
 Cicl3: mov cx,n
 dec cx
Cikl2: push cx
 mov cx, n
 dec cx 
 mov si,0 ;si=j
cikl1: mov di,si
 inc di ;di=j+1
 mov cl, mas[si]
 mov bl, mas[di]
 cmp cl,bl
 jge met1
 mov mas[si],bl
 mov mas[di],al
met1: inc si
 loop cikl1
 pop cx
 loop cikl2
 
 mov ax, 4c00h
 int 21h
osn endp
cseg ends
end osn
Добавлено через 53 минуты
Переделала вот так. Но выводит ерунду.

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
Dseg segment para public 'data'
 mas db -1,-2,3,4,5
 n dw 5
Dseg ends
Sseg segment para stack 'stack'
 dw 30 dup(0)
Sseg ends
Cseg segment para public 'code'
osn proc near
assume cs:cseg,ds:dseg,ss:sseg
 mov ax,dseg
 mov ds,ax
 
 mov cx,n
 mov al,0
 mov di,0
start: cmp mas[di],0
 jb Cicl3
 inc di
 loop start
 ;сортировка по убыванию
 Cicl3: mov cx,n
 dec cx
Cikl2: push cx
 mov cx, n
 dec cx 
 mov si,0 ;si=j
cikl1: mov di,si
 inc di ;di=j+1
 mov cl, mas[si]
 mov bl, mas[di]
 cmp cl,bl
 jge met1
 mov mas[si],bl
 mov mas[di],al
met1: inc si
 loop cikl1
 pop cx
 loop cikl2
 
 mov ax, 4c00h
 int 21h
osn endp
cseg ends
end osn
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2019, 18:23
Ответы с готовыми решениями:

Заменить все элементы главной диагонали квадратной матрицы нулями, если на главной диагонали есть хотя бы один отрицательный элемент
Заменить все элементы главной диагонали квадратной матрицы (4*4) нулями, если на главной диагонали есть хотя бы один отрицательный элемент

Построить массив В(5) по следующему правилу: В(I) присвоить 1, если в 1-ой строке есть хотя бы один отрицательный элемент
Дан массив А. Построить массив В(5) по следующему правилу: В(I) присвоить 1, если в 1-ой строке есть хотябы один отрицательный элемент, в...

Упорядочить элементы строк матрицы, в которых есть хотя бы один отрицательный элемент, по невозрастанию
Дана целочисленная матрица {Aij}i=A,...,n; j=1..n, n<=100 Если сумма наибольшего и наименьшего элементов матрицы - простое число,...

5
 Аватар для Kukuxumushu
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
16.06.2019, 18:36
osiktany, совершенно все ваши проблемы решаются отладчиком. В вашем случае выручит даже Emu8086. А "нате вот код, ищите где чего не так" - это неконструктивный подход.
1
2 / 2 / 2
Регистрация: 08.05.2016
Сообщений: 24
13.10.2019, 22:12  [ТС]
Просто я не понимала в Ассемблере ничего. Извините, я не думала, что это так будет выглядеть для вас) Я в тот момент всеми силами искала ошибку и разбиралась, что да как)
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8647 / 4482 / 1669
Регистрация: 01.02.2015
Сообщений: 13,888
Записей в блоге: 11
13.10.2019, 22:56
osiktany, одолели проблему?
0
2 / 2 / 2
Регистрация: 08.05.2016
Сообщений: 24
14.10.2019, 00:03  [ТС]
Лучший ответ Сообщение было отмечено ФедосеевПавел как решение

Решение

Да, спасибо)

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
Dseg segment para public 'data'
 mas db 1,2,-3,4,5
 n dw 5
Dseg ends
Sseg segment para stack 'stack'
 dw 30 dup(0)
Sseg ends
Cseg segment para public 'code'
osn proc near
assume cs:cseg,ds:dseg,ss:sseg
 mov ax,dseg
 mov ds,ax
 mov cx,n
 mov al,0
 mov di,0
start: cmp mas[di],0
 jb met
 jmp Cikl3
 
 met: inc di
 loop start
 
 jmp exit
 ;сортировка по убыванию
Cikl3: mov cx,n
 dec cx
Cikl2: push cx
 mov cx, n
 dec cx 
 mov si,0 ;si=j
cikl1: mov di,si
 inc di ;di=j+1
 mov al, mas[si]
 mov bl, mas[di]
 cmp al,bl
 jge met1
 mov mas[si],bl
 mov mas[di],al
met1: inc si
 loop cikl1
 pop cx
 loop cikl2
 exit:
 mov ax, 4c00h
 int 21h
osn endp
cseg ends
end osn
1
14.10.2019, 00:13

Не по теме:

На форуме множество людей, часто в первом ответе просто спрашивают о чём-то, уточняют детали. И если топикстартер не вступает в беседу - тема "усыхает". В следующий раз, будьте активнее. Тем более, что вы в итоге справились самостоятельно и помощь была нужна незначительная.

Успехов!

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.10.2019, 00:13
Помогаю со студенческими работами здесь

В(I) присвоить 1 , если в первой строке массива есть хотя бы один отрицательный элемент , в противной случае B(I) присвоить 0
Дан массив A.построить массив В(5) по следующему правилу : В(I) присвоить 1 , если в первой строке массива есть хотя бы один отрицательный...

Если в массиве есть хотябы один отрицательный элемент, то заменить все отрицательные элементы на t
Дан массив t1,....,t20. Если в массиве есть хотябы один отрицательный элемент, то заменить все отрицательные элементы на t(ср) , иначе...

Если в матрице есть хотя бы один элемент, больший ста, то элементы обеих диагоналей заменить нулями
Если в заданной матрице A(N,M) есть хотя бы один элемент, больший ста, то элементы обеих диагоналей замените нулями. Вот начало my...

Есть ли в 3 столбце массива хотя бы один отрицательный элемент?
Дан двумерный массив. Есть ли в 3 столбце массива хотя бы один отрицательный элемент? В случае положительного ответа, напечатать его...

Если в строках или столбцах есть хотя бы один элемент равный нулю, заменить нулями все их элементы
Помогите решить задачу. Обнуление матрицы. Дана матрица NxN. Элементы, стоящие в строках или столбцах, где есть хотя бы один элемент...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru