rubens Posted August 4, 2016 at 08:03 PM Report #597994 Posted August 4, 2016 at 08:03 PM procedure Validate; assembler; asm mov eax,ADDRESS call eax end; seu fazer isso em uma dll funfa corretamente,porém se usar isso em um .exe da aparece ''acesso violado''... Usando Written e Creathread como fica em .exe ?
Maou Posted August 6, 2016 at 07:38 PM Report #598027 Posted August 6, 2016 at 07:38 PM (edited) Olá rubens, eu aqui estou tentando entender, o que você esta chamando. assim MOV EAX,ADDRESS esta falando para o compilador MOVA O CONTEUDO DE ADDRESS PARA EAX, ao invés de passar o endereço, que eu lembre a diretiva assembly e só usada no turbo pascal no delphi que utiliza o BASM para compilar não e mais necessário. Exemplo de código program Project1; {$APPTYPE CONSOLE} uses SysUtils; function Soma(Z,X:integer):integer; var Aux:integer; begin ASM MOV EAX,Z ADD EAX,X MOV Aux,EAX END; Soma:=Aux; end; begin writeln(Soma(1,6)); readln; end. testado em delphi 5 e lazarus, no lazarus tem que colocar a diretiva {$ASMMODE intel} para funcionar. Edited August 6, 2016 at 07:41 PM by Maou
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now