【发布时间】:2014-11-12 22:19:34
【问题描述】:
我正在玩冷火反汇编程序并找出这段代码:
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 目标地址是否实际上只是一个在链接/加载时修复的占位符?
-
它是一个elf文件,这个特殊的代码是一个导出函数的和平。
标签: assembly 68000 disassembly coldfire