Está en la página 1de 9

Nombre de la materia

Lenguaje Ensamblador.

Nombre de la Licenciatura
Ingeniería en sistemas
computacionales

Nombre del alumno


Rodrigo Sandoval Durá n

Matrícula
010586004

Nombre de la Tarea
Actividades semana 2

Unidad 2
Programació n en Ensamblador

Nombre del Profesor


Jaime Humberto Pech Carmona

Fecha
17 de marzo de 2020
Unidad 2: Programación en Ensamblador
Lenguaje Ensamblador

ACTIVIDAD 2

“Los verdaderos programadores pueden escribir código ensamblador en cualquier


lenguaje”. Larry Wall

Objetivos:

 Identificar el proceso de compilación de un programa en lenguaje ensamblador.


 Distinguir los diferentes tipos de operaciones a realizar en un programa.
 Utilizar apropiadamente el software de compilación.

2
Unidad 2: Programación en Ensamblador
Lenguaje Ensamblador

Instrucciones:

Descargar la actividad en Word y responder directamente en el documento y subir, recuerda que debes
de aumentar las fuentes de información consultadas aparte de las recomendadas.

 Ejercicio 1. Apoyándote en los siguientes recursos de la semana 2 realiza las conversiones


siguientes:

  Lectura
1) Aritmética y representación de la información en el computador. (n.d) (Capítulo 4).
2) Conceptos básicos del lenguaje ensamblador (Jiménez, 2014).

Realice las conversiones para llenar la tabla en dónde en cada renglón hay una sola cantidad
representada en el sistema que indica la cabecera de la columna:. Nota: Pega una foto o imagen de las
conversiones realizadas a mano

Procedimiento paso a paso de la conversión Decimal a Binario.


Paso 1: Divide (137) 10 sucesivamente por 2 hasta que el cociente sea 0: 137/2 = 68, el resto es 1 68/2 =
34, el resto es 0 34/2 = 17, el resto es 0 17/2 = 8, resto es 1 8/2 = 4, el resto es 0 4/2 = 2, el resto es 0 2/2
= 1, el resto es 0 1/2 = 0, resto es 1

3
Unidad 2: Programación en Ensamblador
Lenguaje Ensamblador

Paso 2: Lea desde la parte inferior (MSB) hasta la parte superior (LSB) como 10001001. Este es el
equivalente binario del número decimal 137

Procedimiento paso a paso de la conversión Decimal a Octal.


Paso 1: Divide (137) 10 sucesivamente entre 8 hasta que el cociente sea 0: 137/8 = 17, resto es 1 17/8 =
2, resto es 1 2/8 = 0, el resto es 2

Paso 2: Lea desde la parte inferior (MSB) hasta la parte superior (LSB) como 211. Este es el equivalente
octal del número decimal 137

Procedimiento paso a paso de la conversión Decimal a Hexadecimal.


Paso 1: Divida (137) 10 sucesivamente por 16 hasta que el cociente sea 0:
137/16 = 8, resto es 9
8/16 = 0, el resto es 8
Paso 2: Lea desde la parte inferior (MSB) hasta la parte superior (LSB) como 89. Este es el equivalente
hexadecimal del número decimal 137

 Ejercicio 2. Apoyándote en los siguientes recursos de la semana 2 realiza las siguientes


descripciones:

  Lectura
1) Conceptos básicos del lenguaje ensamblador (Jiménez, 2014).
2) Aritmética y representación de la información en el computador. (n.d) (Capítulo 4)
3) Programación en ensamblador conceptos básicos (Rincón, L., n.d)

Describa con sus propias palabras lo que significa cada uno de los siguientes términos, y ¿cuál es su
función en un programa en lenguaje ensamblador?

Código: En este segmento son ejecutadas las órdenes o instrucciones de la máquina que son ejecutadas
en el programa, en pocas palabras, al inicio del programa este segmento se encarga de darle las
primeras órdenes al programa, aquí es el principio de todo.
Pila: Por lo que hemos aprendido y estudiado, es preciso decir que en este segmento se codifican las
llamadas a subrutina y archivos temporales de programa, el registro de este segmento es el que se
encarga de direccionar el segmento de la pila.

4
Unidad 2: Programación en Ensamblador
Lenguaje Ensamblador

Datos: Este segmento es una de las partes más importantes del programa, aquí los datos más renuentes
del programa se codifican, además de que su flujo de información es mayor, también se almacena
información y además se mueve de forma constante.
Modelo: Este segmento representa todo el espacio de direcciones de la memoria, por lo cual siempre
almacena una extensa cantidad de datos en ella.
Directiva: Son comandos excritos en el código fuente para realizar un control directo o ahorrar tiempo a la
hora de ensamblar. El resultado de incorporar directivas se puede ver en el fihero *.LST, después de
ensamblar el programa.
Etiqueta: Son nombres que sirven para referirse a otras lineas de instrucciones del programa, esto resulta
muy útil ya que muchas veces es necesario realizar saltos pueden ser condicionales o incondicionales, a
otra parte del programa.
Operando: Estos se representan por símbolos o constantes y se separan por comas.

 Ejercicio 3. Apoyándote en los siguientes recursos de la semana 2 realiza el siguiente


