PROGRAMAS EN SIMUPROC
;Ecuación de 2do Grado
MSG 'Programa Ecuación de 2do Grado'
;MSG 'Introduzca el valor de "a"'
LDT 'Introduzca el valor de "a"' ;Leo el Valor de A=
MOV 4A,AX ;Grabo el numero en la dir 4A y 4B
;MSG 'Introduzca el Valor de "b"'
LDT 'Introduzca el valor de "b"' ;Leo el valor de B=
MOV 4C,AX ;Grabo el numero en la dir 4C y 4D
;MSG 'Introduzca el Valor de "c"'
LDT 'Introduzca el valor de "c"' ;Leo el valor de C=
MOV 4E,AX ;Grabo el numero en la dir 4E y 4F
JMP 90
MSG '-b'
MOV AX,5A
EAP 5A
;d=b*b-4.0*a*c
MOV 4C,AX
MUL 4C
SUB 64
MUL 4A
MUL 4E
MOV AX,50
JMP 95
MOV AX,50
MSG 'd='
EAP 50
CMP 55
JMA 60 ;d es mayor a 0
JEQ 60 ;d es igual a 0
JMP 80 ;si b es menor a 0 salta a la pos 80
;Inicializo las constantes 1 y 2 en IEEE 754
#50
0011111110000000 ;Inicializo el Numero 1 en la dir 30 y 31
0000000000000000
0100000000000000 ;numero 2 en la dir 32 y 33
0000000000000000
110
0
010
#60
; X1=(-b+SQR(b))/a/2.0
MOV AX,5A ;-b
ADD 100 ;raiz de b
DIV 4A
DIV 56
MOV 6A,AX
; X2=(-b-SQR(b))/a/2.0
MOV AX,5A ;-b
SUB 100
DIV 4A
DIV 56
MOV 6D,AX
JMP 120
#80
;X2=sqr(-d)/a/2
MOV AX,5C ;-d
;LDF 110 ;Raiz de -d
DIV 4A
DIV 56
MOV 6D,AX
;X1=-b/0/2
MOV AX,5A ;-b
DIV 4A
DIV 56
MOV 6A,AX
JMP 120
#90 ; -b
MOV AX,55
MSG 'Negando b'
SUB 4C
MOV 5A,AX
EAP 5A
JMP 0C
#95 ; -d
MOV AX,55
MSG 'Negando d'
SUB 50
MOV 5C
OUT 1,AX
JMP 16
# 120
;Mostrar datos en Pantall
MSG 'El valor de X1 es:'
MOV AX,6A
EAP 'X='
MSG 'El valor de X2 es:'
MOV AX,6D
EAP 'X2'
HLT
;PROGRAMA DE MENUS
MSG 'MENU PRINCIPAL'
MSG 'Escriba 1: para Introducir datos'
MSG 'Escriba 2: para salir'
LDT 'Introdusca 1 Ó 2'
CMP 40
JEQ 50 ;COMPARO SI ES =
CMP 41
JEQ 33
JMP 0
MSG 'MENU SECUNDARIO'
MSG 'Que Operasión quiere realizar:?'
MSG '1: SUMAR'
MSG '2: RESATAR'
MSG '3: MULTIPLICAR'
MSG '4: DIVIDIR'
MSG '5: CARGAR DATOS'
MSG '6: MENU PRINCIPAL'
LDT 'Opsión:'
CMP 40
JEQ 20
JME 9
CMP 41
JEQ 24
CMP 42
JEQ 28
CMP 43
JEQ 2C
CMP 44
JEQ 50
CMP 45
JEQ 0
JMA 9
MOV AX,3E
ADD 3F
EAP 'SUMA:'
JMP 9
MOV AX,3E
SUB 3F
EAP 'RESTA:'
JMP 9
MOV AX,3E
MUL 3F
EAP 'MULTIPLICASION:'
JMP 9
LDA 3F
CMP 47
JEQ 60
MOV AX,3E
DIV 3F
EAP 'DIVISION:'
;OUT 1,AX
JMP 9
MSG 'FIN'
HLT
#40
1
10
11
100
101
110
0
#50
LDT 'Introdusca el PRIMER número:'
MOV 3E,AX
LDT 'Introdusca el SEGUNDO número:'
MOV 3F,AX
JMP 9
#60
MSG 'Para la División el SEGUNDO número debe ser diferente de 0'
JMP 52
;PROGRAMA PARA ORDENAR 3 NUMERO E MENOR A MAYOR
;POR EL METODO DE LA BURBUJA
MSG 'ORDENAR 3 NUMEROS DE MENOR A MAYOR'
MSG 'INTRODUSCA LOS DATOS A NUMERAR'
LDT 'ENTRODUSCA EL VALOR DE A:'
MOV 20,AX
LDT 'ENTRODUSCA EL VALOR DE B:'
MOV 21,AX
LDT 'ENTRODUSCA EL VALOR DE C:'
MOV 22,AX
; A MAYOR QUE B
;MOV CX,19
MOV AX,20
CMP 21
JMA 80
JEQ 40
JMP 50
;LOOP 5
;JMP 15
HLT
#40
; B MAYOR QUE C
MOV AX,21
CMP 22
JMA 90
JEQ 15
JMP 60
#50
; A MENOR QUE B
MOV AX,21
CMP 20
JME 40
JMP 60
#60
; B MENOR QUE C
MOV AX,22
CMP 21
JME 90
JMP 15
#15
MOV AX,20
EAP 'A'
MOV AX,21
EAP 'B'
MOV AX,22
EAP 'C'
JMP 0D
#80
MOV AX,20
MOV 25,AX
MOV AX,21
MOV 20,AX
MOV AX,25
MOV 21,AX
JMP 40
#90
MOV AX,21
MOV 25,AX
MOV AX,22
MOV 21,AX
MOV AX,25
MOV 22,AX
JMP 08
Suscribirse a:
Enviar comentarios (Atom)
3 comentarios:
En la instrucción MOV 5C, del programa de la ECUACION DE SEGUNDO GRADO falta el destino puesto que marca error al momento de realizar la ejecución
Publicar un comentario