0% encontró este documento útil (0 votos)
4 vistas9 páginas

Práctica de Organización de Computadoras

Cargado por

fernando.esqueda
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas9 páginas

Práctica de Organización de Computadoras

Cargado por

fernando.esqueda
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA.

Organización y arquitectura de computadoras.


Reporte de practica #3.

Alumno: Luis Fernando Esqueda García


Matricula: 1262059 Grupo: 551
Profesor: José Isabel García Rocha.
Objetivo

Identificar la organizacion de una computadora de proposito general, para comprender su


estructura y funcionamiento, analizando la interconexion de sus componentes basicos, con una
actitud crítica, propositiva y visionaria.

Desarrollo

Realice un programa en el simulador MARIE que realice lo siguiente.

1. Pida el número de renglones.


2. Pida el número de columnas.
3. Con una subrutina revise si el espacio de memoria a utilizar está vacío (recordemos para
este caso vacío es cero y comenzamos a guardar en la dirección 300h).
4. Con una subrutina debe llenar el array 2D, puede utilizar los siguientes valores para pruebas:
66 AA 8C 12
72 23 AF F0
3A BC DE 10
5. Con una subrutina pregunte al usuario el tipo de impresión: Imprimirlo todo (en orden ej. 66
AA 8C 12
72 23 AF F0
3A BC DE 10)
Imprimir un renglón (Preguntarle al usuario, ej. renglón = 2, muestra: 72 23 AF f0).
Imprimir una columna (preguntarle al usuario, ej. columna = 2, muestra: AA 23 BC).
6. Con una subrutina eliminar el array 2D.

Explicando un poco el funcionamiento sobre el programa que realice, para utilizarlo desde la
ventana de input list, pondré una explicación de que es lo que espera el programa.

Los dos primeros inputs son de numero de


columnas, y renglones, respectivamente

Los siguientes inputs son todos los


datos que se ingresaran en la matriz,
un total de C*R, donde C son las
columnas y R los renglones.
Y por último se espera el tipo de impresión que desea, 1) para
imprimir toda la matriz (si se selecciona este, no es necesario poner el
ultimo input), 2) si se desea imprimir solo un renglón, 3) si se desea
imprimir solo una columna, y el ultimo input es para la columna o
renglón que se desea imprimir, en este caso las posiciones se manejan
empezando de 0 hasta n-1.
En esta prueba que ejecute, tenemos el ejemplo que viene en la práctica, y puse que se imprimiera toda la
matriz.

Y este fue el output, cada uno de los elementos en su orden.


Ahora imprimiendo el renglón 2 (renglón 1 dentro del programa):

Y por último, imprimiendo la columna 2 (columna 1 en el programa):

Conclusiones y comentarios
Llevar acabo programas a bajo nivel es complicado y confuso, es muy difícil para mi perderme en el programa,
aunque no estoy experimentado me doy cuenta que es mejor etiquetar cada parte del programa en los que se
esta haciendo algo en específico, para así, tener claro que es lo que quiero de ese bloque de código, y no
perderme en el resto del programa, fue tediosa esta práctica, pero me sirvió mucho para tener experiencia,
aunque no hay muchas fuentes de información en las que pueda conseguir ayuda a resolver mis dudas acerca
de este lenguaje, encontré lo esencial para darme una idea y partir de ahí.

Dificultades en el desarrollo
Tuve dificultades por no saber bien las técnicas para crear bucles y/o saltos a otras partes del código, pero
pude dominarlo al final y completar totalmente la práctica, aunque fue difícil implementar cada uno de los
puntos que se pide, logré hacerlo, y el resultado fue lo esperado.
Referencias
[Link]

CODIGO:

/pedimos el numero de columas (x) y el numero de renglones (y)


/los datos se guardaran por renglones (x1, x1 ,..., xn )
input
store x
store xflag
input
store y
store yflag
jump vacio
/revisamos si los espacios que se utilizaran en la memoria son 0
/en caso contrario el programa terminar
vacio, loadi direccion
skipcond 400
jump halt
load direccion
add uno
store direccion
load xflag
subt uno
store xflag
skipcond 400
jump vacio
load x
store xflag
load yflag
subt uno
store yflag
load direccion
subt x
add diesciseis
store direccion
load yflag
Skipcond 400
jump vacio
load x
store xflag
load y
store yflag
load direccionI
store direccion
//capturamos los datos de los renglones
capturarx, input
storeI direccion
load direccion
add uno
store direccion
load xflag
subt uno
store xflag
Skipcond 400
jump capturarx
/esta funcion sirve para rellenar todas las variables y comprobar si hay mas renglones
/por escribir, si es asi, salta a la funcion anterior
capturar, load x
store xflag
load yflag
subt uno
store yflag
load direccion
subt x
add diesciseis
store direccion
load yflag
Skipcond 400
jump capturarx

/reinicio la direccion que previamnete utilice para escribir los datos.


load direccionI
store direccion
/aqui hice una structura parecida a un if, por eso le puse ese nombre
/si seleciona 1, se va a la funcion que imprime la matriz entera, 2 para renglones
/y 3 para columnas
opcion, input
if, subt uno
Skipcond 400
jump elseif
jump imprimirx
elseif, subt uno
Skipcond 400
jump else
jump capturarrenglones
else, subt uno
skipcond 400
jump opcion
jump capturarcolumnas

/en este caso utilice subrutinas para capturar los datos e inicializar
/algunos valores de la direccion dependiendo el caso.
capturarcolumnas, input
store c
add direccion
store direccion
jump imprimircolumna

capturarrenglones, input
store r
add direccion
store direccion
load r
Skipcond 400
jump calcularrenglones
jump imprimirrenglon
/aqui se calcula donde va a empezar a imprimir en el caso de que se impriman renglones
calcularrenglones, load direccionI
add diesciseis
store direccion
load r
Subt uno
Skipcond 400
jump calcularrenglones
jump imprimirrenglon
/aqui se imprimir las columnas
imprimircolumna, loadI direccion
output
load direccion
add diesciseis
store direccion
load y
subt uno
store y
Skipcond 400
jump imprimircolumna
jump halt
/aqui los renglones
imprimirrenglon, loadI direccion
output
load direccion
add uno
store direccion
load x
Subt uno
store x
skipcond 400
jump imprimirrenglon
jump halt

/esta funcion imprime un solo renglon entero


imprimirx, loadi direccionI
output
load direccionI
add uno
store direccionI
load xflag
subt uno
store xflag
skipcond 400
jump imprimirx
/esta funcion verifica si hay renglones por imprimir, si no es asi, salta a la funcion
/halt para dar final al programa
imprimir, load x
store xflag
load direccionI
subt x
add diesciseis
store direccionI
load y
subt uno
store y
skipcond 400
jump imprimirx
jump halt
halt, halt
c, hex 0
r, hex 0
x, DEC 0
y, DEC 0
uno, DEC 1
xflag, DEC 0
yflag, DEC 0
direccion, HEX 300
direccionI, HEX 300
diesciseis, HEX 10

También podría gustarte