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

[КР580] Сосчитать число нулей и единиц в числах массива

09.11.2018, 00:14. Просмотров 518. Ответов 9

Нужно, чтобы начальный адрес массива лежал в HL, а конечный в DE. Вообщем что-то не доходит...

Assembler
1
2
3
4
5
6
7
8
9
10
MVI A 3E AA 
MVI C 0E 05
LXID 11 06 00
LXIH 21 01 09 
MOV M,A 77
INX H 23
INX H 23
DCX D 1B
JNZ C2 0A 08
HLT 76
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2018, 00:14
Ответы с готовыми решениями:

Преобразовать строку, содержащую произвольную последовательность нулей и единиц (двоичное число), в целое число
Помогите пожалуйста с заданием Написать функцию, которая преобразует строку, содержащую...

Вывести все десятичные числа, в двоичной записи которых число нулей на 2 превосходит число единиц
Есть вот такая прога на Си, которая выводит все десятичные числа, в двоичной записи которых число...

Дано натуральное число n, действительное число х, действительная матрица n * 2n. Получить последовательность b1, . bn из нулей и единиц. Где b1 = 1
Дано натуральное число n, действительное число х, действительная матрица n * 2n. Получить...

Вывести все десятичные числа, в двоичной записи которых число нулей на 2 превосходит число единиц
Доброго времени суток! Долго уже мучаюсь с задачкой, для которой необходимо написать код на Си,...

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

9
Kukuxumushu
3075 / 663 / 121
Регистрация: 13.06.2015
Сообщений: 2,325
Завершенные тесты: 2
09.11.2018, 00:52 2
Valery99, не доходит что?
Assembler
1
2
LXI D,0006h - конечный адрес
LXI H,0901h - начальный адрес
Судя по ошибкам синтаксиса, и что начало с концом перепутаны, тут много чего может не доходить...
1
pyzhman
1152 / 510 / 74
Регистрация: 15.05.2012
Сообщений: 2,902
09.11.2018, 06:27 3
Цитата Сообщение от Valery99 Посмотреть сообщение
начальный... конечный
А делать-то что должна программа?
1
Valery99
1 / 1 / 0
Регистрация: 25.02.2017
Сообщений: 123
09.11.2018, 09:38  [ТС] 4
Вообще считать число нулей и единиц в числах массива. Ну для начала его же надо их заполнить. Вот я и спрашиваю, как сделать так, чтобы этот массив начинается в... И

Добавлено через 6 минут
То есть у меня например будет начало 900H, а конец 905H, так как тогда сделать эту программу, если DCX вычетает 1, а jnz работает по не нулю. На надо, чтобы дошло до 900 адреса и вышло, а она то продолжит считать?
0
09.11.2018, 09:38
pyzhman
1152 / 510 / 74
Регистрация: 15.05.2012
Сообщений: 2,902
09.11.2018, 09:43 5
Введите не адрес конца массива, а счетчик числа элементов в массиве. И декрементируйте его.
1
Valery99
1 / 1 / 0
Регистрация: 25.02.2017
Сообщений: 123
09.11.2018, 09:47  [ТС] 6
А что тогда значит в задании начальный и конечный адрес массива должны хранится в HL и De? Что требуется сделать тогда
0
pyzhman
1152 / 510 / 74
Регистрация: 15.05.2012
Сообщений: 2,902
09.11.2018, 11:16 7
Очевидно, то и значит. Воспользуйтесь советом Kukuxumushu. И проверяйте на достижение равенства.
1
ФедосеевПавел
Модератор
4518 / 2528 / 1018
Регистрация: 01.02.2015
Сообщений: 8,284
09.11.2018, 21:36 8
Valery99, посмотрите, как реализован цикл в соседней теме
Создать массив приращений(к580)

Задаётся начало массива и его длина. Из длины вычитается 1 и при равенстве 0 - цикл завершается.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
lxi h, Src  ;адрес начала массива
 
lxi b, 5 ;bc=5 длина массива
for:
  ldax h  ;чтение очередного элемента массива
  inx h   ;адрес очередного элемента увеличить на 1
 
.......................... ;какая-то обработка массива 
 
  dcx b  ;уменьшение счётчика цикла на 1
  mov a, b  ;проверка счётчика цикла на равенство 0
  or c
jnz for  ;если не равен 0, то выполнить тело цикла ещё раз
0
Valery99
1 / 1 / 0
Регистрация: 25.02.2017
Сообщений: 123
10.11.2018, 00:19  [ТС] 9
Вообщем я понял так, что из конечного адреса будем вычитать начальный до тех пор пока конечный больше или равен начальному, а когда меньше цикл должен завершаться. Вот теперь только ломаю голову, а как это сделать. Ну есть две команды JNC по не переносу и JC по переносу. Я не пойму именно, когда мы сравниваем младший и старший байт, что за перенос возникает...
0
pyzhman
1152 / 510 / 74
Регистрация: 15.05.2012
Сообщений: 2,902
10.11.2018, 06:18 10
Как вариант сравнивать на равенство:
Assembler
1
2
3
4
5
6
7
mov a,h
cmp d
jnz next
mov a,l
cmp e
jnz next
; сюда попадем при равенстве hl=de
0
10.11.2018, 06:18
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2018, 06:18

Определить число нулей и единиц в массиве
диапазон изменения значений элементов массива 0 или 1 Сделать два варианта программы: -элементы...

Определить число нулей и единиц в массиве
диапазон изменения значений элементов массива 0 или 1 Сделать два варианта программы: -элементы...

Преобразовать строку, состоящую из нулей и единиц, в число
Всем здоров, извиняйте, если не тот раздел, такой вопрос: как преобразовать строку, состоящуюю из...


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

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

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