roboforum.ru

Технический форум по робототехнике.

Перевод ASM в СИ

Re: Перевод ASM в СИ

Dmitry__ » 12 мар 2015, 17:48

Romikgy писал(а):иль ваш компилятор умный больно , иль это вы Tролль 80 lvl ....

Дык, какой ты указал - gcc :D

Romikgy писал(а):PS для нормального возврата из функции , нормальные программисты используют return!

Чудак человек, там есть return - закрывающая скобка функции "}" :wink:
Он тебе даж в комменте написал "//остановить выполнение функции", панимаш? Не выйти, а остановить.
Romikgy писал(а):ибо for это аналог while , а без for попробуйте !!! удивитесь!

Как я должен попробовать? Не возбуждай меня без нужды, тролляка :)
Так? Дык твой gcc также нормально отработает.
Код: Выделить всёРазвернуть
int main (void)
{
   unsigned int i=0;
   while (i<10)
   {
      //if(i==4) {break;}
      printf ("Hello World\n");
      i++;
   }
}

Re: Перевод ASM в СИ

Romikgy » 12 мар 2015, 18:09

Dmitry__ писал(а): Не возбуждай меня без нужды

вы уже.... так что нужда не требуется ... считайте и далее что вы правы...

Re: Перевод ASM в СИ

Raf00084 » 13 мар 2015, 02:03

Еще вопрос, правильно я понимаю что эти строки
Код: Выделить всёРазвернуть
    LADR_0x012E
CLRF STATUS          ; !!Bank!! STATUS - STATUS - RAM - RAM
MOVF LRAM_0x5D,W
ADDWF LRAM_0x5C,W
ADDWF LRAM_0x5B,W
XORWF LRAM_0x59,W
BTFSS STATUS,Z       ; !!Bank!! STATUS - STATUS - RAM - RAM
GOTO LADR_0x0139
MOVF LRAM_0x5A,W
XORLW 0x55           ;   b'01010101'  d'085'  "U"
BTFSC STATUS,Z       ; !!Bank!! STATUS - STATUS - RAM - RAM
GOTO LADR_0x013A
LADR_0x0139
    CALL LADR_0x01C8

перевел так
Код: Выделить всёРазвернуть
void LADR_0X012E (void)
{
W=LRAM_0x5D;
W=(W+LRAM_0x5C);
W=(W+LRAM_0x5B);
W=(LRAM_0x59^W); //значение в регистре 0x59 ксорим со считанным значением в регистре W и сохраняем в W
if(W!=0) //если значение не равно 0 то делаем ьо что в скобках
{
LADR_0x0139();
}
W=(LRAM_0x5A^0x55);
if(W!=0) //если значение не равно 0 то делаем ьо что в скобках
{
LADR_0x013A();
}
LADR_0x01C8();
вроде все правильно, поправте если где-то тупанул.

Re: Перевод ASM в СИ

Raf00084 » 14 мар 2015, 00:09

Скажите чем отличаются эти строки
Код: Выделить всёРазвернуть
MOVF LRAM_0x68,F 

Код: Выделить всёРазвернуть
MOVF LRAM_0x68,W

я так понял что после запятой туда и сохраняется значение полученное в результате выполненной операции.

Re: Перевод ASM в СИ

Angel71 » 14 мар 2015, 00:59

это не серьезно, прекращайте. тыц, тыц, тыц

Re: Перевод ASM в СИ

Dmitry__ » 14 мар 2015, 01:31

Raf00084 писал(а):Еще вопрос, правильно я понимаю что эти строки

В коде есть неоднозначности, что есть "LADR_0x012E", "LADR_0x0139" метки? Тогда их нельзя переводить в си как функции. Если это куски чего-то, то надо уточнять...
Raf00084 писал(а):Скажите чем отличаются эти строки

Raf00084 писал(а):я так понял что после запятой туда и сохраняется значение полученное в результате выполненной операции.

Правильно понял, pic - риск процессор, за счет удлинения поля команды, появляются всякие дополнительные няшки, которые позволяют за одну операцию выполнять несколько действий. Но за это надо платить странным на вид кодом. "MOVF LRAM_0x68,F " берет число из LRAM_0x68 и оставляет его там же :D Эта операция используется для проверки регистра на "0", имеет альтернативное название "test r". В нормальном ассемблере есть дефаулты на операции, и там можно не указывать приемник. Но т.к. ты имеешь дело с реверс инжинирингом, то тебе дизасм выдает все что видит.
Angel71 писал(а):это не серьезно, прекращайте

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

Re: Перевод ASM в СИ

Angel71 » 14 мар 2015, 01:50

не совсем про это. с реверсом всё просто - мозги, повёрнутые в нужную сторону, желание, упорство и смекалка. бегать на форумы что бы получить ответ, который элементарно на 1-2 страницах выдачи поисковика будет...

Re: Перевод ASM в СИ

ALS » 14 мар 2015, 02:32

ТС, а давайте, я вам подробные комментарии к дизассемблированной прошивке напишу ? Задорого ).

Re: Перевод ASM в СИ

Raf00084 » 14 мар 2015, 02:56

ALS писал(а):ТС, а давайте, я вам подробные комментарии к дизассемблированной прошивке напишу ? Задорого ).

Это юмор??? Мне комментарии не нужны, Я пытаюсь понять как работает программа на асм в какой очередности выполняются команды, значение команд есть в дш. Есть реальные предложения пишите лс.

Добавлено спустя 6 минут 7 секунд:
Dmitry__ писал(а):Думаю ангел прав. Дизассемблируют прошивки люди, которые все зубы сьели на написании программ на конкретном контроллере. А а ты хочешь колупнуть контроллер, который раньше в глаза не видел...

Я не спорю, что это трудно, для начала я создал тему чтоб найти такого человека но увы все только написали, что нету времени. Поэтому решил сам заняться темболее полезно, за неделю узнал уже много. Есть желание помочь пишите личку. Задаю вопросы на форуме потому, что не понимаю как работает та или иная команда, или форум создан не для этих целей?

Re: Перевод ASM в СИ

Dmitry__ » 14 мар 2015, 03:32

Raf00084 писал(а):Задаю вопросы на форуме потому, что не понимаю как работает та или иная команда, или форум создан не для этих целей?

Ну, я, вроде, помогаю :oops: На меня тут тож наезжает кулхацкер тролль :)

Re: Перевод ASM в СИ

Angel71 » 14 мар 2015, 04:26

Raf00084, вам писали, что это занимает много времени, т.е. намекали, что по деньгам такие услуги стоят соответственно. дело не в самом асме, в таких мк он простой как 5 копеек. трудности начинаются, например когда в оригинале попадаются куски, которые до каждого тактика/битика оптимизированы или в коде хорошенько пошаманили, что бы потом мозг выворачиволо у тех, кто будет в него вникать и т.д. потом вы ещё уточняли, что это всё для портирования. это мягко другой уровень. портировать между мк одного семейства может оказаться проблематичным или невозможным, а вы вообще на другое семейство хотите. короче не важно, может позже столкнётесь и сами поймёте. с форумом всё банально. ответы на простые вопросы во-первых намного быстрей нагуглить. во-вторых изучая документацию, статьи по теме, даташиты, справочники и т.д. вы получаете больше информации. хотите тратить больше времени и меньше полезного узнавать, ну удачи.
http://www.covingtoninnovations.com/noppp/picassem2004.pdf


Rambler\'s Top100 Mail.ru counter