0 / 0 / 0
Регистрация: 09.02.2024
Сообщений: 4

кодер Хемминга

09.02.2024, 02:43. Показов 1299. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую,помогите разобраться с кодом:

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
.include"m128def.inc"
.cseg ; директива .cseg определяет начало сегмента,где будет расположен
.org 0x0800 ; директива .org устанавливает PC=0820 иследующая команда будет располагаться во flash-памяти по этому адресу
LDI R16,0xFF
OUT DDRB,R16 ;инициализация порта B на вывод
LDI R17,0x00
 OUT DDRA,R17 ;иницилизация порта А на ввод
 S:
IN R18,PINA ;запись в регистр R18 исходного сообщения с порта А
STS 0x0620,R18;запись исходного сообщения в ячейку ОЗУ 0997h
LDS R19,0x0620;запись в регистр R19 исходного сообщения
 ANDI R19,0x01 ;выделение первого информационного бита
MOV R20,R19 ;запись первого информационного бита в регистр R20
LDS R19,0x0620;запись в регистр R19 исходного сообщения
ANDI R19,0x02 ;выделение второго информационного бита
MOV R21,R19 ;запись второго информационного бита в регистр R21
LSR R21 ;сдвиг вправо второго информационного бита в нулевой разряд
LDS R19,0x0620;запись в регистр R19 исходного сообщения
ANDI R19,0x04 ;выделение третьего информационного бита
MOV R22,R19 ;запись третьего информационного бита в регистр R22
LSR R22
LSR R22 ;сдвиг вправо третьего информационного бита в нулевой разряд
LDS R19,0x0620;запись в регистр R19 исходного сообщения
 ANDI R19,0x08 ;выделение четвёртого информационного бита
MOV R23,R19 ;запись четвёртого информационного бита в регистр R23
LSR R23
 LSR R23
 LSR R23 ;сдвиг вправо четвёртого информационного бита в нулевой разряд
STS 0x0622,R20;запись первого информационного бита в ячейку ОЗУ 0999h
EOR R20,R23
 EOR R20,R22 ;вычисление первого контрольного бита
STS 0x1000,R20;запись первого контрольного бита в ячейку ОЗУ 1000h
LDS R20,0x0622;запись в регистр R20 первого информационного бита
EOR R20,R23
EOR R20,R21 ;вычисление второго контрольного бита
STS 0x1001,R20;запись второго контрольного бита в ячейку ОЗУ 1001h
LDS R20,0x0622;запись в регистр R20 первого информационного бита
 
EOR R20,R21
 EOR R20,R22 ;вычисление третьего контрольного бита
LSL R20
 LSL R20
 LSL R20 ;сдвиг влево третьего контрольного бита в третий разряд
LSL R21 ;сдвиг влево второго информационного бита в первый разряд
LSL R22
 LSL R22 ;сдвиг влево третьего информационного бита во второй разряд
LSL R23
 LSL R23
 LSL R23
 LSL R23 ;сдвиг влево четвёртого информационного бита в четвёртый разряд
OR R20,R21
 OR R20,R22
 OR R20,R23 ;начало формирования кода Хемминга (объединение 2го,3го,4го информационных битов с 3им контрольным)
LDS R21,0x0622;запись в регистр R21 первого информационного бита
OR R20,R21 ;слияние первого информационного бита с кодом Хемминга
LDS R21,0x1000;запись в регистр R21 первого контрольного бита
LSL R21
 LSL R21
 LSL R21
 LSL R21
 LSL R21
 LSL R21 ;сдвиг влево первого контрольного бита в шестой разряд
OR R20,R21 ;слияние первого контрольного бита с кодом Хемминга
LDS R21,0x1001;запись в регистр R21 второго контрольного бита
LSL R21
 LSL R21
 LSL R21
 LSL R21
 LSL R21 ;сдвиг влево второго контрольного бита в пятый разряд
