Sei sulla pagina 1di 6

Nombre de la materia

Lenguaje ensamblador
Nombre de la Licenciatura
Ingeniera en sistemas computacionales

Nombre del alumno

Matrcula

Nombre de la Tarea
Ejercicios de aplicacin: Programacin en
ensamblador
Unidad # 2
Programacin en ensamblador

Nombre del Tutor

Fecha
Unidad 2. Programacin en ensamblador
Lenguaje Ensamblador, Tarea 2

PROGRAMACIN EN ENSAMBLADOR
Introduccin

El nico lenguaje que entienden los microcontroladores es el cdigo mquina formado por ceros y unos
del sistema binario.

El lenguaje ensamblador expresa las instrucciones de una forma ms natural al hombre a la vez que
muy cercana al microcontrolador, ya que cada una de esas instrucciones se corresponde con otra en
cdigo mquina.

El lenguaje ensamblador trabaja con nemnicos, que son grupos de caracteres alfanumricos que
simbolizan las rdenes o tareas a realizar.

La traduccin de los nemnicos a cdigo mquina entendible por el microcontrolador la lleva a cabo un
programa ensamblador.

Desarrollo de la actividad

Ejercicios sobre sistemas numricos

I) Realice las conversiones para llenar la tabla en dnde en cada rengln hay una sola cantidad representada en el
sistema que indica la cabecera de la columna:

Decimal Binario Octal Hexadecimal


121 1111001 171 79
13 1101 1101 15 D
183 10110111 267 B7
251 11111011 373 FB

2
Unidad 2. Programacin en ensamblador
Lenguaje Ensamblador, Tarea 2

II) Realice las siguientes operaciones aritmticas en binario [Es decir, que tiene que hacer la conversin antes de la
operacin]:
Multiplicacin Resta Suma
(N+20) x (N)= 11110 x 1010 (6N+13) - (17)= 10011 (13) + (2N+10 )= 1101 +
= 110010000 10001 = 10 10100 = 10111
Multiplicacin Resta Suma
(-13N)*(2N-11)= (10011)*(-1) (-10(N-10)) (150)= 1010 (19)+(N-100)= 10011 +
= 10011 10010110 = - 10001100 1011010 = 1101101

IV) Realice las Siguientes conversiones:

8421 BCD 2421 Gray


1101 1001 0001 0011 1001 0001 0011 1111 1100 1110
0010 1001 1000 0010 1001 1000 0010 1111 1110 0011 1111
0111 0101 0111 0101 0111 1011 0110 1110
1000 0011 1000 1000 0011 1000 0100 0011 1110 1011 1101

A) Segmentos de Cdigo

I) Describa con sus propias palabras lo que se codifica en cada uno de los siguientes segmentos de
programa:
1) Cdigo: es el que contiene las instrucciones que sern ejecutadas, la primera instruccin
ejecutable est en el inicio del segmento.
2) Pila: contiene datos y direcciones necesarias para guardar temporalmente o para uso de
subrutinas.
3) Datos: contiene datos constantes y reas de trabajo definidos por el programa
4) Modelo: Define el tipo de memoria a utilizar

II) Escoja 2 de los ejemplos de la clase e indique en cada uno de ellos las secciones de cdigo que
identifica y las instrucciones que reconoce en ellas.

.MODEL SMALL; Modelo pequeo

3
Unidad 2. Programacin en ensamblador
Lenguaje Ensamblador, Tarea 2

.STACK 100h; Segmento de pila 256 posiciones


CR EQU 13; Retorno de carro
LF EQU 10; nueva lnea
.DATA; Segmento de datos
TEXTO DB LF, LF, CR,'Hola Mundo!$';Texto
.CODE ;Cdigo del programa
MOV AX, @DATA ;Cargar la direccin del segmento de datos
MOV DS,AX ;Cargar la direccin en el segmento de datos
LEA DX,TEXTO ;Carga el texto
MOV AH,9 ;imprimir en pantalla
INT 21h ;Llama al sistema operativo
MOV AH,4ch ;Funcin 4ch
INT 21h
END ;Fin del programa

.MODEL SMALL ;Modelo pequeo


.STACK 100h ;Segmento de pila 256 posiciones
;*** Algunas constantes ************
Quince EQU 15
Cero EQU 0
.DATA ;Segmento de datos
; *** Algunas variables ************
Arreglo1 DB 10,20,30,40 ;Texto
Cadena DB 'UTEL$'
VAR DB 7
.CODE ; Cdigo del programa
; **********************************
; Operaciones de movimiento de datos
; ***********************************
; *** Siempre iniciar el segmento de datos
MOV AX, @DATA ; Carga apuntador del
MOV DS, AX ; segmento de datos en AX
; *****************************************
; Movimiento inmediato
MOV AH,0FFH ; AH=FFh
; Movimiento de memoria a registro
MOV AL, Quince ;AL=0Fh
; movimiento de registro a registro 8 bits
MOV BH, AL ; BH=0Fh
; movimiento de registro a registro 16 bits
MOV BX, AX ; BX=FF0Fh
; movimiento de una variable a un registro
MOV AH, VAR ; AH=7h
; movimiento de un registro a una variable

4
Unidad 2. Programacin en ensamblador
Lenguaje Ensamblador, Tarea 2

MOV VAR, BH ; VAR=FFh


; movimiento de un arreglo a registro
; de la posicin 2 del arreglo con valor
; decimal 30
MOV AH, ARREGLO1[2] ; AH=1Eh (30 decimal)

; Movimiento de registro a arreglo


; en la tercer posicin
MOV ARREGLO1[3], BH ; vea la modificacin del arreglo
MOV AH,4ch ;Funcin 4ch (finalizar)
INT 21h

END

B) Compilacin
I) Con la ayuda de un screencast1 (hay muchos de licencia opensource o gratuitos) grbese
emulando los ejemplos de la clase y verificando los resultados en los registros pertinentes
relacionndolos con el tipo de instruccin (lgica, aritmtica, movimiento de datos, control). Enve
al finalizar el o los archivos o comprtalos en una ubicacin virtual.

http://youtu.be/7J1qGanFD9U?hd=1

Conclusin

La programacin en lenguaje ensamblador es til en algunas reas, especialmente en lo que es proteccin y


desproteccin de aplicaciones y en la construccin particular de drivers optimisados, tambien trabaja
directamente con el microprocesador de una mquina, es decir, programamos un microprocesador con este
lenguaje,

Bibliografa

Programacin en ensamblador (Jim nz, 2014).


Microprocesadores Intel (Bry, B. B., 2006).
Sistemas de numeracin (Gonz lz, 2004)
Soluciones de problemas -Tema 1 (Jim nz, n.d)

1
Screencast es un programa de cmputo que permite capturar una zona de la pantalla o todo el escritorio en algn formato de
video, con el fin de compartir un proceso realizado. Ejemplos de estos programas son: Hypercam2, Camstudio, Freeseer, etc.

5
Unidad 2. Programacin en ensamblador
Lenguaje Ensamblador, Tarea 2

Potrebbero piacerti anche