Академический Документы
Профессиональный Документы
Культура Документы
Presentación
Este trabajo tiene como propósito permitir que usted incorpore la estructura
básica de programación en assembler, conozca las instrucciones más
comunes, maneje los flags y se vincule con el hardware del computador. Se
trata de poner en práctica las “siete notas musicales”, para que pueda
combinarlas en estructuras más complejas luego.
Consignas
Codifique y ejecute de la forma que usted crea más efectiva los programas
correspondientes a los ejercicios Nº 4, 6, 12, 14, 17, 23, 24, 27 del libro
“Assembler desde cero” 3ra edición mejorada”
Para su realización considere siguientes indicaciones:
Las direcciones del inicio del programa, la de los datos y su
valor, deben obtenerse a partir se su número de DNI.1 (tal
como usted lo realizó en los Trabajos Prácticos del Sistema
de Computación I). Es decir que si su documento es el
número 12.345.678, El área de datos debe comenzar en
1234h y el área de programa en 5678h. Esos números se
1
Cualquier duda acerca de la elección debe consultarse con el profesor, que dispondrá de una
lista con el DNI de cada alumno, a los efectos de verificar en el momento de la corrección de
los Trabajos Prácticos que cada alumno haya trabajo individualmente.
2
Forma de copiar una pantalla del Debug en el Word
1) Abrir un documento Word para realzar el trabajo paralelamente realizar el ejercicio solicitado en
el programa Debug.
2) Con el botón derecho del mouse hacer clic en la barra superior de la pantalla del DOS
3) Hacer clic en el botón izquierdo del mouse en Editar.
4) Hacer clic con el botón izquierdo en la opción “Seleccionar todo” y posicionar el mouse en el
margen superior izquierdo
5) Mover la flecha del mouse sobre dicho punto y presionar Enter, al realizarlo se dejará de ver lo
seleccionado.
6) Volver al documento creado en Word u otro procesador de texto y presionar las teclas Ctrl V para
copiar lo seleccionado en el punto anterior.
Criterios de corrección
En la corrección de este Trabajo Práctico, tendremos en cuenta los siguientes
criterios:
a. La claridad del Trabajo entregado y su encuadre en cuanto a
consignas de formato general.
b. La precisión de los resultados
c. La comprensión demostrada en la justificación de resultados y
pasos intermedios.
d. El cumplimiento del plazo previsto para su entrega.
Creamos el programa:
Se limpia el registro acumulador (se lo vuelve 0 por las dudas de que tenga contenido):
Salta a la posición de memoria 688F si está apagado el bit de zero, para repetir la operación:
Salta a la posición de memoria 688F si está apagado el bit de zero, para repetir la operación:
DIRECCIÓN VALOR
3768 70
3769 90
376A D7
376B FF
3770 BC
3771 9A
3772 31
3773 00
377A 9
Cargando instrucciones:
Ejecutando el programa:
DIRECCIÓN VALOR
3768 05
3769 00
376A 0A
376B 00
376C 0F
376D 00
1500 3
2000 0F
Cargamos el código:
Nos posicionamos donde comienza el código, movemos al registro contador la cantidad de números
(para repetir el bucle esa cantidad de veces), movemos el registro de índice la posición del primer
numero, y al registro contador el valor del primer numero. Lo comparamos:
En caso de ser mayor saltamos a la posición 6900 en caso de ser menor el numero comparado con el
registro AX (PARA NO PISARLO EN LA POSICION 6892). Luego salta a 6900 porque es mayor, suma al
registro índice para seguir el bucle y resta al registro contador:
Se le vuelve a sumar 2 al registro de índice para obtener el siguiente número, se le resta al registro
contador para ir decrementando el bucle y se vuelve a comprar con el nuevo número:
Con la última instrucción anterior JNZ intenta repetir el bucle si CL es distinto de 0, como es igual a 0
sigue y guarda en la posición de memoria 2000 el último numero obtenido, y finaliza el programa:
DIRECCIÓN VALOR
3768 03
3769 D4
376A 00
3057 44
3058 00
3059 FF
305A 00
305B 17
1500 17
1501 02
1600 6E
1601 69
Codificando:
DIRECCIÓN VALOR
3768 33 33
3769 38 39
376A 39 30
3057 2E 2E
3058 37 30
3767 XX 30
Cargando código:
Ejecutando el programa:
DIRECCIÓN VALOR
3768 1200
376A 2222
376C 500
Codificamos:
DIRECCIÓN VALOR
3768 02
3769 48
376A 4F
376B 4C
376C 41
376D 03
1500 04
Codificando:
Ejecutando código: