Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: i8080/8085/KP580
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Rose16
0 / 0 / 1
Регистрация: 02.12.2016
Сообщений: 21
1

Найти номер первого отрицательного элемента массива

15.05.2017, 11:44. Просмотров 773. Ответов 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
; Работаем с такими значениями:
; -123, -48, -3, -514, 20, -256, 39
 
; Выберем адрес массива в памяти
; Подойдёт любое значение после
; кода нашей программы
rd #50       ; acc <- адрес
wr r0        ; acc -> регистр r0
wr r1        ; acc -> регистр r1
wr r2        ; acc -> регистр r2
 
;------------------------------------------------------
; Заполняем массив
 
; Так заполняем отрицательные значения
; [1] -123
rd #0        ; acc <- 0
sub #123     ; acc <- acc - значение
wr @r0+      ; mem[r0++] <- acc
 
; [2] -48
rd #0
sub #48
wr @r0+
 
; [3] -3
rd #0
sub #3
wr @r0+
 
; [4] -514
rd #0
sub #514
wr @r0+
 
; А так вписываем положительные значения
; [5] 20
rd #20       ; acc <- значение
wr @r0+      ; mem[r0++] <- acc
 
; [6] -256
rd #0
sub #256
wr @r0+
 
; [7] 39
rd #39
wr @r0+
 
;------------------------------------------------------
; Закончили заполнение массива
; В r0 находится указатель на конец массива
; Преобразуем его в количество элементов
rd r0        ; acc <- r0
sub r1       ; (r0 - r1) -> acc
wr r0        ; acc -> r0
 
;------------------------------------------------------
; Проверяем в цикле отсутствие знака у всех элементов
next:        ; очередная итерация
rd @r1+      ; acc <- mem[r1++]
jns found    ; если элемент без знака, выходим
jrnz r0,next ; иначе r0-- и продолжаем поиск
 
; Цикл завершён, положительные элементы не найдены
rd #0        ; acc <- 0 (нулевой элемент массива)
jmp exit     ; переходим к выводу результата
 
found:       ; Мы нашли положительный элемент
rd r1        ; acc <- адрес текущего элемента
sub r2       ; вычитаем из него адрес начала
             ; и получаем индекс
 
exit:
out          ; acc -> устройство вывода
hlt          ; выход из программы
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2017, 11:44
Ответы с готовыми решениями:

[ЭВМ Жмакина] Номер первого отрицательного элемента
Дан массив чисел С1,С2...,С10. Найти номер первого отрицательного элемента. По учебному пособию...

Найти номер первого отрицательного элемента массива и занести его в AH.
Дано A DB 100 Dup(?). Найти номер первого отрицательного элемента массива и занести его в AH.

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

Найти индекс первого ненулевого элемента массива
Написать в tasm: Дан массив из 4х элементов Найти номер 1 не нулевого элемента) Заранее спасибо!

Заменить все нулевые элементы (кроме первого элемента массива) на значения предыдущего элемента
есть программа каторая делает : В массиве A заменить все нулевые элементы (кроме первого элемента...

2
Jin X
5271 / 1440 / 166
Регистрация: 14.12.2014
Сообщений: 2,780
Записей в блоге: 10
Завершенные тесты: 2
15.05.2017, 13:04 2
Rose16, почему тема не в специализированном разделе?
Почему нет тегов [asm][/asm] вокруг исходников?

Добавлено через 1 минуту
Полагаю, что нужно просо заменить jns на js...
1
ФедосеевПавел
Модератор
4252 / 2341 / 940
Регистрация: 01.02.2015
Сообщений: 7,735
15.05.2017, 21:25 3
Это, скорее всего, задание для CompModel-2K.
У подобных тем нет подраздела и я их (вместе с ЭВМ Жмакина) "складываю" в корень "Низкоуровнего".
Тут были пояснения по CompModel-2K Все кому интересно, что такое CompModel, сюда..
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2017, 21:25

Циклы. Найти порядковый номер первого нуля
В поле из 100 байт с начальным адресом 021С найти порядковый номер первого нуля.

Адрес первого неотрицательного элемента массива поместить в регистр R0
Доброго времени суток. Помогите составить программу, задание в заголовке темы. Заранее спасибо!

Найти номер первого положительного числа. Модель учебной ЭВМ Жмакина
Написать программу определения номера первого положительного числа элементов массива чисел С1,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru