miércoles, 6 de febrero de 2019

Resumen del dia 06 de febrero del 2019

Resumen de video del dia 06 de enero

objetico:aprender a leer e imprimir caracterres con lenguaje ensamblador.
Leer caracteres numerico,convertirlos e imprimirlos

AL ES LA PARTE BAJA DEL (LOW) DEL REGISTRO AX
AH ES LA PARTE ALTA (HIGH) DEL REGISTRO AX

el servicio de interrupcion de la interrupcion "21h" que lee un caracter que guarda en el registro AL

se usara de la siguiente manera

MOV AH,01
INT 21H

si lo que necesita son los valores de la configuracion ascii

 y en el video aprendemos a leer los numeros en el valor hexadecimal que seria sumandole 48 en cuanto saber que numero sera en codigo hexadecimal
 por ejemplo si tenemos un 3 le sumamos 48 para saber su valor en hexadecimal 

3 + 48 =51 con esto decimos que el 3 en codigo hexadecimal es 51



si lo que se necesita son valores numercios reales y no el caracter numerico de debe

al momneto de que se llee hay que convertirlo  restandole a AL 30h o 48

sub al,48      o      sub al,30h

imprimirlo

add al,48      o add al,30h

mov ah,02
mov dl,al ;lo que esta en al se pasa al valor dl
int 21


PARA IMPRIMIR SE UTILIZA LA INTERRUPCION 21H es para leer



ejemplo del video que suma dos numeros y da el resultado

; You may customize this and other start-up templates;
; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h


.model small

.stack 64

.data

n1 db 0

n2 db 0

suma db 0

msg1 db "dame el primer valor:",'$'

msg2 db  10,13,"dame el segundo valor",'$'

msg3 db 10,13 ,"suma",'$'



.code

begin proc far
;direccionamos al segmento de datps
mov ax,@data
mov dx,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;conviert el caracter en numero

mov n1,al

;solicitamos el segundo numero

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
add al,n2
add al,30h;convierte el caracter suma o incrementa 30h
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
mov dl,suma
int 21h
mov ah,4ch ;ch es para el cierre del programa

Begin endp

end


   
ret


este es el resultado en pantalla



No hay comentarios.:

Publicar un comentario

Unidad 3-ejemplo con macros

Programa que que imprime valores numericos en hexadecimales pero haciendo la utilizacion de macros. include 'emu8086.inc' Mostra...