Перейти к содержимому


Фотография
* * * * * 1 Голосов

BinEdit и все о ней


  • Please log in to reply
946 ответов в этой теме

#941 master

master

    Временно недоступен

  • SGH Open Club
  • Сообщений: 602
  • Город:Саранск
  • Модель телефона: Samsung GT-S5260, GT-S8530

Отправлено 2016-июн-20 - 14:08

А вызовы thumb-функций из arm-кода (blx) только у меня неправильно декомпилируются? Адреса получаются на 2 байта меньше реальных. Из-за этого что есть сим-файл, что его нет - очень неудобно код изучать...
Компилируются вроде правильно...

#942 SantaX

SantaX

    Загадочный романтик с душой индейца..

  • Специалисты S
  • Сообщений: 1 418
  • Город:Марий Эл
  • Модель телефона: Samsung G600

Отправлено 2017-окт-31 - 13:54

next:
mov r7,4
ldr r0,[sp,r7]
...
add r7,4
cmp r7,24
bcc next


При компиляции ругается на строчку с ldr: не определена переменная r7. Почему? Как реализовать?

#943 master

master

    Временно недоступен

  • SGH Open Club
  • Сообщений: 602
  • Город:Саранск
  • Модель телефона: Samsung GT-S5260, GT-S8530

Отправлено 2017-окт-31 - 15:40

Например, вместо 

 

ldr r0,[sp,r7]

 

сделать так

 

mov r0, sp

ldr r0, [r0, r7]



#944 f2065

f2065

    Администраторы ROOT

  • Администраторы ROOT
  • Сообщений: 6 791
  • Город:Russia,Moscow
  • Модель телефона: Samsung B310E, B5722, C3322, C3322i, S5610.

Отправлено 2017-окт-31 - 15:53

При компиляции ругается на строчку с ldr: не определена переменная r7.

Нет такой команды потому что. Это же Thumb-режим - там чтобы уложится в 2 байта только самые массовые команды есть.

Хинт: в Thumb есть команды типа ADD R7,SP,4 и LDMIA R7!,{R0}… Можно этот твой код существенно сократить/оптимизировать.

#945 SantaX

SantaX

    Загадочный романтик с душой индейца..

  • Специалисты S
  • Сообщений: 1 418
  • Город:Марий Эл
  • Модель телефона: Samsung G600

Отправлено 2017-окт-31 - 17:41

Спасибо! Завтра испытаю :)

#946 SantaX

SantaX

    Загадочный романтик с душой индейца..

  • Специалисты S
  • Сообщений: 1 418
  • Город:Марий Эл
  • Модель телефона: Samsung G600

Отправлено 2017-ноя-01 - 05:52

Туплю с утра, Женя, можешь пример кода с использованием ldmia показать для упрощения прохода по циклу? Что делает команда понимаю, но как написать и использовать не могу придумать.

#947 f2065

f2065

    Администраторы ROOT

  • Администраторы ROOT
  • Сообщений: 6 791
  • Город:Russia,Moscow
  • Модель телефона: Samsung B310E, B5722, C3322, C3322i, S5610.

Отправлено 2017-ноя-01 - 13:12

Что делает команда понимаю, но как написать и использовать не могу придумать.

Это позволяет обойтись без add внутри цикла.


add r7, sp, 4
mov r6, 24
add r6, r7
m1:
ldmia r7!,{r0}

cmp r7, r6
bcc m1

Но вообще это актуально когда в цикле надо сразу читать несколько регистров.




4 человек читают эту тему

0 пользователей, 2 гостей, 0 скрытых пользователей


    BrandWatch (2)

Титан гель отзывы на http://fabri.com.ua/titangel.html


Яндекс цитирования