Vector

; FECHA : miercoles 27 septiembre 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

Comentarios

Entradas populares de este blog

Multiplicacion

EMU8086

Suma de dos numeros