CÓMO MOVER EL TEXTO ENSAMBLADOR 8086
Cada vez que empezamos a entrar en el mundo de las programación, de cualquier lenguaje, generalmente nuestro primer código es el "HOLA MUNDO", imprimir una cadena de caracteres, por ejemplo, para este lenguaje se realiza con el siguiente código:
Figura 01: código 1 "hola mundo " |
.model small
.stack
.data
mensaje db "HOLA MUNDO" , "$"
.code
main proc
mov ax,SEG @data ; comandos de inicio de código
mov ds,ax
lea dx,mensaje ; comando para imprimir mensaje
mov ah,09h
int 21h
mov ax,4c00h ; devolver el control
int 21h
main endp
end main
Con el código anterior, aprendimos cómo imprimir una cadena de caracteres en una sola línea, ahora vamos a aprender a imprimir dos cadenas de caracteres pero en diferentes líneas, eso se realiza con el siguiente código.
figura 02: código 2 "Hola mundo" |
.model small
.stack
.data
mensaje1 db "HOLA MUNDO1",13,10,"$" ; 13 y 10 son necesarios para que salte de línea
mensaje2 db "HOLA MUNDO2",13,10,"$" ; "$" indica el final de la cadena de caracteres
.code
main proc
mov ax,SEG @data ;comandos de inicio de código
mov ds,ax
lea dx,mensaje1 ; comandos para imprimir el msj1
mov ah,09h
int 21h
lea dx,mensaje2 ; comandos para imprimir el msj2
mov ah,09h
int 21h
mov ax,4c00h ; devolver el control
int 21h
main endp
end main
El código anterior nos permite imprimir una cadena de caracteres en el inicio de la pantalla, pero si fuera necesario para nuestro proyecto ubicarlo en cualquier parte de la pantalla, para ello es importante entender el siguiente código.
Figura 03: código 3 "Hola mundo" |
.model small
.stack
.data
msj1 db "ELECTROUNDO-CALCULADORA",13,10,"$"
msj2 db "MENU",13,10,"$"
.code
main proc
mov ax, seg @data
mov ds,ax
mov ah,02h
mov dh,4 ; ubicación de texto en fila
mov dl,4 ;ubicación de texto en columna
int 10h
mov dx,offset msj1 ; comandos para imprimir msj1
mov ah,09
int 21h
mov ah,02h
mov dh,5 ; ubicación de texto en fila
mov dl,5 ;ubicación de texto en columna
int 10h
mov dx,offset msj2 ; comandos para imprimir msj2
mov ah,09
int 21h
mov ax,4c00h
int 21h
main endp
end main
Con el código anterior, ya pudimos aprender a mover nuestro texto en cualquier parte de la pantalla. Haciendo un resumen, se puede imprimir una cadena de caracteres de las siguientes formas.
Forma 1:
mov ax,@data ; comandos de inicio de programa
mov ds,ax
lea dx,mensaje ; comandos para imprimir el mensaje
mov ah,09h
int 21h
Forma 2:
mov ax,@data ; comandos de inicio de programa
mov ds,ax
mov dx, offset mensaje ; comandos para imprimir el mensaje
mov ah,09h
int 21h
Forma 3:
mov ax,@data
mov ds,ax
mov ah,02h ; comandos para mover el texto
mov dh,4 ; ubicación de texto en fila
mov dl,4 ;ubicación de texto en columna
int 10h
mov dx,offset mensaje ; comandos para imprimir el mensaje
mov ah,09
int 21h
Espero haberles ayudado, los programas utilizados son GUI ASSEMBLER v3.0.1, tambien funciona en programa emu8086.
0 Comentarios
Dejame tus dudas o saludame!