ejercicio:

  Lectura
1) Programación en ensamblador (Jiménez, 2014).

Escoja 2 de los ejemplos del archivo Programación en ensamblador (Jiménez, 2014) que se encuentra
como recurso de la semana 2. Indique con sus palabras las secciones de código que identifica y las
instrucciones que reconoce en ellos.

.STACK[size]: Define al segmento de pila de la longitud especificada.


.CODE[name]: Define el segmento de código.
.DATA: Define un segmento de datos NEAR con valores iniciales.

Ejemplo 1.
.MODEL SMALL;Modelo pequeño
.STACK 100H;'Segmento de pila 256 posiciones'
CR EQU 13; Rtorno de carro
LF EQU 10; Nueva linea
.DATA; Segmento de datos
TEXTO DB LF, LF, CR, 'HOLA MUNDO!$'; Texto
.CODE;Codigo de programa

5
Unidad 2: Programación en Ensamblador
Lenguaje Ensamblador

MOV AX,@DATA; Cargar la direccion del segmento de datos


MOV DS,AX; Cargar la direccion del segmento de datos
LEA DX,TEXTO;Cargar Texto
MOV AH, 9;Imprimir en pantalla
INT 21h; Llama al sistema operativo
MOV AH, 4ch;Funcion 4ch
INT 21h
END ;Fin del programa

Ejemplo 2:

MOV: Esta instrucción mueve los datos de una localidad a otra y trabaja para 8, 16 t 32 bits.

.MODEL SMALL ; Modelo pequeño


.STACK 100H ; Segmento de pila 256 posiciones
;****Algunas constantes****
Quince EQU 15
Cero EQU 0

.DATA ; Segmento de datos


;****Algunas Variables****************
Cadena DB 'UTEL$'
.CODE ;Código de programa
;********************************
;Operaciones de control de programa
;

;***Siempre iniciar segmento de datos

MOV AX,@DATA
MOV DS, AX
inicio: ; etiqueta
;****JMP salto incondicional
MOV AH, Quince ;AH=15
JMP parte2; Salto parte2

6
Unidad 2: Programación en Ensamblador
Lenguaje Ensamblador

MOV AL, Cero; AL=0 Nunca se ejecutará


parte2: ; salta aquí

;***LOOP ciclo de repetición


MOV CX,10 ;en CX se establece la cantidad
; de veces que se repetirá el bloque
lazo: ; inicia el bloque de instrucciones
PUSH CX ; Estas instrucciones
MOV AX, CX ;se repiten
LOOP lazo ; aquí salta al inicio del bloque

;En la pila y AX se puede verificar como CX se va decrementando


;cada vez ue termina un ciclo.
MOV AL,10 ; AL=10
MOV BL,5 ; BL=5
CMP AL, BL ; Compara AL con BL
JA mayor ; Salta si AL>BL
MOV CL,0 ; no se ejecuta
mayor:
MOV AH,5 ;AH=10
CMP AH, AL; compara AH con AL
JE iguales ; SALTA SI AH=AL
MOV CL,0 ; Esto no se ejecuta
iguales:
JMP inicio; Este programa nunca termina
; En algun punto se acabará el espacio
; en la pila.
MOV AH,4ch ; Función 4ch
INT 21h
END

 Ejercicio 4. Apoyándote en los siguientes recursos de la semana 2 y en los videos, realiza la


siguiente actividad:

7
Unidad 2: Programación en Ensamblador
Lenguaje Ensamblador

  Lectura
1) Programación en ensamblador (Jiménez, 2014).

Con la ayuda de un screencast (hay muchos de licencia opensource o gratuitos) grábese emulando 2 de
los ejemplos del archivo Programación en ensamblador (Jiménez, 2014) que se encuentra como recurso
de la semana 2 y verificando los resultados en los registros pertinentes relacionándolos con el tipo de
instrucción (lógica, aritmética, movimiento de datos, control). Envíe al finalizar el o los archivos o
compártalos en una ubicación virtual

Programa 1

Programa 2:

8
Unidad 2: Programación en Ensamblador
Lenguaje Ensamblador

Fuentes de información
-Mark Treylack (6 ene 2015) ¿Cómo convertir de Decimal a Binario, Octal y Exadecimal y viceversa.
Obtenido de Youtube:
https://www.youtube.com/watch?v=IfGWtWo5dK0
-kudzu (6 ene 2015) Aritmética binaria. Obtenido de Youtube:
https://www.youtube.com/watch?v=j7ajMe-VVW4
-facomsys (29 mar 2010) Ensamblador- Ciclo Loop. Obtenido de Youtube:
https://www.youtube.com/watch?v=HCChOn5gL8E

También podría gustarte