elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  [HLA] - Error de comprensión
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [HLA] - Error de comprensión  (Leído 9,116 veces)
criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
[HLA] - Error de comprensión
« en: 8 Febrero 2012, 14:32 pm »

Buenas,

Tengo una duda bastante boluda, pero prefiero preguntarlo. Estoy leyendo Art of Assembly y cuando habla de valores booleanos dice lo siguiente:

Citar
Furthermore, as long you ensure that your boolean variables only contain zero and one, you can use de 80x86 AND, OR, XOR and NOT instructions...

Que las variables booleanas solamente contengan ceros y unos? Según tengo entendido esos son los ÚNICOS valores que pueden tener. Es un error del manual o me estoy equivocando en algo?

Un saludo y disculpas por semejante pregunta.


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [HLA] - Error de comprensión
« Respuesta #1 en: 8 Febrero 2012, 15:32 pm »

La minima unidad a la que podes acceder atomicamente es un byte, supongo que se refiere entonces a eso, mientras te asegures que en tu byte solo hay unos o ceros ...


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [HLA] - Error de comprensión
« Respuesta #2 en: 8 Febrero 2012, 16:46 pm »

Que el valor almacenado dentro del byte sea únicamente cero o uno? Si es una variable booleana, únicamente no puede tener esos valores?

Creo que me estoy complicando mucho con algo simple :P

Gracias Eternal, un saludo.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [HLA] - Error de comprensión
« Respuesta #3 en: 8 Febrero 2012, 16:52 pm »

¿Que es una variable? Un espacio en memoria ... tal vez HLA permite definir variables de un tipo llamado boolean y asignarle valores mayores a 1 (por la razon que te di antes, minimo ocupa un byte).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: [HLA] - Error de comprensión
« Respuesta #4 en: 8 Febrero 2012, 17:49 pm »

El bit es lo unico que puede tener como valor 1 o 0.
Un byte almacena 8 bits en x86. Por eso puede tener valores de 0 a 255.

Normalmente, si es 0 es FALSE.
Si es cualquier otro valor, TRUE. Es decir, TRUE == not FALSE.
( por ejemplo 5 seria true)


Esta muy sacado de contexto, habria que leer el texto completo para ver a que se referia.
En línea

criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [HLA] - Error de comprensión
« Respuesta #5 en: 10 Febrero 2012, 01:16 am »

El tema está en que HLA usa 0 para false y 1 para true, no otros valores:

Citar
Internally, HLA represents the value true using the numeric value one; HLA represents false using the value zero. Most programs treat zero as false and anything else as true, so HLA’s representations for true and false should prove sufficient.

Entonces por eso me parece raro que diga que te asegures que en el byte solo haya uno y cero.

Edit:
Se podría ver que valor en binario tienen las variables booleanas en tiempo de ejecución? Como lo podría hacer?
Según el texto, únicamente podrían valer 00000000 o 00000001, no?

Edit 2:
El texto que habla sobre los valores booleanos es el siguiente:

:http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/www.artofasm.com/Windows/HTML/HelloWorlda2.html#998344

Y ahí me surgió otra duda, porque al principio dice que HLA usa 0 para false y 1 para true, sin embargo al final dice lo siguiente:

Citar
This routine prints the text "true" or "false" depending upon the value of the boolean parameter ( zero is false, anything else is true).

Cero es falso y todo lo demás verdadero? Pero si sólo puedo usar los valores true y false :huh: En el siguiente código si pongo cualquier otro valor que no sea verdadero o falso tira un error:

Código
  1. program prueba3;
  2.  
  3. // Bibliotecas
  4. #include("stdlib.hhf");
  5.  
  6. // Variables
  7. static
  8. bool:boolean:=true;
  9.  
  10. begin prueba3;
  11.  
  12. stdout.put("El valor de bool es: ", bool, nl);
  13.  
  14. end prueba3;

Un saludo y disculpas nuevamente.
« Última modificación: 10 Febrero 2012, 16:00 pm por criskapunk » En línea

_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: [HLA] - Error de comprensión
« Respuesta #6 en: 10 Febrero 2012, 16:41 pm »

Sinceramente, hasta ahí tenia alguna idea.

Pocas ganas de tratar de entender un lenguaje que es una mezcolanza entre Pascal, C y Asm.
No le veo utilidad. C con inline assembly me parece una opción mejor.
Que va, Pascal con Inline assembly me sigue pareciendo una  mejor alternativa.

Me imagino que stdout.put debe ser parte de una libreria interna de hla, de manera que acepta solo 1 o 0 para booleanos, otro valor y emite un error.
Si quieres saltearte eso, usa el stdout de la winapi o de c runtime que es mas sencillo.
« Última modificación: 10 Febrero 2012, 16:43 pm por _Enko » En línea

criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [HLA] - Error de comprensión
« Respuesta #7 en: 11 Febrero 2012, 04:12 am »

Buenas _Enko,
Estoy tratando de aprender HLA porque es el lenguaje que explica en el libro Art of Assembly (Por lo que vi en internet, es de los mejores libros para aprender asm), y si, como bien decís, stdout.put forma parte de la biblioteca stdlib.hhf (La biblioteca estándar de HLA).
El problema no creo que sea dicha función, ya que lo único que hace es mostrar el texto en pantalla con la correspondiente constante booleana (true o false).

Un saludo y gracias.
En línea

_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: [HLA] - Error de comprensión
« Respuesta #8 en: 11 Febrero 2012, 20:50 pm »

Citar
Por lo que vi en internet, es de los mejores libros para aprender asm),
No, definitivamente no. Mejor revisa la sección de Libros y Entry Point de este subforo.

Demas decir que su sintaxis se aleja de cualquiera de los ensambladores BUENOS del mercado como masm, fasm, nasm (mh... tasm32?).

masm está hiper documentado y es el ensamblador mas usado para windows.
Si quieres programar para otros OS ademas de windows, fasm o masm.

Citar
(true o false).
ya creo que habia quedado que guarda 1 o 0.
Habria que depurar esa funcion, pero se me hace que es algo asi:
Código:
if var=1
   print("true")
elseif var=0
   print("false")
else
   exception
endif


Saludos.
« Última modificación: 11 Febrero 2012, 20:56 pm por _Enko » En línea

criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [HLA] - Error de comprensión
« Respuesta #9 en: 12 Febrero 2012, 17:05 pm »

Pero la duda que yo tengo no es sobre la función en si, sino sobre los valores que tienen las variables booleanas, como expliqué en el primer mensaje.

No, definitivamente no. Mejor revisa la sección de Libros y Entry Point de este subforo.

Entry point

Citar
The Art of Assembly Language: Uno de los libros mas recomendados para aprender assembly.

Un saludo.
« Última modificación: 12 Febrero 2012, 17:07 pm por criskapunk » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda comprension del codigo
Programación Visual Basic
toods 2 2,061 Último mensaje 20 Agosto 2010, 23:58 pm
por Fitoschido
Comprensión librería .dll + Única función
Ingeniería Inversa
johnburn 7 4,142 Último mensaje 24 Mayo 2011, 19:26 pm
por johnburn
Comprensión del OpenGL + Win32
Programación C/C++
Seyro97 2 2,458 Último mensaje 27 Septiembre 2014, 15:34 pm
por Seyro97
Problema con la comprensión de un código
Programación C/C++
ferchundo9 7 4,122 Último mensaje 8 Octubre 2016, 15:48 pm
por ivancea96
Error de comprensión de la lista de Python: resultado inesperado
Scripting
adhar2 1 4,455 Último mensaje 29 Agosto 2023, 14:53 pm
por reymosquito
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines