Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 1 / 1
Регистрация: 07.04.2016
Сообщений: 28
1

Программу на asm переделать на Си

06.12.2016, 16:51. Показов 709. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый вечер! С горем пополам написал код нахождения определителя матрицы 3х3, подскажите зачем в метке Matrix записывается в R16 0x55 ?
Нужно переписать эту программу на Си, понятия не имею как работать с памятью и регистрами в Си, хотелось бы узнать как это пишется с подробными комментариями.
Кликните здесь для просмотра всего текста
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
.include"m128def.inc" 
 
jmp RESET 
.ORG 0x3C 
jmp READ 
 
RESET: 
 
ldi R16, 0b100110 
sts UCSR1C, R16 
 
ldi R29, 0 
 
ldi R27, 0x01 
ldi R26, 0x00 
 
ldi R16,0b10011000 
sts UCSR1B, R16 
 
ldi R16,0b0 
sts UBRR1H, R16 
ldi R16,0b10111 
sts UBRR1L, R16 
 
ldi r16,high(RAMEND) 
out SPH,r16 
ldi r16,low(RAMEND) 
out SPL,r16 
sei 
A: jmp A 
 
READ: 
lds r20, UDR1 
mov r6, r20 
call SAFE 
 
st x+, R20 
inc R29 
cpi R29, 9 
breq Matrix 
reti 
 
Matrix: 
ldi r16, 0x55 //ТУТ ЧТО?
mov r6, r16  
call SAFE 
ldi R27, 0x01 
ldi R26, 0x00 
 
lds R2, 0x100 
lds R3, 0x104 
mul R2, R3 
lds R3, 0x108 
mul R0, R3 
mov R6, R0 
 
lds R2, 0x101 
lds R3, 0x105 
mul R2, R3 
lds R3, 0x106 
mul R0, R3 
mov R7, R0 
 
lds R2, 0x102 
lds R3, 0x103 
mul R2, R3 
lds R3, 0x107 
mul R0, R3 
mov R8, R0 
 
lds R2, 0x102 
lds R3, 0x104 
mul R2, R3 
lds R3, 0x106 
mul R0, R3 
mov R9, R0 
 
lds R2, 0x100 
lds R3, 0x105 
mul R2, R3 
lds R3, 0x107 
mul R0, R3 
mov R10, R0 
 
lds R2, 0x101  
lds R3, 0x103 
mul R2, R3 
lds R3, 0x108 
mul R0, R3 
mov R11, R0 
 
add R6, R7 
add R6, R8 
 
sub R6, R9 
sub R6, R10 
sub R6, R11 
 
call safe 
reti 
SAFE: 
lds R0, UCSR1A 
sbrs R0, 5 
jmp SAFE 
sts UDR1, R6 
RET

И было бы не плохо определить какой код на asm или Cи более оптимален и ест меньше памяти
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2016, 16:51
Ответы с готовыми решениями:

ASM atmega написать программу на ASM
Нужна помощь в написании программы с объяснениями.. Проверить свою программу Вашу работу. ...

Delphi и ASM - не работает вызов функции Invoke через asm
В Delphi не работает вызов функции Invoke через asm. часть кода: asm invoke...

Создание проекта с участием c++ и asm модулей. Ошибка asm модуля
Доброго времени суток! Подскажите, пожалуйста, как исправить данную ошибку (А2008)?

Переписать программу на С/С++ подсчета тождества на ASM
есть программа, которая считает тождество на С/С++, её же нужно написать на асм, есть те кто...

2
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
06.12.2016, 22:57 2
Цитата Сообщение от VlasTeLiN_ Посмотреть сообщение
С горем пополам написал код нахождения определителя матрицы 3х3, подскажите зачем в метке Matrix записывается в R16 0x55 ?
звучит бодро . Написали, но не знаете зачем .

ЗЫ: обозначьте переменными регистры, можно даже с тем же именем:
uint8_t (или int8_t, в зависимости от используемых знаковых операций или беззнаковых) R16, R17 и т.д.

Потом, написав текст - подумайте что по факту делают команды. Возможно, они оперерируют 16битными числами, тогда переменная будет uint16_t...
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
07.12.2016, 08:47 3
А тут что:
Assembler
1
2
3
lds r20, UDR1 
mov r6, r20 
call SAFE
?
Цитата Сообщение от VlasTeLiN_ Посмотреть сообщение
в R16 0x55 ?
Надо полагать, передается параметр в функцию.
Цитата Сообщение от VlasTeLiN_ Посмотреть сообщение
как это пишется
Согласно алгоритму. Язык никакой роли не играет.
Цитата Сообщение от VlasTeLiN_ Посмотреть сообщение
оптимален и ест меньше
При такой программе совсем не критично.
0
07.12.2016, 08:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2016, 08:47
Помогаю со студенческими работами здесь

Переписать программу с ASM на C для PIC
Имеется исходник для pic18 на ASM(с комментариями) нужно нарисовать блок схему алгоритма и...

Напишите программу на ASM-е для КР580ВМ80
Помогите пожалуйста написать программу на ассемблере (кп580вм80)!! Очень прошу! Нужно составить...

Как внедрить программу на ASM в проект на МСС18
Имеется готовый проект TCP/IP от MICROCHIP нужно в этот проект вставить подпрограмму на ASM...

Переписать программу без подключения function.asm
Помогите переписать эту программу без подключения function.asm MODEL SMALL STACK 256 DATASEG...

pascal+asm, не подключается модуль asm
Не получается подключить модуль ассмблера ( находится в каталоге с .pas)). Для примера взял...

Осуществить ассоциации файлов asm, inc, rap на программу RadASM
Помогите пожалуста сделать програму. Осуществить ассоциации файлов asm, inc, rap на программу...

Как вернуть значение REAL4 из .asm func в программу c?
Мне необходимо получить результат вычислений по заданной формуле вызвав функцию (которая находится...


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

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