Está en la página 1de 9

TCNICAS DIGITALES II

UTN-FRM

Curso Fecha Integrantes

4R5 16-09-13

Turno Grupo

Noche grupo 1

baggio, camiletti, gutierrez, lescano

Ejercicios sobre Algortmez


1
Traduzca a binario (expresando el resultado en hexadecimal) las siguientes parejas de instrucciones: a. LD.B .10,[.15++] DATA.B 12 b. LD .10,[.15++] DATA 12 c. LD .10,[[.15++]] DATA 12 Cul ser el resultado de la ejecucin de cada una de las parejas? Responda a las mismas cuestiones para cada una de las siguientes instrucciones: a. LD.B .10,#12 b. LD .10,#12 c. LD .10,/12

2
Escriba instrucciones, o secuencias de instrucciones, de Algortmez cuyos efectos sean idnticos a los de las instrucciones EI, DI, CLRC, CLRV, POP y PUSH:

3
Traduzca a binario (expresando el resultado en hexadecimal) las siguientes parejas de instrucciones: a. LD.B .10,[.15++] DATA.B 12 b. LD .10,[.15++] DATA 12 c. LD .10,[[.15++]] DATA 12 Cul ser el resultado de la ejecucin de cada una de las parejas? 1

TCNICAS DIGITALES II

UTN-FRM

Responda a las mismas cuestiones para cada una de las siguientes instrucciones: a. LD.B .10,#12 b. LD .10,#12 c. LD .10,/12

4
Escriba en binario y en hexadecimal, tal como quedan almacenadas en la MP de Algortmez, las siguientes instrucciones: LD.B LD.B LD.B LD.B LD.B LD.B .0,[.7++] .0,#2 .0,/-10[.7] .0,-10 .0,[[.7++]] .0,/1000

Considere independientemente a cada una de las instrucciones, y suponga, para cada una de ellas, que se carga a partir de la direccin d.

5
Complete los comentarios de las lneas de puntos diciendo, escueta pero precisamente, lo que hace cada instruccin (el resultado de su ejecucin) en este programa: ORG 1000 BR PRINC DOS EQU 2 DATO DATA 2 PRINC LD LD LD LD LD LD .5, .4, .3, .2, .1, .0, #DATO /DATO DATO #DOS /DOS DOS ; esta instruccion ocupa tres bytes

; ; ; ; ; ;

carga carga carga carga carga carga

en en en en en en

R5... R4... R3... R2... R1... R0...

6
Con respecto al ejemplo de BR #-125 citado en la Tabla 6.8 del libro, a. Escriba (en hexadecimal) la traduccin binaria que generara el ensamblador. b. Cul sera la instruccin que se ejecutara inmediatamente despus?

7
a. Algortmez no dispone de ninguna instruccin para realizar directamente la operacin XOR (OR 2

TCNICAS DIGITALES II

UTN-FRM

exclusivo). Escriba un subprograma que permita realizar esta operacin entre dos operandos de tipo palabra, recibiendo el primer operando en la direccin apuntada por R1, el segundo en la direccin apuntada por R2, y dejando el resultado en R0, y teniendo en cuenta que: A XOR B = ((NOT A) AND B) OR (A AND (NOT B)) b. Un algoritmo de cifrado muy sencillo para cifrar palabras es: Palabra XOR Clave = Palabra cifrada ya que descifrar la palabra es igual de simple: Palabra cifrada XOR Clave = Palabra Escriba un subprograma que cifre las palabras de una zona de memoria y las guarde, ya cifradas, en otra, y que deje los registros de la ML tal como estaban antes de su ejecucin. El subprograma necesita cuatro argumentos: la direccin de comienzo de la zona de datos originales, la de la zona de datos codificados, el nmero de palabras a cifrar (longitud de las zonas) y la direccin de la clave. Esos argumentos, de dos bytes cada uno, se le pasarn por la pila, en el orden enunciado.

8
El equivalente de un subprograma en el lenguaje C es una funcin. La definicin de una funcin empieza con su tipo (que puede ser void, si no devuelve nada), su nombre y una lista de parmetros formales entre parntesis, cada uno con su tipo, y le sigue el cuerpo de la funcin entre corchetes. Es decir, la misma sintaxis que los mtodos de Java (los diseadores del lenguaje Java escogieron construcciones sintcticas familiares a los programadores de C y C++). Conociendo Java es fcil entender un programa escrito en C. Por ejemplo, debe ser inmediato darse cuenta de lo que hace el siguiente fragmento de programa (obviando el que los argumentos de main() sean diferentes a los de Java, lo que aqu no tiene ninguna importancia): int main(int argc, char *argv[]) { int x, m; x = 12; m = media(9,x); ... } int media(int a, int b) { return ((a + b)/2); } Suponga que tenemos un compilador de C para Algortmez en el que las variables de tipo entero (int) se traducen por una palabra (16 bits). Como en la mayora de los compiladores, el paso de parmetros en las llamadas a funciones, as como la preservacin de la direccin de retorno se realiza a travs de la pila. El convenio de paso de parmetros que utiliza este compilador es el que se explica en el libro (pg. 632). Es decir, al entrar en el subprograma que implementa a la funcin, en la cima de la pila est la direccin de retorno (en la direccin D). A continuacin los parmetros de derecha a izquierda: el de ms a la derecha 3

TCNICAS DIGITALES II

UTN-FRM

(junto a )) estar en la direccin D+2, el siguiente en la D+4 (suponiendo que todos ocupan una palabra), y as sucesivamente. Finalmente, el compilador sigue el convenio de devolver la salida de las funciones por el registro R0 (si son de tipo int, como en el ejemplo). Para las sentencias que figuran en main(), el compilador genera el cdigo binario cuyo equivalente en ensamblador es: /* Cdigo C */ ; Cdigo ensamblador /*-------------------*/ ;------------------int x, m X RES 1 M RES 1 x = 12; LD .0, #12 ST .0, X m = media(9, x); LD .0, #9 PUSH .0 LD .0, X PUSH .0 CALL /MEDIA ADD .14, #4 ST .0, M

CCC SSS

a. Para qu sirve la instruccin ADD .14,#4? Qu ocurre si se omite? b. Escriba el cdigo que generara el compilador para la funcin media (subprograma MEDIA). c. Suponiendo que a la etiqueta X le corresponde la direccin D32.001 y que el registro R14, es decir el puntero de pila, tiene el valor D59.004 antes de ejecutar la instruccin CCC CALL /MEDIA, escriba los valores que contienen R14, las variables X y M y las palabras comprendidas entre las direcciones D59.002 y D59.006 inmediatamente despus de ejecutarse la instruccin CCC CALL /MEDIA y despus de ejecutarse SSS ADD .14, #4.

9
ste es un programa de prueba trivial (y muy incompleto) para comprobar el buen funcionamiento de los mdulos BINHEX (Programa 6.10) y REGHEX (Programas 6.11 o 6.12): MODULE PRUEBA FROM REGHEX IMPORT RH_ENT DP RES.B 4 ; para guardar el resultado ENT LD .0, #H1234 LD .2, #DP CALL /RH_ENT HALT END ENT a. Despus de ensamblar los mdulos REGHEX (en la versin del Programa 6.12), BINHEX y PRUEBA, qu contenidos tendrn las tablas de smbolos, las tablas de smbolos externos, las tablas de smbolos de acceso y los diccionarios de reubicacin de cada uno de los mdulos? b. Si el montador pone primero el mdulo PRUEBA inmediatamente seguido de REGHEX y BINHEX, qu direcciones contendr el diccionario de reubicacin del mdulo resultante? 4

TCNICAS DIGITALES II

UTN-FRM

c. Si se carga el programa a partir de la direccin D1.000, en qu direcciones de memoria queda cargada la instruccin CALL /RH_ENT de PRUEBA y cmo queda codificada?

4R5$/$Grupo$1$ $ RESOLUCIONES$ $ EJERCICIO$1$

Tcnicas$Digitales$

Trabajo$Practico$Algortmez$

$ EJERCICIO$2$

EJERCICIO$3$$ $ Este$ejercicio$se$encuentra$repetido$y$es$similar$al$ejercicio$1$ $ $ $ $

6$ $

4R5$/$Grupo$1$ $ EJERCICIO$4$

Tcnicas$Digitales$

Trabajo$Practico$Algortmez$

$ EJERCICIO$5$

$ EJERCICIO$6$

$ $ $

7$ $

4R5$/$Grupo$1$ $ EJERCICIO$7$

Tcnicas$Digitales$

Trabajo$Practico$Algortmez$

$ EJERCICIO$8$

$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $

8$ $

4R5$/$Grupo$1$ $ EJERCICIO$9$

Tcnicas$Digitales$

Trabajo$Practico$Algortmez$

9$ $

También podría gustarte