Сейчас на форуме: zombi-vadim, zds (+4 невидимых)

 eXeL@B —› Программирование —› ARM Дисассемблер
Посл.ответ Сообщение

Ранг: 5.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 августа 2013 12:45
· Личное сообщение · #1

Привет. Подскажите, как правильно разбирать команды ARM.
К примеру мы знаем что ARM занимает 4 байта, а THUMB занимает 2 байта,
если мы начнем разбирать ARM команду, то мы переводим 4 байта в 31 бит,
с 31 по 28 бит это condition code flags, с 27 по 8 бит это reserved, с 8 по 0 бит это control bits,
а теперь, как правильно разобрать биты с 27 по 0, чтоб не получить неправильную команду.

Смотреть книгу ARM7-TDMI-manual, но не нашел нужной страницу по разбору команды, может ткнете носом или подскажите хорошую книгу, статью, код(можно на любом языке) с хорошими комментариями, или подскажете алгоритм разбора команд.

Извиняюсь, если ошибся разделом.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 17 августа 2013 12:53
· Личное сообщение · #2

почему все хотят что бы с ними беседовали, рассказывали, показывали
школьники?

набираете в гугле
arm instriction set format
и получаете гору ссылок типа
http://wss.co.uk/pinknoise/ARMinstrs/ARMinstrs.html



Ранг: 5.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 августа 2013 16:42 · Поправил: zolodei
· Личное сообщение · #3

reversecode зачем мне напирать в гугле и искать, если я нашёл ARM7-TDMI-manual и там все написано,
и мне только надо, чтоб кто то объяснил хорошо, как разобрать опкоды,
сам пытался, но чего-то не понимаю, вот и пришёл на форум чтоб хорошо объяснили как разобрать опкоды.

К примеру почему команда e1a0f00e mov r15, r14 пишется так, а не по-другому,
и как они определили, что она является Data Processing Instructions, а не Branch Instructions, я не могу понять этого.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 17 августа 2013 17:00 · Поправил: reversecode
· Личное сообщение · #4

на каком языке пишите? я надеюсь не на асме
набираете в ггуле другую ссылку
и читаете http://code.google.com/p/armstorm/

http://simplemachines.it/doc/arm_inst.pdf
надеюсь дочитаете?
http://www.peter-cockerell.net/aalp/html/app-c.html

| Сообщение посчитали полезным: plutos, UniSoft

Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 20 августа 2013 15:04
· Личное сообщение · #5

http://re-eject.gbadev.org/files/armref.pdf
Чуть более наглядный вариант

| Сообщение посчитали полезным: zolodei

Ранг: 5.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 августа 2013 18:16
· Личное сообщение · #6

reversecode, на PureBasic
Veliant, спасибо, но я, эту ссылку сам нашёл и еще две ссылки
http://subjects.ee.unsw.edu.au/elec2041/tutorial-sol/tutorial09-sol.pdf
http://forums.ngemu.com/showthread.php?t=146432
по которым начал делать наброски дисассемблера, но всё равно есть вопросы, которые сам пытаюсь решить.



Ранг: 39.6 (посетитель), 21thx
Активность: 0.020
Статус: Участник

Создано: 21 августа 2013 05:32 · Поправил: sen
· Личное сообщение · #7

zolodei
не знаю какой ты manual нашел, но в оригинальном мануале

ARM7DI Data Sheet
Document Number: ARM DDI 0027D Issued: Dec 1994


на странице 25 показано чем Data Processing Instructions отличается от Branch Instructions (см аттач)

и зачем все эти 'наглядные варианты', есть же первоисточник на arm.com


e855_21.08.2013_EXELAB.rU.tgz - arm_p25.jpg




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 21 августа 2013 09:11 · Поправил: reversecode
· Личное сообщение · #8

потому что он читать не умеет,
сомневаюсь даже что во все моих намеках он разглядел разницу в битах


 eXeL@B —› Программирование —› ARM Дисассемблер
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати