Я играю с Coldfire дизассемблер и найти этот кусок кода:Что делает эта инструкция bsr.l?
loc_F7E:
bsr.l loc_F7E+2
lea 12(sp),sp
pea (284).w
clr.l -(sp)
move.l a6,d0
addi.l #-636,d0
move.l d0,-(sp)
loc_F98:
bsr.l loc_F98+2
lea $C(sp),sp
pea (284).w
clr.l -(sp)
move.l a6,d0
addi.l #-$398,d0
move.l d0,-(sp)
Я пытаюсь выяснить, что это необходимость для тех, кто bsr.l. Для меня это только прыгает.
Есть ли что-нибудь еще после 'move.l d0, - (sp)' в каждом случае? –
Нет, только это. Это странно, потому что он подталкивает некоторые значения в стеке, как если бы он собирался вызвать подпрограмму, а просто называет себя. –
Является ли это исполняемым файлом, библиотекой, объектным файлом или что? Я просто задаюсь вопросом, является ли адрес назначения bsr фактически просто заполнителем, который фиксируется по ссылке/времени загрузки? –