Ensamblador




Cuestionario de Preguntas:

Tarea 1: Realizar la siguiente conversión:
	1. (3204)5 -> (    )3
	
Tarea 2: Realizar la siguiente operaciones:
	1. 10110111 * 10101
	2. 1000111101 / 1010
	3. AB4736F +/- 7419861
	
Tarea 3: Realizar la siguiente operaciones:
	1. AB3B7 * 49
	2. 6F3B41 / B7
	3. +17-20  En Signo y magnitud y complemento a 1 (a 6 dígitos)
	4. -17-20  En Signo y magnitud y complemento a 1 (a 6 dígitos)
	
Lista de ejercicios 1


Lista de ejercicios 2

Tarea 4:Investigar las abreviaciones utilzadas para el registro banderas


Antología:

Portafolio Presentación
Portafolio Electrónico
Conversión de base (b) a base (c) Carlos Pes
Así funciona el sistema numérico binario
Los números y las operaciones aritméticas
Wikipedia: Sistema hexadecimal
Lenguaje Ensamblador
Lenguaje Ensamblador Básico
Lenguaje Ensamblador
Lenguaje Ensamblador para PC
Norton Guide Collection, Assembler
TASM 2.x / MASM 6.x Assembly Language - Norton Guide
Google Libros: Lenguaje ensamblador y programación para IBM PC y compatibles
Google Libros: Ejercicios de ensamblador para la arquitectura x86-32


Material Visual:

Sistemas de Numeración
Sistemas de Numeración (2a. Parte)
Punto Flotante
Arquitectura
Conjunto de Instrucciones
Instrucciones de Rotación y Corrimiento
Interrupciones
Macroensamblador
Manejo de Vídeo y Teclado
Manejo de Disco


Notas:

Notas de Ensamblador
Macroensamblador
Interrupciones
Manejo Disco


Programas de Ejemplo:

DOS Box
Compara 2 números
Obtiene el valor absoluto
Lee 5 caracteres
Lee una cadena y la escribe
Lee una cadena y la escribe con uso de procedimientos
Macroensamblador
Hola mundo
Lee una cadena y la escribe en pantalla
Busca la cadena "aeiou" en una cadena
Escribe una cadena en una posición
Invierte una cadena
Escribe un '*', moviendo las flecha arriba, sale con <ESC>
Escribe la cadena Hola Mundo
Muestra una cadena
Código ASCII


Manual de Prácticas de Laboratorio:

Práctica 1

  1. Realizar un programa que lea una cadena.
  2. Invertir la cadena dada.
  3. Contar cuantos carácteres tiene.

Práctica 2

  1. Realizar un programa que lea como datos de entrada: Un número, una base origen o destino.
  2. Se deben implementar los algoritmos vistos en clase.

Práctica 3

Dentro del DEBUG realizar:
  1. Con el comando A introducir:
    	MOV AX, 1234
    	MOV BL, 23
    	DIV BL
    	NOP
      
  2. Trazar el conjunto de instrucciones con el comando T.
  3. Si el comando DIV realiza la división de dos números, contestar:
    ¿Cuál es el dividendo?
    ¿Cuál es el divisor?
    ¿Dónde quedaron los resultados (cociente y residuo)?
  4. Entregar por escrito el paso 3 con el nombre de los integrantes.

Práctica 4

Dentro del DEBUG realizar:
  1. Con el comando A introducir:
    	MOV AX, 0023
    	MOV CL, 01
    	SHL AX, CL
    	SHL AX, CL
    	SHL AX, CL
    	SHL AX, CL
    	MOV BX, 0023
    	SHR BX, CL
    	SHR BX, CL
    	SHR BX, CL
    	SHR BX, CL
            NOP
      
  2. Trazar el conjunto de instrucciones con el comando T.
  3. A nivel de bits analizar que hacen las instrucciones SHL y SHR (Revisando AX y BX antes y después de la ejecución de las instrucciones).
  4. Contestar:
    ¿Qué hacen las instrucciones?
    ¿Cómo quedaron los resultados en los registros AX y BX?
  5. Entregar por escrito el paso 4 con el nombre de los integrantes.

Práctica 5

Dentro del DEBUG realizar:
  1. Con el comando A introducir:
    	LEA SI,[0200]
    	LEA DI,[0220]
    	MOV CX,0010
    	MOV AH,[SI]
    	MOV [DI],AH
    	INC SI
    	INC DI
    	LOOP 010B
    	NOP
      
  2. Introducir con el comando E la cadena "Hola mundo", en la dirección 200.
  3. Revisar con el comando D qué datos tiene la memoria en la dirección 200 y 220.
  4. Trazar el conjunto de instrucciones con el comando T.
  5. Revisar la memoria con el comando D, comparando la dirección 200 con la 220.
  6. Contestar:
    ¿Qué hace el programa?
  7. Entregar por escrito el paso 6 con el nombre de los integrantes.

