asm call near dword ptr ds:[edx+$2C] end;
Me sale el siguiente error :
[Error] Project31.pas(38): Undeclared identifier: 'near'
Alguna ayudita please...
Escrito 15 febrero 2010 - 04:01
asm call near dword ptr ds:[edx+$2C] end;
Escrito 15 febrero 2010 - 04:08
Escrito 15 febrero 2010 - 05:36
Escrito 15 febrero 2010 - 06:33
Escrito 15 febrero 2010 - 06:57
En los tiempos de los microprocesadores de 16 bits, el direccionamiento de memoria se trucaba para conseguir hacerlo "casi" desde un sistema de 32 bits. El truco consistía en utilizar segmentos y un offeset relativo a ellos. Una llamada a un procedimiento NEAR era aquella que se realizaba dentro del mismo segmento. Si el procedimiento era FAR, significaba que estaba en un segmento diferente.
Con los sistemas de 32 bits o mas y el uso del modo protegido del procesador, el direccionamiento de la memoria es lineal y ya no se precisan las directivas de procedimiento NEAR o FAR. Es por eso que delphi no reconoce near.
En su lugar, existen saltos relativos o absolutos. Los relativos vienen dados por un entero con signo, de forma que saltará tantos Bytes a delante o atrás. Los Absolutos definen de forma absoluta la dirección del salto. Normalmente los compiladores sólo nos permiten saltos relativos (si queremos uno absoluto no deberemos usar nemónicos sino los Opcodes).
Saludos.