Resultados 1 al 2 de 2

ensamblador basico

  1. #1 ensamblador basico 
    Iniciado
    Fecha de ingreso
    Dec 2012
    Mensajes
    2
    Descargas
    1
    Uploads
    0
    Hola a todos en el foro. Estoy estudiando ensamblador como hobby y no paro de darme la cabeza contra la pared. Para empezar estoy aprendiendo en entorno DOS de 16 bits. La pregunta concreta que mucho agraceceria me contesten es:: porque no existe ninguna funciòn o interrupciòn que devuelva el "contenido" hexadecimal o binario de una registro AX o BX. Como todos sabràn las funciones de interrupciòn devuelven el equivalente Ascii del valor hexadecimal, con lo cual hacer una suma y viaualizar su resultado implica mucha programaciòn. Alguien sabe porque esto es asì? Que limitaciòn tecnica existe? Es realmente rarisimo que existiendo instrucciones complejas (por ejemplo de manejo de cadenas) no se pueda "ver" directamente un resultado en el registro AX y solamente se pueda ver a traves de la interrupcion ah,09 int 21 el equivalente ASCII. Porque no me muestra directamente el binario o el hexa? Para que traducir al Ascii?. Gracias mil.
    Citar  
     

  2. #2  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Buenas y bienvenido.

    Básicamente porque DOS es un sistema operativo y no un programa... Un sistema operativo no tiene por qué implementar tal función (aunque pueda)... DOS al igual que cualquier sistema operativo añejo o actual, provee y tiene que proveer de funciones para la gestión de memoria, procesos (si es multiprogramado), ficheros, E/S, etc... Y no necesariamente ofrecer una función específica de un usuario. Para eso, están los PROGRAMAS. Lo que tu quieres, es una tarea que un programa, el cual hace uso de las funciones que le provee el sistema operativo sobre el que se ejecuta, haga las tareas específicas que el usuario requiera. En tu caso, mostrar el código HEX en vez del caracter ASCII.

    En cuanto a que las funciones de interrupción del DOS sólo sirven para mostrar caracteres... eso es falso. DOS provee de su llamada a función o INT 21h. Dicha interrupción ejecuta una subrutina u otra dependiendo del valor contenido en la parte alta del registro AX... esto es en AH. Si en AH está el valor 09h, entonces la subrutina a ejecutar es la de impresión por pantalla. Pero si en AH tienes por ejemplo el valor 40h, entonces la función que INT 21h va a ejecutar es la de "escribir en un fichero en disco", y así con cada función que provee DOS...

    Para tu suerte, no existe en DOS un valor (o función) que poner en AH tal que te muestre por pantalla el contenido en hexadecimal de un registro del procesador.

    Por último, DOS sólo provee de una función para el manejo de cadenas, por lo menos que yo conozca... tal función es precisamente la 09h, es decir, la "impresión por pantalla de una cadena de caracteres en ASCII".

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

Temas similares

  1. Ensamblador en Windows
    Por biyonder en el foro GENERAL
    Respuestas: 15
    Último mensaje: 04-10-2009, 13:15
  2. Básico de pcs e IPs
    Por Sigfrid en el foro GENERAL
    Respuestas: 6
    Último mensaje: 13-01-2007, 19:47
  3. que es ensamblador y C++?¿
    Por GhosT_Mx en el foro PROGRAMACION DESKTOP
    Respuestas: 11
    Último mensaje: 10-10-2006, 07:06
  4. ayuda en ensamblador please
    Por kaitower en el foro GENERAL
    Respuestas: 1
    Último mensaje: 17-04-2005, 01:18
  5. Ensamblador
    Por Clase en el foro INGENIERIA INVERSA
    Respuestas: 1
    Último mensaje: 21-02-2002, 15:06

Marcadores

Marcadores