OR R20,R21 ;завершение формирования кода Хемминга
STS 0x00622,R20;запись кода Хемминга в ячейку ОЗУ 0998h
OUT PORTB,R20 ;вывод кода Хемминга на индикаторы
RJMP S ;возврат на опрос порта А
Компиляция проходит успешно,но после запуска появляется ошибка "Invalid opcode 0xFFFF at PC=0x0002"
Помогите пожалуйста допилить код.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2024, 02:43
Ответы с готовыми решениями:

Кодер и декодер на ATtiny2313
кто нибудь делал подобное? http://rodyokot.ru/circuit/digital/outomat/23/

Какой кодер необходим для кодирования изображения?
Здравствуйте! Имеется микроконтроллер STM32F4. Каким кодером необходимо воспользоваться для того, чтобы кодировать изображение (неважно...

Кодер Хемминга
Нашёл в интернете кодер Хемминга, но при запуске выдаёт ошибку о том, что переменная otv была использована до её объявления. Сам в коде...

6
1184 / 659 / 113
Регистрация: 15.05.2012
Сообщений: 4,074
09.02.2024, 07:19
Лучший ответ Сообщение было отмечено ШУР0801 как решение

Решение

Assembler
1
.org 0x0800 ; директива .org устанавливает PC=0820
Директива устанавливает РС= 0х800. Очевидно, что 820 это опечатка. Это так, придирки.
По сути - программа сидит по адресам, начиная с 0х800. А микроконтроллер стартует с адреса 0х0000. А там находится девственно чистая память, те самые 0хFFFF. Эмулятор честно останавливается с ошибкой.
0
0 / 0 / 0
Регистрация: 09.02.2024
Сообщений: 4
09.02.2024, 09:11  [ТС]
Благодарю,возможно запрограммировать на вывод информации 9 пинов? Т.к. на порте В всего 8 пинов,возможно подключить для вывода ещё порт С?

Добавлено через 1 час 46 минут
И ещё вопрос, как тогда сохранить программу в группе ячеек начиная с ячейки 800?
0
1184 / 659 / 113
Регистрация: 15.05.2012
Сообщений: 4,074
09.02.2024, 12:29
Цитата Сообщение от ШУР0801 Посмотреть сообщение
на вывод информации 9 пинов?
На сколько угодно.
Цитата Сообщение от ШУР0801 Посмотреть сообщение
начиная с ячейки 800?
Устанавливаем нужный параметр при директиве .org.
Сейчас стоит 0х0800. Стало быть программа находится по адресу 0х0800. Надо с 800 - пишем .org 800.
0
0 / 0 / 0
Регистрация: 09.02.2024
Сообщений: 4
10.02.2024, 03:13  [ТС]
Можете, пожалуйста ,дописать код,чтобы на ввод было пять бит информации ,а на вывод 9 бит?
0
1184 / 659 / 113
Регистрация: 15.05.2012
Сообщений: 4,074
11.02.2024, 11:32
Могу, не вопрос.
0
0 / 0 / 0
Регистрация: 09.02.2024
Сообщений: 4
12.02.2024, 01:12  [ТС]
Как с вами договориться можно на доработку программы?

Добавлено через 10 минут
Цитата Сообщение от pyzhman Посмотреть сообщение
Надо с 800 - пишем .org 800.
Всё равно выдаёт ту же ошибку....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2024, 01:12
Помогаю со студенческими работами здесь

Кодер-Декодер Хемминга.
Кодер: #include <iostream> unsigned char xr (unsigned char c) { int d; unsigned char s=0; for (d=0;d<8;d++) s^=(c...

Кодер/декодер
Как на дельфи можно так закодировать и раскодировать?

Кодер UUE
Доброе время суток! Требуется написать кодер/декодер uue на ассемблере. Возник вопрос по алгоритму uue: если размер файл не кратен 3...

Стеганография. КОдер.
# include <iostream> int main() { int i=0, j=0, num=0,y; char c, s, g, buf; FILE *fp1,*fp2,*fp; ...

кодер/декодер
здравствуйте. есть небольшой проект - консольное приложение кодера/декодера (сишные файлы датируются 1992 годом). удалось...


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

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

Новые блоги и статьи
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru