Sunteți pe pagina 1din 8

NIVERSIDAD GABRIEL RENE MORENO

FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACIÓN Y


TELECOMUNICACIONES
CARRERA DE INGENIERIA INFORMATICA-SISTEMAS-REDES

NORMAS Y HERRAMIENTAS PARA LA MATERIA INF221-


PROGRAMACIÓN ENSAMBLADOR

SEM/AÑO 2/2018

IDENTIFICACIÓN

CARRERAS :187-3 INGENIERIA INFORMATICA,


187-4 INGENIERIA EN SISTEMAS,
187-5 INGENIERIA EN REDES y
TELECOMUNICACIONES
GRADO ACADEMICO : LICENCIATURA
SIGLA DE LA MATERIA : INF221 GRUPOS: “SA” “SB” y
“SC”
NOMBRE DE LA MATERIA : PROGRAMACIÓN ENSAMBLADOR
PREREQUISITO : INF-211 ARQUITECTURA DE
COMPUTADORAS
SEMESTRE DE LA MATERIA : CUARTO
NUMERO DE CREDITOS :5
NUMERO DE HORAS SEMANALES : 4 HT + 2 HP
SEM/AÑO : 2/2018
DOCENTE : Corrado Vallet
REVISADO : AGOSTO 2018

1.-) PÁGINA “WEB” DE LA MATERIA:


(www.virtual.uagrm.edu.bo/pregrado/)
Para el desarrollo de la materia se utilizará como herramienta de apoyo para el
docente y los estudiantes el “MOODLE” de la UAGRM VIRTUAL-
Pregrado.
a) www.virtual.uagrm.edu.bo/pregado/
utilizando el perfil del estudiante de la herramienta MOODLE de la
UAGRM VIRTUAL-Pregrado (www.virtual.uagrm.edu.bo/pregrado/)
seleccionando posteriormente la materia grupo a la cual se encuentre
inscrito ej: [2-2018] INF221 – SC , el estudiante encontrará información
y material relacionado con la materia como ser: normas de la
asignatura; cronograma de clases; rol de exámenes; programa analítico
de la asignatura; enunciados de las prácticas a realizar; materiales de
lectura; artículos; enlaces WEB con direcciones de material de
programación en ensamblador; bibliografía, etc.

2.-) PRE-REQUISITOS DEL CURSO:

De acuerdo al plan de estudio el estudiante debe tener vencida la materia:


INF211 Arquitectura de Computadoras.

El estudiante debe poseer conocimiento del lenguaje de programación “C”


(debe poder crear, compilar y correr programas en lenguaje “C”), ya que
durante el curso se mostrará como el código “C” se corresponde con el código
“ensamblador”.

3.-) REQUERIMIENTOS DE LABORATORIO (HERRAMIENTAS):

Sitios WEB de interés a fin de bajar e instalar diferentes ensambladores,


compiladores y depuradores necesarios para el curso de programación
ensamblador “INF221” correspondientes a los procesadores Intel x86-32.

a.-) 1) Ensamblador: “NASM” The Netwide Assembler

El ensamblador que se usará en el curso para escribir programas en


ensamblador de 32-bits es el Netwide Assembler o NASM (versión v
2.13.03), un ensamblador libre para la plataforma de la familia Intel
80x86. Puede ser usado para escribir programas tanto de 16, 32 y 64-
bits. Tiene la ventaja que puede trabajar para sistemas operativos
Windows o Linux.
Descargar e instalar a partir de la siguiente dirección:
http://nasm.sourceforge.net/

2) Manual del “NASM”


Descargar a partir de:
http://nasm.us/doc/

b.-) Compilador: “GCC” de “MinGW”

MinGW (Minimalist GNU for Windows) es una implementación de los


compiladores gcc para el sistema operativo Windows. Se usará
durante el desarrollo del curso el compilador gcc del lenguaje “C”
(versión v 6.3.0), donde la sigla gcc significa: GNU C compiler,
conjunto de compiladores (C, C++,….) creados por el proyecto GNU
para la plataforma Windows.

Descargar a partir de:


www.mingw.org

c.-) Debugger: “OllyDbg”


OllyDbg es un depurador (debugger) de código ensamblador de 32 bits
para sistemas operativos Microsoft Windows.
Se usara el depurador (debugger) “OllyDbg” (versión v 2.01) a fin de
analizar el funcionamiento de los programas escritos en ensamblador en
los procesadores Intel durante su ejecución.

Descargar a partir de:


www.ollydbg.de

d.-) Editor “Notepad++”

Si bien el estudiante tiene la libertad de usar cualquier editor de su


preferencia, es recomendable el uso del editor “Notepad++ (versión v
7.5.8) (software libre).

Descargar a partir de:


www.notepad-plus-plus.org

HERRAMIENTAS OPCIONALES

a.-) VISUAL STUDIO COMMUNITY Entorno de Desarrollo Integrado


(IDE: Integrated Development Environment).

Se puede descargar libremente a partir de la siguiente dirección de


Microsoft (versión v 15.7.6).
www.visualstudio.com

b.-) Debugger: “IDA” (Opcional)

Excelente desensamblador y depurador (debugger) para diferentes


procesadores y sistemas operativos:
Se puede descargar la versión de evaluación limitada: IDA Demo 7.0
para el sistema operativo MS Windows y procesadores Intel.
Descargar a partir de:
www.hex-rays.com

4.-) LIBROS DE TEXTO BÁSICOS DE LENGUAJE ENSAMBLADOR INTEL


80x86

a) LIBRO DE TEXTO:

1.-) Título: LENGUAJE ENSAMBLADOR PARA PC.


Autor: Paul A. Carter 18 de octubre de 2006
Página del autor: http://www.drpaulcarter.com
Se puede bajar libremente la traducción en español.

b) LIBROS ADICIONALES:

1.-) Título: INTRODUCTION TO ASSEMBLY LANGUAGE


PROGRAMMING FOR PENTIUM AND RISC PROCESSORS.
Autor: Sivarama P. Dandamudi
Segunda Edición
Editorial: Springer Science+Business Media, Inc., 2005

2.-) Título: ASSEMBLY LANGUAGE FOR X86 PROCESSORS.


Autor: Kip Irvine
Séptima Edición
Editorial: Prentice-Hall (Pearson Education), Marzo 2015

3.-) Título: THE INTEL MICROPROCESSORS.


8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, Pentium Pro
Processor, Pentium II, Pentium III; Pentium 4, and Core2 with 64-Bit
Extensions
Architecture, Programming and Interfacing
Autor: Barry B. Bray
Octava Edición
Editorial: Pearson Prentice Hall

4.-) Título: Modern X86 Asembly LanguageProgramming.


32-bit, 64-bit, SSE, and AVX
Autor: Daniel Kusswurm
Primera Edición
Editorial: Apres, Diciembre 2014

The Intel® 64 and IA-32 Architectures Software Developer’s Manual,


Volume 1: Basic Architecture

5.-) http://www.intel.com/content/www/us/en/processors/architectures-
software-developer-manuals.html/

The Intel® 64 and IA-32 Architectures Software


Developer’s Manual, Volume 1: Basic Architecture

5.-) OTROS SITIOS WEB DE INTERES.

Existen numerosos sitios en Internet donde se puede encontrar material


relacionado con los procesadores Intel y el lenguaje ensamblador de los
procesadores Intel 80x86. Recomendable visitar por ejemplo:

Carnegie Mellon University


School of Computer Science
Curso: Introduction to Computer Systems.

http://www.cs.cmu.edu/~213/schedule.html

6.-) NORMAS DE LA MATERIA:

a.-) EVALUACION

El sistema de evaluación vigente tiene la siguiente escala y rango:

Prácticos 25%
Ex. Parciales 50%
Ex. Final 25%
________________________
Total 100%

Los prácticos se tomarán al inicio de las clases con una duración aproximada
de unos 15 (quince) minutos.
Se tomarán 2 (dos) exámenes parciales.
Se tomará 1 (un) solo examen final.

El Cronograma de Exámenes Parciales y Final en la página WEB de la


materia, estará publicado desde el primer día de clases.

Todos los exámenes parciales y el examen final se realizarán sin apuntes ni


calculadora.

Los exámenes parciales y el examen final consistirán en un examen teórico


(50% de la nota) y la realización de un programa individual en laboratorio
(50% de la nota)

Exposición del estudiante en clase sobre un tema relacionado al lenguaje


ensamblador.

Los exámenes parciales y el examen final se rendirán una sola vez. Tomar
nota de que no existirán por ningún motivo exámenes recuperatorios !!!.

Como es norma en la universidad, la escala de calificación es la siguiente:

Nota máxima de aprobación 100 puntos.


Nota mínima de aprobación 51 puntos.
Nota de reprobación entre 0 y 50 puntos.

b.-) PRESENTACIÓN DE LOS PROYECTOS

Para la presentación de las diferentes proyectos que se asignarán, los


estudiantes conformarán “grupos” Cada grupo estará constituido por
un máximo de 5 (cinco) estudiantes. En el futuro para todas las
prácticas que se asignarán, el estudiante “no” podrá cambiar de grupo
(formar por lo tanto al inicio los grupos con mucho cuidado!!).
Cada grupo hará entrega del reporte correspondiente a cada proyecto
en una carpeta o folder con las siguientes especificaciones:

1.-) Carátula.

a) Nombre de la universidad, facultad y carrera.