Práctica 6

Dentro del DEBUG realizar:
  1. Realizar un programa que tome 2 datos de un byte de la memoria.
  2. Sumarlo, restarlos, multiplicarlos y dividirlos.
  3. Guardar cada resultado en la memoria.

Práctica 7

Dentro del DEBUG realizar:
  1. Realizar un programa que tome 3 datos de un byte de la memoria.
  2. Ordenarlos de menor a mayor.
  3. Guardar dichos datos en memoria.

Práctica 8

Dentro del DEBUG realizar:
  1. Tomar de la dirección 200 el número de datos.
  2. Programar el algortimo de burbuja considerar la cantidad de datos a ordenar, el dato tomado de la dirección 200.
  3. Considerar que los datos están en la dirección 300.
  4. Guardar los datos ordenados en la dirección 350.

Práctica 9

En el laboratorio realizar la siguiente práctica:
  1. El trabajo se realizará bajo DEBUG.
  2. Obtener un dato de la dirección 200, ese valor se considera como n.
  3. Realizar la sumatoria de los primeros n númetos.
            Ejemplo:
    	 * Si n=6 entonces obtener suma=1+2+3+4+5+6=15 (en hexadecimal)
    
  4. Realizar el trazado de este código

Práctica 10

  1. El trabajo se realizará bajo DEBUG.
  2. Introducir una cadena de carácteres, finalizando la lectura hasta un punto (código ASCII: 2E).
  3. Después de la lectura mandar a imprimir la cadena de manera inversa.
    	Ejemplo:
    	 * Cadena de Entrada: Hola mundo.
    	 * Cadena de Salida:  .odnum aloH
        
  4. Realizar el trazado del código.

Práctica 11

  1. El trabajo se realizará bajo DEBUG.
  2. Introducir una cadena de carácteres, la cual contiene espacios, finalizando la lectura hasta un punto (código ASCII: 2E).
  3. Después de la lectura mandar a imprimir la cadena en donde cada palabra se muestra en una línea.
     
    	Ejemplo:
             * Cadena de Entrada: Hola a todo el mundo.
    	 * Cadena de Salida:  
    		Hola
    		a
    		todo
    		el
    		mundo.
            
  4. Realizar el trazado del código.

Práctica 12

  1. El trabajo se realizará bajo DEBUG.
  2. Introducir una cadena de carácteres, la cual contiene espacios, finalizando la lectura hasta un punto (código ASCII: 2E).
  3. Después de la lectura imprimir la siguiente letra del alfabeto.
     
    	Ejemplo:
             * Cadena de Entrada: Hola a todo el mundo.
    	 * Cadena de Salida:  
    		Ipmb b upep fm nvoep
            
  4. Realizar el trazado del código.

Práctica 13

En el laboratorio realizar la siguiente práctica:
  1. El trabajo se realizará bajo DEBUG.
  2. Realizar la codificación del algoritmo que lee números hexadecimales (Empaqueta).
  3. Guardar el número leído en la dirección de memoria 200H.
  4. Realizar el trazado del código.

Práctica 14

En el laboratorio realizar la siguiente práctica:
  1. El trabajo se realizará bajo DEBUG.
  2. Realizar la codificación del algoritmo que escribe números hexadecimales (Desempaqueta).
  3. Tomar el número a escribir de la dirección de memoria 200H
  4. Realizar el trazado del código.

Práctica 15

En el laboratorio realizar la siguiente práctica:
  1. El trabajo se realizará bajo MacroEnsamblador.
  2. Leer una cadena desde teclado e invertirla (Práctica 10).

Práctica 16

En el laboratorio realizar la siguiente práctica:
  1. El trabajo se realizará bajo MacroEnsamblador.
  2. Leer una cadena desde teclado y mostrar cada palabra en un reglón (Práctica 11).

Práctica 17

  1. El trabajo se realizará bajo MacroEnsamblador.
  2. Introducir una cadena de carácteres, la cual contiene espacios, finalizando la lectura hasta un punto (código ASCII: 2E).
  3. Después de la lectura imprimir la siguiente letra del alfabeto (práctica 12).

Práctica 18

  1. El trabajo se realizará bajo MacroEnsamblador.
  2. Leer dos números hexadecimales de hasta 4 dígitos (usar empaqueta).
  3. Sumar ambos números.
  4. Mostrar el resultado (usar desempaqueta).
NOTA: El trabajo del laboratorio puede ser realizado en equipo.