Está en la página 1de 10

;----------------------------------------------------------------------------------------------------------------

; NOMBRE: EDWIN JHONNY COHARITA CLLISAYA


; CI: 4852116 L.P.
; ETN 903 SISTEMAS DE COMPUTACION
;------------------------------------------------------------------------------------------------------------------
1) Desarrollar un sistema de computación para leer dos números reales de simple precisión, desde

el teclado, sumarlos y presentar el resultado en una pantalla modo texto 80x25.

Inicio

Cambiar modo de
video a 80x25

Despliega mensaje
para introducir
numeros

Guardar números en
memoria

Cargar números en ST
y ST(0)

Guardar la suma en
memoria

Desplegar suma en
pantalla 80x25

Fin
;------------------------------------------------------
page 60,132
title SUMA DE DOS NUMEROS REALES DE SIMPLE PRESCISION EN 80X25
;----------------------------------------------------------
.386
.387
;-------------------------------------------------------------
pila ssegment para stack 'satack'
dw 30 dup(0)
pila ends
;------------------------------------------------------------
datos segment para 'data'
mensaje db 10,13,7, 'ingrese numeros:', '$'
numero1 dd 0.0
numero2 dd 0.0
suma dd 0.0
datos ends
;-----------------------------------------------------------
codigo segment use16
program proc far
assume ss:pila, ds:datos, cs:codigo, es:datos
push ds
sub ax,ax
push ax
mov ax,datos
mov ds,ax

mov ah 00h ;modo video


mov al,02 ; 80x25
int 10h

mov ah,09h ;despliega


lea dx,mensaje ; mensaje
int 21h

mov ah,01h ;teclear


int 21h ; numero 1
fst numero1 ;almacenar en memoria

mov ah,01h ;teclear numero 2


int 21h
fst numero2 ;almacenar en memoria

fld numero1 ; carga en ST numero1


fld numero2 ; carga en ST(1) numero 2
fadd ; suma los numeros
fstp suma ; almacenar la suma en memoria

mov ah,09h ;desplegamos en pantalla


lea dx,suma ; la suma
int 21h
program endp
codigo ends
end program
4) Desarrollar un sistema de computación para cambiar el programa de servicio de atención a la int 9

(el teclado). El programa de servicio a la int 9, con la conbinacion Ctrl-a, desplegará el código

ascii, en una pantalla modo texto 80x25, como en el programa ascii.asm.

código de rastreo letra a: 1Eh 61h CTRL 1Eh 01h

page 60,132
title CAMBIO_DEL_VECTOR_DE_INTERRUPCIONES
;----------------------------------------------------------
codigo segment
assume cs:codigo
org 100H
inicio:
jmp initze ; Salto a la inicializacion
SAVINT9 dd ?
KBSTAT db ? ; Byte de estado del teclado
mensaje db ' ','$'
;----------------------------------------------------------
MiApp:
push ax ; Guardar registros
push cx
push ds

in al,60h ; Leemos codigo de rastreo del teclado


mov KBSTAT,al
test KBSTAT,80h ; Verificamos si hay alguna tecla
jnz terminar ; Cuando no hay 'tecla pulsada'
cmp al,1Eh ; 10h codigo de rastreo para la tecla 'a'
jne terminar
mov cx,15
for0:
push cx
mov ah,05h ; escritura en el teclado
mov ch,38h ; codigo ASCII
mov cl,0 ; codigo de rastreo de teclas
int 16h
pop cx
loop for0

mov si,0 ;escritura del mensaje


repetir:
mov ah,0eh ; muestra en pantalla
mov al,mensaje[si]
mov bh,00h
int 10h
inc si
cmp mensaje[si],'$'
jne repetir
terminar:
pop ds ; Restablecer registros
pop cx
pop ax
jmp cs:[SAVINT9]
;----------------------------------------------------------
; RUTINA DE INICIALIZACION
; ------------------------
initze:
cli
mov ax,3509h ;Paso1: Obtenemos el vector
int 21h
mov word ptr [SAVINT9+0],BX
mov word ptr [SAVINT9+2],ES

mov ax,2509h ;Paso2: Cambiamos el vector


mov dx, offset MiApp
int 21h

mov ah,31h ;Paso3: Termina


mov dx,OFFSET initze
sti
int 21h
codigo ends
end inicio

También podría gustarte