我是用32位x86汇编器编写的,我不太确定如何处理总是与代码保持相同关系的数据。是否必须使用弹性公网is来计算绝对地址,或者是否有更好的方法?
发布于 2010-09-16 13:28:32
您可以使用与位置无关的代码:
call @f
dd 42 ; data
@@:
pop eax ; eax contains offset of data
mov eax, cs:[eax]或者对增量偏移量使用相同的
call base
base:
pop ebp
sub ebp, base ; to use small offsets, -128 to +127, and smaller instruction size
;....
mov eax, cs:[ebp+dataN-base] ; dataN-base is called "delta-offset"
;....
data1:
dd 100
;....
dataN:
dd 200https://stackoverflow.com/questions/3701472
复制相似问题