domingo, 10 de febrero de 2019

1. Programa de suma de dos números(vídeo)


Servicios a utilizar:
Servicio 01 de la interrupcion 21h para leer caracteres guardados en el registro AL

Ejemplo de lectura:
mov ah,01 ;-Con esto se invoca al servicio 01: el cual guarda el contenido leido por teclado en AX
int 21h; invoca la interrupcion para salida por pantalla

*Notas:
-solo es posible leer un solo carecter (no cadenas) por este metodo.
-Los elementos leidos son cargados bajo su interpretación en codigo ascii en formato hexadecimal o decimal (dependiendo de la maquina), de esta manera para cualquier calculo numerico se debera hacer uso de una operacion aritmetica (la resta de 48 o 30h al valor leido por teclado para obtener su valor numerico real).
        Esto ultimo seria mediante los comandos:
        sub AL,48     o   sub AL,30h
        De igual manera para la Impresion sera necesario hacer la operacion contrarea:
        add AL,48    o    sub AL,30h
-Para mandar a impresion se usan las siguientes lineas:
        mov ah,02 ;  -Se invoca al servicio 02: que permite la manipulacion del display (pantalla)
        mov DL,AL ; -Se pasa la información de AL a DL para impresion

        int 21h;        -Uso la interrumpción 21h para la salida por pantalla


Código:


org 100h

.model small
.stack 64
.data
 n1 db 0
 n2 db 0
 suma db 0
 msg1 db "Ingrese el primer valor:", '$'
 msg2 db 10,13, "Ingrese el segundo valor:", '$'
 msg3 db 10,13, "Suma=", '$'
 .code

 begin proc far
    ;direccionamos al segmentos de datos
    mov ax,@data
    mov ds,ax
    
    ;solicitamos el primer digito
    mov ah,09
    lea dx,msg1
    int 21h  
    ;se lee el primer valor
    mov ah,01
    int 21h
    sub al,30h; convierte el caracter en numero
    mov n1,al        
    
    ;solicitamos el segundo digito
    mov ah,09
    lea dx,msg2
    int 21h
    mov ah,01
    int 21h
    sub al,30h;convierte el caracter en numero
    mov n2,al
    
    ;operacion
    mov al,n1 ;lo que esta en n1 lo asigna a al
    add al,n2 
    add al,30h;convierte a caracter
    mov suma,al
    mov ah,09
    lea dx,msg3
    int 21h
    
    ;se imprime el caracter con el servicio 02 de la int 21h
    mov ah,02  ;valor que se usa para poner algo en pantalla
    mov dl,suma 
    int 21h
    mov ah,4ch
    begin endp  ;final del procedimiento 

 end     ;final del bloque de codigo
    
    
ret



Resultado:





No hay comentarios:

Publicar un comentario

3. Colores Modificado 9

Modificación del programa # 9 " Colores " Por mi compañero Ambrocio isaias Laureano CR EQU 13 ;Declaro retorno de carro LF...