Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

14/09/2015 #1


Assembler, suma y mostrar en pantalla
Hola. Bueno, como dice le título.
Quiero ver si me pueden ayudar con ensamblador, soy nuevo en esto y tengo unas dudas.
Primero empecé con el depurador y ahora probando en ensamblador, me empecé a confundir.
Lo que quiero hacer, es realizar alguna cuenta, y después mostrarla en pantalla.

¿En el caso de querer mostrar en pantalla una cadena, lo puedo hacer así?

Código PHP:
.MODEL SMALL
.CODE
Inicio
:
 
mov ax,@data
 mov ds
,ax
 mov dx
,offset cadena

mov ah
,09
int 21h
mov ah
,4ch
int 21h

.Data
 cadena db 
'mensaje del programa.$'
.Stack
End inicio 
Ahora, en depuración cuando hacía algunas operaciones, directamente ponía; add, sub, mul, div.
¿En ensamblador puedo hacerlo así?
Porque leyendo vi sobre los procedimientos.

Por ejemplo:
Código PHP:
Suma Proc near
                mov bx
,0
                mov bl
,ah
                mov ah
,0
                add bx
,ax
                ret
Suma ENDP 
Lo único que se hizo fue sumar AH y AL.

En sí, lo que quiero hacer, es realizar alguna cuenta y mostrarlo.

Acá mi pregunta:
¿Puedo usar lo que hice al principio, de mostrar una cadena y hacerlo como lo hacía directamente en el depurador (add, sub, etc.) o tengo que declarar si o si un procedimiento como hice en la segunda parte?

¿Y si tengo que declararlo si o si, cómo quedaría?
15/09/2015 #2

Avatar de JoaquinFerrero

Antes hay que decir de qué procesador estamos hablando y en qué sistema operativo estamos, ya que el trabajo de sacar algo por pantalla suele hacerlo él.
15/09/2015 #3


Si, no aclaré, es el 8086.
La cosa es así, cuando empecé a estudiar, empezamos por el depurador, después vimos muy poco de ensamblador y hay cosas que no sé si se pueden hacer en ensamblador de las que hacía en el depurador.

Lo que quiero es realizar alguna cuenta y mostrarlo en pantalla. (Hacerlo en ensamblador)
16/09/2015 #4

Avatar de JoaquinFerrero

Tienes, básicamente, dos opciones:

La primera es saber la dirección de E/S de la tarjeta de vídeo, y mandarle los bytes con los códigos ASCII (o la codificación que se maneje) resultado de la operación.

La otra opción es convertir el resultado de la cuenta en una cadena de caracteres, y usar una llamada al sistema o BIOS para que se encargue él de hacer la presentación. Es decir: como lo muestras en tu código de ejemplo. En ese caso debes aprender esas llamadas.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.