desktop

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í?

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:
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?
 
Última edición por un moderador:
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.
 
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)
 
Última edición por un moderador:
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.
 
Atrás
Arriba