Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 15.11.2020
Сообщений: 14
1

[MCU-51] Подсчитать количество единичных разрядов в ячейке внешней памяти

15.11.2020, 12:17. Просмотров 1780. Ответов 14

Ребят, спасите пожалуйста, совсем не понимаю ассемблер, но лабу сдать нужно:

Составить на ассемблере МК-51 и отладить программу выдачи через параллельный порт P2 одного из сигналов в соответствии с количеством единиц в ячейке внешней памяти данных с адресом 0512h. если количество единиц – четно, то выдать значение 02h, а если нечетно, то 12h.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2020, 12:17
Ответы с готовыми решениями:

В каждом элементе массива А[10] подсчитать количество единичных битов среди разрядов с номерами от 3 до 6
В каждом элементе массива А подсчитать количество единичных битов среди разрядов с номерами от 3 до...

Определить разрядность целого числа, использовать битовый сдвиг вправо.Подсчитать количество единичных разрядов,
Определить разрядность целого числа, использовать битовый сдвиг вправо. Подсчитать количество...

Подсчетать количество единичных разрядов на нечетных местах в двоичном представлении числа
4. Записать программу для подсчета количества единичных разрядов на нечетных местах в двоичном...

Нормальный Алгоритм Маркова: количество единичных разрядов в троичной системе счисления
Вычислить количество единичных разрядов в троичной системе счисления. Преподаватель говорит, что...

14
369 / 86 / 43
Регистрация: 10.11.2019
Сообщений: 125
15.11.2020, 16:03 2
Лучший ответ Сообщение было отмечено Ivan8kov как решение

Решение

Компилировалось в asem 51

Assembler
1
2
3
4
5
6
7
8
9
10
start: mov dptr,#0512h
       movx a,@dptr
       mov C,P ; Carry=искомый флаг четности
       mov A,#02h ; теперь флаг четности меняется, т к в A - другое число
; но это уже неважно, т к мы сохранили P в C
       jc  m1
       mov A,#12h
m1:    mov P2,A
       jmp start ; бесконечный цикл
       end
Добавлено через 40 минут
Извините, видимо всё же условный переход

Assembler
1
        jnc  m1
0
0 / 0 / 0
Регистрация: 15.11.2020
Сообщений: 14
15.11.2020, 16:55  [ТС] 3
Огромное спасибо за помощь)

Добавлено через 41 минуту
А вот вопрос , а что записывать вместо m1 так как выдает ошибку , текущий ячейку т.е. PC или какое то другое значение?
0
369 / 86 / 43
Регистрация: 10.11.2019
Сообщений: 125
15.11.2020, 19:04 4
Такой код работает ?

Assembler
1
        jnc $+4
Вы какой программой компилируете ?
0
0 / 0 / 0
Регистрация: 15.11.2020
Сообщений: 14
15.11.2020, 21:33  [ТС] 5
https://drive.google.com/drive... leBfYHeKrE - вот ссылка на видео , которая находиться на гугл диске , где я по шагово прохожу код , видео идет 20 секунд , я за это время несколько раз успеваю пройти код .
0
пофигист широкого профиля
4274 / 2798 / 791
Регистрация: 15.07.2013
Сообщений: 16,227
15.11.2020, 21:47 6
Ivan8kov, и в чем проблема?
0
0 / 0 / 0
Регистрация: 15.11.2020
Сообщений: 14
15.11.2020, 21:52  [ТС] 7
Там код не много не сходится в конке с ответом выше , если вместо JNC написать что - то другое , то он не будет работать как бесконечный цикл
0
пофигист широкого профиля
4274 / 2798 / 791
Регистрация: 15.07.2013
Сообщений: 16,227
15.11.2020, 22:00 8
Код в первом ответе абсолютно правильный. Но похоже вы не правильно работаете с метками. Поэтому и ошибку компилятор выдает на m1
0
0 / 0 / 0
Регистрация: 15.11.2020
Сообщений: 14
15.11.2020, 22:01  [ТС] 9
Уже не выдает посмотрите видео дело в другом
0
пофигист широкого профиля
4274 / 2798 / 791
Регистрация: 15.07.2013
Сообщений: 16,227
15.11.2020, 22:05 10
Видео посмотрел. Если вы вместо JNC поставите JMP должен получиться бесконечный цикл.
0
0 / 0 / 0
Регистрация: 15.11.2020
Сообщений: 14
15.11.2020, 22:25  [ТС] 11
[MCU-51] Подсчитать количество единичных разрядов в ячейке внешней памяти


вот посмотрите , что он мне выдает , а выдает он мне ошибку , если пишу jmp
0
пофигист широкого профиля
4274 / 2798 / 791
Регистрация: 15.07.2013
Сообщений: 16,227
15.11.2020, 22:30 12
Да. Вместо JMP напишите SJMP
1
0 / 0 / 0
Регистрация: 15.11.2020
Сообщений: 14
15.11.2020, 22:45  [ТС] 13
Дописал все заработало
0
0 / 0 / 0
Регистрация: 19.11.2020
Сообщений: 6
19.11.2020, 16:34 14
Ребят, проверьте пожалуйста, верно ли сделал
СОСТАВИТЬ НА АССЕМБЛЕРЕ МК-51 И ОТЛАДИТЬ ПРОГРАММУ ВЫДАЧИ ЧЕРЕЗ ПАРАЛЛЕЛЬНЫЙ ПОРТ Р0 ОДНОГО ИЗ СИГНАЛОВ В СООТВЕТСТВИИ С КОЛИЧЕСТВОМ ЕДИНИЦ В ЯЧЕЙКЕ ВНЕШНЕЙ ПАМЯТИ ДАННЫХ С АДРЕСОМ 0502H. ЕСЛИ КОЛИЧЕСТВО ЕДИНИЦ – ЧЕТНО, ТО ВЫДАТЬ ЗНАЧЕНИЕ 01H, А ЕСЛИ НЕЧЕТНО, ТО 10H.
0
Миниатюры
[MCU-51] Подсчитать количество единичных разрядов в ячейке внешней памяти  
369 / 86 / 43
Регистрация: 10.11.2019
Сообщений: 125
19.11.2020, 17:05 15
Всё верно
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2020, 17:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Подсчитать количество единичных бит
Ассемблер дается тяжело, но надо сдавать , суть задания: Составить программу подсчета количества...

Сумма единичных разрядов
Добрый день. Как можно используя while посчитать количество единичных разрядов в двоичном...

Подсчитать количество единичных бит в числе типа double
Как это можно сделать? С целой частью понятно, а с дробной нет. double u; u=555.667; long...

Подсчитать количество единичных битов в массиве чисел (для Х86)
Добрый! Очень тяжело освоить ассемблер, но сдавать как-то нужно. Если арифметическими опреациями...

Измерение количества единичных разрядов в файле
Разработать объектно-ориентированную программу для измерения общего числа единичных разрядов во...

Подсчитать количество единичных битов в числе произвольной размерности (вставка на Assembler в Pascal)
Помогите написать программу Подсчитать количество единичных битов в числе произвольной...


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

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

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