Press

Header Ads

MOVER TEXTO EN ENSAMBLADOR 8086

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.

Publicar un comentario

0 Comentarios