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

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

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

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

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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2024, 02:43
Ответы с готовыми решениями:

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

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

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

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

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

6
1170 / 648 / 110
Регистрация: 15.05.2012
Сообщений: 3,998
09.02.2024, 07:19 2
Лучший ответ Сообщение было отмечено ШУР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  [ТС] 3
Благодарю,возможно запрограммировать на вывод информации 9 пинов? Т.к. на порте В всего 8 пинов,возможно подключить для вывода ещё порт С?

Добавлено через 1 час 46 минут
И ещё вопрос, как тогда сохранить программу в группе ячеек начиная с ячейки 800?
0
1170 / 648 / 110
Регистрация: 15.05.2012
Сообщений: 3,998
09.02.2024, 12:29 4
Цитата Сообщение от ШУР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  [ТС] 5
Можете, пожалуйста ,дописать код,чтобы на ввод было пять бит информации ,а на вывод 9 бит?
0
1170 / 648 / 110
Регистрация: 15.05.2012
Сообщений: 3,998
11.02.2024, 11:32 6
Могу, не вопрос.
0
0 / 0 / 0
Регистрация: 09.02.2024
Сообщений: 4
12.02.2024, 01:12  [ТС] 7
Как с вами договориться можно на доработку программы?

Добавлено через 10 минут
Цитата Сообщение от pyzhman Посмотреть сообщение
Надо с 800 - пишем .org 800.
Всё равно выдаёт ту же ошибку....
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2024, 01:12
Помогаю со студенческими работами здесь

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

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

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

Кодер на LZ77
Переде мной стоит задание написать шифратор и дешифратор на lz77,с принципом я разобрался, но...

Ошибка В кодер
Вот у меня такая Проблема s:=HTTP.Get('http://vseotzyvy.ru/login/?next=/my/profile/'); ...

кодер-декодер
Ребят, такая проблема: надо написать программу кодер(или шифратор, как вам удобнее) программу...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru