![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
gracias egostar!!, mañana me voy a tomar el trabajo de leerla completita y bien detalladamente porque por una mirada rapida que le di. no entendi un pomo jejeje
saludos y gracias |
|
#2
|
||||
|
||||
|
El enlace que te muestra egostar, aconseja utilizar otro lenguaje (MASM) para crear una librería dinamica que contenga las funciones en ASM que requieres y luego exportar dichos métodos en JAVA. Es posible hacer lo mismo con Delphi; creas una DLL pegas la funcion que quieres exportar (ROL2) la defines como stdcall y la exportas. Pero creo que un simple ROL 2 no amerita tanto esfuerzo:
Código:
private char ROL2(char Value)
{
return (Value << 2) | (Value >> 6);
}
|
|
#4
|
||||
|
||||
|
Bueno la funcion anterior que les comente no funciona bien debido a que no completa los 8 bits (es decir no rellena con ceros entonces da un error importante)
cHacKall hice una modificacion a lo que me posteaste
Cambie tel Tipo de dato por Byte. pero de todas maneras sigo teniendo este error Cita:
sabrias decirme a que se debe? gracias |
|
#5
|
||||
|
||||
|
Aunque mi definicion no sea la que vayas a leer en un libro te explico con mis palabras lo que sucede; el compilador esta realizando un casting implicito debido a la diferencia en los tipos de datos (entre el resultado de la operacion y el tipo retornado), los cuales varian en 24 bits y dicha diferencia puede representar una perdida de datos y por ende una falla en la presicion del resultado; como para nuestros fines solo nos interesa un ROL de 8 bits y estamos concientes que "no pasa nada"
prueba ésto:Código:
private static byte ROL2(byte Value)
{
return (byte)((Value << 2) | (Value >> 6));
}
Última edición por cHackAll fecha: 20-10-2008 a las 17:39:55. Razón: corrijo un valor copiado del post #7 |
|
#6
|
||||
|
||||
|
gracias cHacKall. porque la verdad que estoy haciendo mis primeras armas en java. y justamente transcribiendo unas lineas de delphi. bueno hay muchos fundamentos de JAVA que se encuentras ausentes en mi.
gracias de nuevo y te comento como me resulto todo saludos |
|
#7
|
||||
|
||||
|
Sigo con el mismo error... por mas que utilize el Typecast.
Cita:
uso el for para verificar que no haya perdida de datos. debido a que el programa original asi lo hace con el ROL del assembler. y se puede decir que siempre da el mismo resultado.. debido a que solo rota los 8 bits. Utilizando el Integer.rotatetoleft() no funciona bien ya que no completa los 8 bits es decir No rellena con Ceros. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Boteable en assembler | fide | API de Windows | 5 | 31-12-2006 20:05:31 |
| Assembler desde delphi | lookmydoom | Varios | 3 | 30-06-2006 21:56:20 |
| assembler y el señor delphi | fcran | Varios | 2 | 26-06-2006 11:32:14 |
| Fuentes assembler o .asm | Leomedellin | Varios | 7 | 19-04-2005 07:09:33 |
| assembler en delphi | fcran | Varios | 4 | 23-05-2003 07:35:44 |
|