Изучение уязвимостей электронных систем.
 
key programming immo tools emergency start device программаторы ключа заводилки Кодграббер штатных охранных систем, toyota, lexus, subaru.

Вернуться   Изучение уязвимостей электронных систем > Для начинающих > Программирование микроконтроллеров

Программирование микроконтроллеров Темы касающиеся программированию микроконтроллеров разных производителей.

Ответ
 
Опции темы
Старый 20.03.2012, 15:49   #1
vek
случайно влез
 
Регистрация: 19.03.2012
Сообщений: 9
Поблагодарил: 0
Поблагодарили 3 раз в 3 сообщениях
vek стоит на развилке
По умолчанию доки\исходники , разбор кода на с#

Самый первый пост в доки/исходники:
Цитата:
Сообщение от Continuous Посмотреть сообщение
Полный рабочий комплект Microchip - исходников на Си! (AN745)
не стесняемся... выкладываем у кого что есть ...))

вопросы по языку. нет коментариев,тяжело разобраться
Вот сам исходник
1 byte aux;
2
3 void Decrypt()
4 {
5 byte i, j, key;
6 sbyte p;
7
8 p = 1;
9
10 for (j=66; j>0; j--)
11 {
12 key = DKEY[p--];
13 if (p<0)
14 p+=8;
15
16 for (i=8; i>0; i--)
17 {
18 // NLF
19 if ( BIT_TEST( Buffer[3],6))
20 {
21 if ( !BIT_TEST( Buffer[3],1))
22 aux = 0b00111010; // 10
23 else
24 aux = 0b01011100; // 11
25 }
26 else
27 {
28 if ( !BIT_TEST( Buffer[3],1))
29 aux = 0b01110100; // 00
30 else
31 aux = 0b00101110; // 01
32 }
33
34
35 // move bit in position 7
36 if ( BIT_TEST( Buffer[2],3))
37 #asm
38 swapf aux,f
39 #endasm
40 if ( BIT_TEST( Buffer[1],0))
41 aux<<=2;
42 if (BIT_TEST( Buffer[0],0))
43 aux<<=1;
44
45 // xor with Buffer and Dkey
46 aux ^= Buffer[1] ^ Buffer[3] ^ key;
47
48 // shift in buffer
49 shift_left( Buffer, 4, BIT_TEST( aux,7));
50
51 key<<=1;
52 } // for i
53
54 } // for j
55 } // decrypt

---------- Post added at 22:49 ---------- Previous post was at 22:40 ----------

строка 1 - тут определяем переменную могущую принять значение 1 или 0?
строка 5 - тут определяем переменные могущие принять значение 0 или 1?,но допустим строками 10 и 16 принимаются значения больше 1,почему так?
vek вне форума   Ответить с цитированием
Старый 20.03.2012, 22:05   #2
huy
участник
 
Аватар для huy
 
Регистрация: 17.03.2010
Адрес: Космас
Сообщений: 360
Поблагодарил: 1
Поблагодарили 103 раз в 53 сообщениях
huy стоит на развилке
По умолчанию

byte aux; это переменная в 1 байт, значения 0..255
huy вне форума   Ответить с цитированием
Старый 21.03.2012, 14:22   #3
vek
случайно влез
 
Регистрация: 19.03.2012
Сообщений: 9
Поблагодарил: 0
Поблагодарили 3 раз в 3 сообщениях
vek стоит на развилке
По умолчанию

а-а-а,перепутал, "бит" оказывается и по буржуйски пишется "BIT" (а я думал byte,что значит на самом деле байт).
Теперь вопрос следующий: unsigned char -что такое? или просто применяют в зависимости от ситуации byte или unsigned char ?
vek вне форума   Ответить с цитированием
Старый 21.03.2012, 20:06   #4
huy
участник
 
Аватар для huy
 
Регистрация: 17.03.2010
Адрес: Космас
Сообщений: 360
Поблагодарил: 1
Поблагодарили 103 раз в 53 сообщениях
huy стоит на развилке
По умолчанию

это одно и то же, unsigned char это встроеный тип, а byte ето где-то в исходнике задано второе имя, покороче.
huy вне форума   Ответить с цитированием
Старый 22.03.2012, 01:57   #5
vek
случайно влез
 
Регистрация: 19.03.2012
Сообщений: 9
Поблагодарил: 0
Поблагодарили 3 раз в 3 сообщениях
vek стоит на развилке
По умолчанию

таким образом?
#define byte unsigned char ?
vek вне форума   Ответить с цитированием
Старый 22.03.2012, 13:17   #6
huy
участник
 
Аватар для huy
 
Регистрация: 17.03.2010
Адрес: Космас
Сообщений: 360
Поблагодарил: 1
Поблагодарили 103 раз в 53 сообщениях
huy стоит на развилке
По умолчанию

именно таким
huy вне форума   Ответить с цитированием
Старый 22.03.2012, 15:11   #7
vek
случайно влез
 
Регистрация: 19.03.2012
Сообщений: 9
Поблагодарил: 0
Поблагодарили 3 раз в 3 сообщениях
vek стоит на развилке
По умолчанию

Извините,пожалуйста,но не красивее и понятнее было-бы написать вместо "byte" - "_BYTE" ?

---------- Post added at 22:11 ---------- Previous post was at 22:03 ----------

Правильно я применяю "неписанные правила"? это ведь макрос? объясните поподробнее что такое макрос.Макрос - это все что описывается директивой #define? Правильно назвал - директива?
vek вне форума   Ответить с цитированием
Старый 22.03.2012, 20:31   #8
russo
гость
 
Аватар для russo
 
Регистрация: 19.08.2009
Адрес: KZ
Сообщений: 154
Поблагодарил: 17
Поблагодарили 39 раз в 32 сообщениях
russo стоит на развилке
По умолчанию

vek а дальше вам все понятно?

Если был непонятен вопрос по типам переменной то неужели дальше вопросов нет?

Откуда был скачан AN745, на сайте микрочипа.ком я его найти не могу?
russo вне форума   Ответить с цитированием
Старый 22.03.2012, 22:00   #9
huy
участник
 
Аватар для huy
 
Регистрация: 17.03.2010
Адрес: Космас
Сообщений: 360
Поблагодарил: 1
Поблагодарили 103 раз в 53 сообщениях
huy стоит на развилке
По умолчанию

ну красивее ето субъективно.. мне нпаример красивее стандартное (т.е прописаное в стандарте) uint8_t для unsigned char.
а макрос это простая подстановка, при компиляции просто заместо макроса в текст програмы вставляется то что он обозначает.

исходники и даташиты:
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
huy вне форума   Ответить с цитированием
Ответ

Метки
разбор кода на с#


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сдаем тачку в разбор ximikat Автомобили 141 08.07.2016 19:17
Исходники Continuous Документация 12 24.11.2014 00:04
разбор полетов glupiy Пластиковые карты 6 04.04.2010 04:22
Исходники под ским mC36 Пластиковые карты 1 15.01.2009 20:33
ищу исходники простенькой GPS vilkin Спутниковые системы 8 26.08.2006 03:21


Текущее время: 04:41. Часовой пояс GMT +4.


Перевод: zCarot