Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Porgramitas Hechos en Simuproc
Porgramitas Hechos en Simuproc
#SimuProc 1.4.3.0
cla
sta 090
cln
eap
inc 090
lda 090
cmp 091
jne 002
hlt
#091
10000
Códigos:
1.- Calculo de Área de una Circunferencia.
msg "ingrese ahora el diámetro de su circunferencia"
in ax,1 ; se ingresa el valor de diámetro
stf 015 ; gurda en esa posición de memoria los números ingresados
ldf 015 ; guarda en posición ax y bx los numero ingresados
divf 040 ; divide el numero de 32 bits
stf 030 ; guarda en esa posición la división
ldf 030 ; carga en ax y bn el nro contenido
mulf 030 ; multiplica el resultado de la división por dos
stf 017 ; guarda en esa posición el resultado de la multiplicación
ldf 017 ; carga en ax y bx los números contenidos
mulf 050; multiplica el resultado por la posición que guarda el PI
stf 019 ; guarda en esa posición el resultado de la multiplicación
out 1,ax ; muestra el área o resultado final
hlt ; termina el programa
#040
0100000000000000; numero de 32 bits parte uno
0000000000000000; parte dos
#050
0100000001001000; numero de 32 bits parte uno
1111010111000010; parte dos
#SimuProc 1.4.3.0
MSG SUMA DE DOS NUMEROS
ldt INTRODUZCA EL PRIMER NUMERO
sta 10
ldt INTRODUZCA EL SEGUNDO NUMERO
add 10
jo 20 ; saltar si hay desbordamiento
eap EL RESULTADO ES:
hlt
#20
msg EL NÚMERO ES MUY GRANDE
jmp 02
OPERACIONES ARITMÉTICAS
#100
0
1
10
11
100
101
#110
MSG NUMERO NO VALIDO
JMP 0
MSG ADIOS
HLT
ldt introdusca un numero
sta 10
ldt introdusca otro numero
sta 20
MSG ELIJA UNA OPERACION
MSG PRESIONE UNO PARA SUMAR
MSG PRESIONE DOS PARA RESTAR
MSG PRESIONE TRES PARA MULTIPLICAR
MSG PRESIONE CUATRO PARA DIVIDIR
MSG PRESIONE CINCO PARA VOLVER AL MENU PRINCIPAL
LDT
CMP 105
JMA 110
JEQ 200
CMP 101
JEQ 201
CMP 102
JEQ 205
CMP 103
JEQ 209
CMP 104
JEQ 20D
#200
JMP 0
mov ax,10
add 20
eap suma es:
JMP 118
mov ax,10
sub 20
eap resta es:
JMP 118
mov ax,10
mul 20
eap multipli es:
JMP 118
mov ax,10
div 20
eap divi es:
hlt
#20
0
1
10
11
101
#25
MSG SOLO NUMEROS DEL MENU
JMP 0
#30
MSG DATOS PRIMERA MATRIZ
LDT
STA 100
LDT
STA 101
LDT
STA 102
LDT
STA 103
LDT
STA 104
LDT
STA 105
LDT
STA 106
LDT
STA 107
LDT
STA 108
MSG DATOS SEGUNDA MATRIZ
LDT
STA 109
LDT
STA 10A
LDT
STA 10B
LDT
STA 10C
LDT
STA 10D
LDT
STA 10E
LDT
STA 10F
LDT
STA 110
LDT
STA 111
JMP 0
HLT
#60
LDA 100
ADD 109
EAP
STA 120
LDA 101
ADD 10A
EAP
STA 121
LDA 102
ADD 10B
EAP
STA 122
LDA 103
ADD 10C
EAP
STA 123
LDA 104
ADD 10D
EAP
STA 124
LDA 105
ADD 10E
EAP
STA 125
LDA 106
ADD 10F
EAP
STA 126
LDA 107
ADD 110
EAP
STA 127
LDA 108
ADD 111
EAP
STA 128
JMP 0
HLT
#90
LDA 100
SUB 109
EAP
STA 120
LDA 101
SUB 10A
EAP
STA 121
LDA 102
SUB 10B
EAP
STA 122
LDA 103
SUB 10C
EAP
STA 123
LDA 104
SUB 10D
EAP
STA 124
LDA 105
SUB 10E
EAP
STA 125
LDA 106
SUB 10F
EAP
STA 126
LDA 107
SUB 110
EAP
STA 127
LDA 108
SUB 111
EAP
STA 128
JMP 0
HLT
#SimuProc 1.4.3.0
; operaciones de polinomios de grado 2
msg Introduzca el primer polinomio
mov ax,50
mov bx,50
ldt
stb 60
inc bx
loop 3
msg Introduzca el segundo polinomio
mov cx,53
mov bx,50
ldt
stb 63
loop 0A
msg ¿Qué desea hacer?
msg 1-sumar
msg 2-restar
msg 3-multiplicar
msg 4-dividir
#50
0
1
10
11
100
101
#60
====NO LO PUDE HACER LO DEMAS========
=======================================
#SimuProc 1.4.3.0
msg ****NOTAS***************
msg * 1.- Introducir Notas *
msg * 2.- ver Notas *
msg * 3.- Salir *
msg ************************
ldt
CMP 21
JME 25
JEQ 30
CMP 22
JEQ 40
CMP 23
JEQ 2E
HLT
#20
0
1
10
11
#25
MSG SOLO NUMEROS DEL MENU
JMP 0
#28
MSG SOLO NOTA MENOR A CUARENTA PTS
JMP 30
#2A
MSG SOLO NOTA MENOR A CUARENTA PTS
JMP 34
#2C
MSG SOLO NOTA MENOR A VEINTE PTS
JMP 38
#2E
MSG ADIOS
HLT
#30
LDT NOTA PRIMER PARCIAL
CMP 200
JMA 28
STA 90
LDT NOTA OPTATIVO
CMP 200
JMA 2A
STA 91
LDT NOTA ACT ACAD
CMP 201
JMA 2C
STA 92
JMP 0
#40
LDA 90
CMP 91
JME 60
JMA 65
JEQ 65
#50
LDA 93
CMP 202
JME 70
JMA 79
JEQ 79
#60
LDA 91
ADD 92
STA 93
JMP 50
#65
LDA 90
ADD 91
DIV 100
ADD 92
STA 93
JMP 50
#70
MSG TTENES QUE SACAR COMO MINIMO
LDA 202
SUB 93
EAP
MSG POR QUE TU NOTA ES
LDA 90
EAP
HLT
#79
MSG APROBADO
LDA 93
EAP
HLT
#100
10
#200
101000
10100
110011
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
#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
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
; 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