Nombre de la materia
Lenguaje Ensamblador
Nombre de la Licenciatura
Ingeniería en Sistemas
Computacionales
Nombre del alumno
Mario Alberto Gallo Meneses
Matrícula
010214606
Nombre de la Tarea
Conceptos Bá sicos del Lenguaje
Ensamblador
Unidad #2
Programació n en ensamblador
Nombre del Profesor
Viridiana Berenice Aceves Santillá n
Fecha
20/07/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.
Introducción:
El lenguaje ensamblador es un lenguaje de programación de bajo nivel para
microprocesadores y microcontroladores. Implementa una representación simbólica del
códigos de máquina binario y otras constantes necesarias para programar una
arquitectura dada de la CPU y consiste en la representación más directa del código
máquina específico para cada arquitectura legible por un programador.
El ensamblador realiza una traducción más o menos isomorfa desde las sentencias
mnemónicas a las instrucciones y datos de máquina.
Actualmente se utiliza cuando se requiere la manipulación directa del hardware, alto
rendimiento, o un uso de recursos controlado y reducido, controladores de dispositivo y
en el desarrollo de sistemas operativos
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).
2
Unidad #2: Programación en ensamblador
Lenguaje ensamblador
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:
Decimal Binario Octal Hexadecimal
137 10001001 211 89
213 1101 0101 325 D5
187 10111011 273 BB
250 11111010 372 FA
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
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
3
Unidad #2: Programación en ensamblador
Lenguaje ensamblador
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?
1) 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.
2) 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.
3) 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.
4
Unidad #2: Programación en ensamblador
Lenguaje ensamblador
4) Modelo: Este segmento representa todo el espacio de direcciones de la memoria,
por lo cual siempre almacena una extensa cantidad de datos en ella.
5) 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.
6) 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.
7) 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
5
Unidad #2: Programación en ensamblador
Lenguaje ensamblador
TEXTO DB LF, LF, CR, 'HOLA MUNDO!$'; Texto
.CODE;Codigo de programa
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
6
Unidad #2: Programación en ensamblador
Lenguaje ensamblador
MOV DS, AX
inicio: ; etiqueta
;****JMP salto incondicional
MOV AH, Quince ;AH=15
JMP parte2; Salto parte2
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.
7
Unidad #2: Programación en ensamblador
Lenguaje ensamblador
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:
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
8
Unidad #2: Programación en ensamblador
Lenguaje ensamblador
Programa 2:
Forma de evaluación:
Criterio Valor Calificación de alumno
Presentación (Uso de formato 10%
utel, redacción y ortografía,
bibliografía soliciadada)
Ejercicio 1 20%
30%
Ejercicio 2
20%
Ejercicio 3
20%
Ejercicio 4
Total 100%
Conclusion:
9
Unidad #2: Programación en ensamblador
Lenguaje ensamblador
En conclusión con este trabajo, podemos decir que el lenguaje ensamblador es más
que un tipo de lenguaje de bajo nivel, en el cual es empleado para crear programas
informáticos.
La importancia de este es que pueden hacer cualquier tipo de programas que en otros
lenguajes más avanzados no y mejor aún este no ocupa tanta memoria.
1
0