Spoiler anzeigen
[autoit]
#include "FASM.au3"
#include <Array.au3>
$Fasm = FasmInit()
FasmReset($Fasm)
Fa("use32")
Fa("org " & FasmGetBasePtr($Fasm)) ;<-----------startadresse des Programms im speicher ,Basisadresse
fa("mov ebx,1")
fa("mov [array+ebx*4],2") ;array ist nur der "Abstand" bis zur Basisadresse, also hier ca. 30
fa("mov eax,[array+ebx*4]") ;der assembler macht aus array ---> Basisadresse+30
[/autoit] [autoit][/autoit] [autoit]fa("ret ")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]fa("array dd 1 dup(3)") ; hier ist das 30. Byte im Programm, also ist array=30
[/autoit] [autoit][/autoit] [autoit]ConsoleWrite(String(FasmGetBinary($Fasm)) & @CRLF)
$a = MemoryFuncCall("int", FasmGetFuncPtr($Fasm))
_ArrayDisplay($a)
Func fa($str) ; Nur für die bequemlichkeit
FasmAdd($Fasm, $str)
EndFunc ;==>fa
FasmExit($Fasm)
[/autoit]