b) Sigla, grupo y nombre de la materia
c) Número y Nombre del proyecto.
d) Nombres y número de registro de todos los integrantes del grupo.
e) Nombre del docente.
f) Fecha de presentación.

2.-) Respuestas a las diferentes preguntas que se formularán.

3.-) Envío de los programas fuentes escritos en ensamblador a través del


correo electrónico.

Las evaluaciones de los proyectos tendrán un valor correspondiente al 20% de


la Nota Final.
La entrega de los proyectos deberá realizarse hasta las 07:30 horas o las
10:00 horas de acuerdo a los grupos en el aula de clases, en la fecha que se
indicará para el efecto. No se aceptarán proyectos pasada dicha hora!!.

c.-) CLASES DE LABORATORIO

Tratándose de una materia de programación la asistencia y realización de las


prácticas de laboratorio es fundamental y “obligatoria”. Las prácticas de
laboratorio asignadas se desarrollaran en forma “individual”.
Se evaluarán las prácticos de laboratorio (25%) mediante la realización
individual de los problemas de programación asignados a los estudiantes,
debiendo estos ser enviados por medio de MOODLE para su correspondiente
calificación.
El estudiante debe tener una asistencia mínima del 80% a las clases de
laboratorio.

d.-) HORARIOS DE CONSULTAS

Dirigirse a mi persona después de clases o en la Sala de Docentes de la


Facultad con fin de realizar consultas adicionales sobre cualquier tema o
dudas durante el desarrollo de la materia.

Lunes 08:30 – 10:00


Miércoles 08:30 – 10:00
Viernes 08:30 – 10:00

e.-) BIBLIOGRAFIA

BIBLIOGRAFIA BASICA
LENGUAJE ENSAMBLADOR PARA PC
Autor: Paul Carter
http://www.drpaulcarter.com/pcasm/

INTRODUCTION TO ASSEMBLY LANGUAGE PROGRAMMING FOR


PENTIUM AND RISC PROCESSORS.
Autor: Sivarama P. Dandamudi
Segunda Edición, Editorial: Springer Science+Business Media, Inc., 2005

THE INTEL MICROPROCESSORS.


8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, Pentium Pro
Processor, Pentium II, Pentium III; Pentium 4, and Core2 with 64-Bit
Extensions
Architecture, Programming and Interfacing
Autor: Barry B. Bray
Octava Edición, Editorial: Pearson Prentice Hall

Programación básica en Lenguaje ensamblador


http://www.learnassembler.com/

BIBLIOGRAFIA COMPLEMENTARIA

DETM09 Detmer, Richard, “Introduction to 80x86 Assembly Language and


Computer Architecture” , 2009

STAL13 Stallings William, “Computer Organization and Architecture Designing


for Performance”, Ninth Edition, Pearson Education, Inc. 2013.

BLUM05 Richard Blum, “Professional Assembly Language” (Programmer to


Programmer), Richard Blum, Wrox Press, 2005.

ABEL01 Abel Peter, IBM PC Assembly Language and Programming (5th


Edition), Peter Abel, Prentice Hall, 2001.

MART90 Martínez Tomás R., “Lenguajes Ensambladores”, Editorial Paraninfo,


S.A., Madrid (España) , 1990.

MURR87 Murray III William H. y Pappas Chris H., “80386/80286


Programación en Lenguaje Ensamblador”, McGraw - Hill de México, S. A.,
México, 1987.

BIBLIOGRAFIA ADICIONAL

HENN95 Henessy, J.L., Patterson D.A. “Organización y Diseño de


Computadores”, McGraw-Hill Interamericana de España, S.A. , España , 1995.
MANO94 Mano, Morris, “Arquitectura de Computadoras”, Tercera Edición,
Prentice-Hall Hispanoamericana, S.A. México, 1994.

MANO79 Mano, Morris, “Lógica Digital y Diseño de Computadoras” Editorial


Prentice-Hall Internacional, Colombia, 1979.

MANO91 Mano, Morris , “Ingeniería Computacional - Diseño del Hardware”


Prentice-Hall Hispanoamericana, S.A. México, 1991.

MANO98 Mano, Morris y Kime, Charles “Fundamentos de Diseño Lógico y


Computadoras” Primera Edición, Prentice-Hall Hispanoamericana, S.A. 1998.

TANE00 Tanenbaum Andrew, “Organización de Computadoras - Un Enfoque


Estructurado” Cuarta Edición, Prentice-Hall Hispanoamericana, S.A., México,
2000.

TOCC96 Tocci Ronald J., “Sistemas Digitales - Principios y Aplicaciones”,


Sexta Edición, Prentice Hall Hispanoamericana, S.A., México, 1996.

Santa Cruz, agosto 2018

corrado vallet
Docente INF221

S-ar putea să vă placă și