MasterMan342
|
|
« : 17-08-2014 20:00 » |
|
Доброго времени суток! В общем, разбираю дезасемблированный код... Все шло хорошо, код лаконичен и понятен, но! я остановился на следующих командах:
ADD r0, pc, #0x1 BX r0 ; << 0x0118
Как я понимаю, первая команда устанавливает младший бит адреса следующей команды, и получается, что т.к. команда BX r0, имеет адрес 0x0118, в r0 будет лежать значение 0x0119.
А что дальше? BX как я понимаю, определяет к какому режиму принадлежит адрес, и если установлен младший бит, команда поднимает флаг T в регистре состояния процессора, а сам процессор при переходе обнуляет нулевой бит адреса (т.е. адрес все-же будет 0x0118).
В этом случае ведь произойдет цикл? как это понимать?
|