martes, 2 de mayo de 2017

Programa Vector

;==========================================================
 ; PROGRAMA : pe26_arr
 ; FUNCION : Vector ingresa datos .
 ; REALIZADO POR : Yesenia Lizbeth Guerrero Garcia
 ; FECHA : jueves 27 abril 2017
 ;=========================================================
title reves.asm

.model small     ;Modelo de memoria m?s utilizado

.stack  256h     ;se define el espacio necesario para la pila

.data
     CR equ 13      ; Constante CR (Retorno de carro) En decimal o
     LF equ 10      ; Constante LF (Salto de l?nea) en hex es igual

     mens db 'Escribe algo y te lo convierto al reves', CR,LF,'$'
     salto db CR,LF,'$'

cadena label byte ;cadena de texto

cant db 20
max  db 00
campo db  20 dup(' ')

 .code

inicio:

 mov ax,@data ; Inicializar correctamente el
 mov ds,ax    ; registro de datos
 push ds      ; Guardar ds en vector
 pop es       ;restaruamos es con sus valores anteriores

 mov ah,09h   ; Esperar tecla
 lea dx,mens  ; CARGA ETIQUETA MENSAJE
 int 21h      ; Llamar a la interrupci?n del DOS

 mov ah,0ah    ; Esperar tecla
 lea dx,cadena ; CARGA ETIQUETA CADENA
 int 21h       ; Llamar a la interrupci?n del DOS

 mov ah,09h    ; Esperar tecla
 lea dx,salto
 int 21h       ; Llamar a la interrupci?n del DOS

 mov cl,cant
 mov bx, offset campo
 add bl, cant

loopo:
  mov dl,[bx] ; Movemos el siguiente caracter ASCII al dl
  mov ah,02h  ;Leer car?cter desde el teclado
  int 21h     ; Llamar a la interrupci?n del DOS
  dec bl
  dec cl
  cmp cl,0
  je salir
  jmp loopo

 salir:
 mov dl,[bx]  ; Movemos el siguiente caracter ASCII al dl
  mov ah,02h  ;Leer car?cter desde el teclado
  int 21h     ; Llamar a la interrupci?n del DOS
 mov ax,4c00h ;regresamos el control al sistema operativo
 int 21h      ; Llamar a la interrupci?n del DOS

 end  inicio

No hay comentarios:

Publicar un comentario