ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Como se dan los Ejercicios basicos Ensamblador


Enviado por   •  20 de Abril de 2018  •  Trabajos  •  1.818 Palabras (8 Páginas)  •  318 Visitas

Página 1 de 8

MEMORIA TECNICA DE LABORATORIO DE ARQUITECTURA DE OREDENADORES

UNIVERSIDAD: UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD: INGENIERIA EN CIENCIAS FISICAS Y MATEMATICAS

CARRERA: INGENIERIA EN INFORMATICA

CONTENIDO:

  1. ¿Cuántos bytes se almacenan en la pila por un PUSH AX?

Para el siguiente ejercicio tenemos esta sencilla instrucción

[pic 1]

Básicamente la instrucción de pila PUSH, AX  mueve a la pila el valor que se encuentra en AX, por lo tanto el máximo número que se puede almacenar en pila, es la máxima capacidad del registrador AX, que es 2 bytes (16 bits).

  1. Forme una instrucción JMP que salta a la dirección señalada por el registro BX.

[pic 2]

En este ejercicio, se coloca una dirección especifica en BX, en este caso es 0111H (En esta dirección se encuentra la instrucción MOV AX, 5) por lo tanto cuando se ejecuta la instrucción JMP BX, dará un salto a la instrucción mencionada anteriormente.

  1. Desarrolle una estructura de datos que tenga cinco campos de una palabra cada uno de ellos denominados F1, F2, F3, F4 y F5 con un nombre de estructura de FIELDS.

[pic 3]

Se reservan 5 espacios de memoria para las palabras, llamadas F1, F2,F3, F4, F5.

Luego se reserva un espacio de memoria llamado CAMPOS con 5 elementos, ahí van lo que está guardado en memoria para F1, F2, F3,F 4, F5, respectivamente.

  1. Sumar 2 números Hexadecimales

[pic 4]

Este algoritmo, mueve al registro AX, el valor de 50H, luego mueve el valor de 100H al registrador.

A continuación con la instrucción add suma AX y BX, cabe recalcar que el resultado lo coloca en el registro AX.

La directiva ORG 100H indica al ensamblador que continúe el ensamblado a partir de la dirección dada por el argumento, en este caso 100H.

La instrucción RET, se utiliza para retornar el control al sistema operativo.

  1. Sumar 2 números de 128 bits (Binarios)

El siguiente ejercicio se explicara por partes.[pic 5]

La directiva .MODEL define el tipo de memoria que se utilizara, la directiva .CODE nos indica que lo que está a continuación es nuestro programa, la directiva .DATA nos permite asignar datos o variables en memoria, la directiva .STARTUP le indica al programa donde iniciar.

Para este ejercicio se reservó espacios de memoria para tres vectores, cada uno con 129 elementos llamados: num1, num2, num3.

Con directiva DB se reserva memoria para elementos de 8 bits cada uno.

A num1 y num2, se establecieron valores binarios ya que la suma va a ser exclusivamente en binario, a num3, solamente se reservó espacios vacíos de memoria para ser llenados luego.

Se inicializa el registro SI con 128 decimal (para indicar la posición de cada elemento del vector), y el registro BI con 0, (para llevar un contador de acarreo).

Se define las etiquetas suma, acarreo3, acarreo2, acarreo1, acarreo0.

A partir de la etiqueta “suma” tenemos las siguientes instrucciones:

[pic 6]

Se mueve al registro AL el valor del vector “num1” en la posición indicada por SI

Se suma el valor de AL, con el valor del vector “num2” en la posición indicada por SI

Se suma el acarreo.

Con esto se logra que se sume la cifra menos significativa del número. El resultado se guarda en AL

[pic 7]

A continuación se compara con la instrucción CMP, el dato en el registro AL, con los números 3, 2, 1, 0, que son las posibles respuestas. La instrucción --JE “etiqueta”—ejecuta el código que se encuentra en la etiqueta, si ambos números son iguales.

Si el resultado de la suma es 3 (11 binario) se ejecutara las instrucciones a partir de la etiqueta “acarreo3”

[pic 8]

Esta instrucción básicamente cumple la función de “poner 1 y llevar 1”.

Es decir coloca el valor 1 en la posición [SI] del el espacio de memoria reservado para “num3”

Luego guarda un acarreo de 1 en BL

Compara si el registrador SI=0, si se cumple, se finaliza el programa, caso contrario salta la instrucción salir y decrementa el registro SI y vuelve a ejecutar la suma del vector.

Cuando el registro SI llegue a cero, significa que ya no quedan números más significativos para sumar, por lo tanto la ejecución finaliza.

Si el resultado de la suma es 2 (10 binario) se ejecutara las instrucciones a partir de la etiqueta “acarreo2”

[pic 9]

Esta instrucción cumple la función de “poner 0 y llevar 1”.

Es decir coloca el valor 0 en la posición [SI] del el espacio de memoria reservado para “num3”

Luego guarda un acarreo de 1 en BL

Compara si el registrador SI=0, si se cumple, se finaliza el programa, caso contrario salta la instrucción salir y decrementa el registro SI y vuelve a ejecutar la suma del vector.

Si el resultado de la suma es 1 (01 binario) se ejecutara las instrucciones a partir de la etiqueta “acarreo1”

[pic 10]

Esta instrucción cumple la función de “poner 1 y llevar 0”.

Es decir coloca el valor 1 en la posición [SI] del el espacio de memoria reservado para “num3”

Luego guarda un acarreo de 0 en BL

Compara si el registrador SI=0, si se cumple, se finaliza el programa, caso contrario salta la instrucción salir y decrementa el registro SI y vuelve a ejecutar la suma del vector.

Si el resultado de la suma es 0 (00 binario) se ejecutara las instrucciones a partir de la etiqueta “acarreo0”

[pic 11]

Esta instrucción cumple la función de “poner 0 y llevar 0”.

...

Descargar como (para miembros actualizados)  txt (10.8 Kb)   pdf (333.7 Kb)   docx (157.3 Kb)  
Leer 7 páginas más »
Disponible sólo en Clubensayos.com