0% encontró este documento útil (1 voto)
177 vistas18 páginas

Importancia del Lenguaje Ensamblador

El documento describe los conceptos básicos del lenguaje ensamblador, incluyendo: 1) La importancia del lenguaje ensamblador radica en que permite programar directamente con el microprocesador y realizar tareas que otros lenguajes no pueden. 2) Los registros son áreas de almacenamiento temporal dentro del procesador que permiten acceder y guardar valores de forma rápida. 3) La memoria RAM se utiliza para almacenar instrucciones y datos temporales mientras el sistema está encendido.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (1 voto)
177 vistas18 páginas

Importancia del Lenguaje Ensamblador

El documento describe los conceptos básicos del lenguaje ensamblador, incluyendo: 1) La importancia del lenguaje ensamblador radica en que permite programar directamente con el microprocesador y realizar tareas que otros lenguajes no pueden. 2) Los registros son áreas de almacenamiento temporal dentro del procesador que permiten acceder y guardar valores de forma rápida. 3) La memoria RAM se utiliza para almacenar instrucciones y datos temporales mientras el sistema está encendido.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tecnológico Nacional de México

Campus Felipe Carrillo Puerto


Ingeniería en Sistemas Computacionales
SEMESTRE MARZO – JULIO 2021

Asignatura

LENGUAJE DE INTERFAZ

Tema

Tema 1 Introducción al lenguaje ensamblador

EVIDENCIA DE APRENDIZAJE

1.2 Reporte Escrito

Profesor

PALOMA GONGORA SABIDO

Alumno (s):

JESUS ALBERTO KU GONZALEZ

ISC-6A

Felipe Carrillo Puerto a 15 de Marzo de 2021.

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


1.1 Importancia de la programación en lenguaje ensamblador.
La importancia del lenguaje ensamblador radica principalmente que se trabaja
directamente con el microprocesador; por lo cual se debe de conocer el
funcionamiento interno de este, tiene la ventaja de que en él se puede realizar
cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden
realizar. Otro punto sería que los programas en ensamblador ocupan menos
espacio en memoria.

El lenguaje ensamblador, es un lenguaje de programación de bajo nivel. Consiste


en un conjunto de mnemónicos que representan instrucciones básicas para los
computadores, microprocesadores, micro controladores y otros circuitos
integrados programables. Implementa una representación simbólica de los
códigos de máquina binarios y otras constantes necesarias para programar una
arquitectura de procesador y constituye la representación más directa del código
máquina específico para cada arquitectura legible por un programador.

Ventajas

Ø Como trabaja directamente con el microprocesador al ejecutar un programa,


pues como este lenguaje es el más cercano a la máquina la computadora lo
procesa más rápido.

Ø Eficiencia de tamaño. - Un programa en ensamblador no ocupa mucho espacio


en memoria porque no tiene que cargan librerías y demás como son los
lenguajes de alto nivel

Ø Flexibilidad. - Es flexible porque todo lo que puede hacerse con una máquina,
puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de
alto nivel tienen en una u otra forma limitante para explotar al máximo los
recursos de la máquina.

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


Características

· El código escrito en lenguaje ensamblador posee una cierta dificultad de


ser entendido ya que su estructura se acerca al lenguaje máquina, es decir, es
un lenguaje de bajo nivel.

· El lenguaje ensamblador es difícilmente portable, es decir, un código


escrito para un microprocesador, puede necesitar ser modificado, para poder ser
usado en otra máquina distinta. Al cambiar a una máquina con arquitectura
diferente, generalmente es necesario reescribirlo completamente.

· Los programas hechos por un programador experto en lenguaje


ensamblador son generalmente mucho más rápidos y consumen menos
recursos del sistema (memoria RAM y ROM) que el programa equivalente
compilado desde un lenguaje de alto nivel. Al programar cuidadosamente en
lenguaje ensamblador se pueden crear programas que se ejecutan más
rápidamente y ocupan menos espacio que con lenguajes de alto nivel.

· Con el lenguaje ensamblador se tiene un control muy preciso de las tareas


realizadas por un microprocesador por lo que se pueden crear segmentos de
código difíciles y/o muy ineficientes de programar en un lenguaje de alto nivel,
ya que, entre otras cosas, en el lenguaje ensamblador se dispone de
instrucciones del CPU que generalmente no están disponibles en los lenguajes
de alto nivel.

· También se puede controlar el tiempo en que tarda una rutina en ejecutarse,


e impedir que se interrumpa durante su ejecución.

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


1.2 El procesador y sus registros internos
Que es un Procesador

Es un circuito electrónico que funciona a la velocidad de un reloj interno, gracias


a un cristal de cuarzo que, sometido a una corriente eléctrica, envía pulsos,
denominados pines.

Partes del procesador

Partes Lógicas

Ø Unidad de Control: Unidad encargada de Activar o Desactivar los diferentes


componentes del procesador, igualmente se encarga de Interpretar y ejecutar
las diferentes instrucciones almacenadas en la memoria principal.

Ø Unidad Aritmética y Lógica: Se encarga de realizar la operación de


transformación de datos, especialmente las operaciones matemáticas, el cual es
denominado FPU

Ø Registros: Se denominan a las áreas de almacenamiento temporal usadas


durante la ejecución de las instrucciones.

Partes Físicas

Ø Encapsulado: Es lo que rodea a la oblea de silicio, dándole consistencia y


protección para impedir su deterioro.

Ø Zócalo: Lugar donde se inserta el procesador, permitiendo la conexión con el


resto del equipo.

Ø Chipset: Conjunto de Chips encargados del control de las determinadas


funciones del equipo.

Ø Memoria Cache: Parte donde se almacenan los datos con más frecuente.

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


Definición de registros

Un registro es una memoria de alta velocidad y poca capacidad, integrada en el


microprocesador, que permite guardar transitoriamente y acceder a valores muy
usados, generalmente en operaciones matemáticas. Se utilizan para aumentar
la velocidad de ejecución de los programas. Su función es la de almacenar datos,
siendo la manera más rápida de hacerlo por el sistema. Los registros se miden
en número de bits que almacenan. La CPU, en cambio, comparte un conjunto de
localidades de almacenamiento temporal de datos de alta velocidad,
denominada con el mismo nombre: registro.

Tipos de registros

Registros de propósito especifico

Almacenan información específica sobre el estado del sistema como el puntero


de pila o el registro de estado.

Permiten llevar un récord de estado del procesador en todo momento. Los más
importantes son el contador de programa (PC), el registro de banderas, y el
apuntador de pila (SP).

Función de los registros

Los registros están en la cumbre de la jerarquía de memoria, y son la manera


más rápida que tiene el sistema de almacenar datos. Los registros se miden
generalmente por el número de bits que almacenan; por ejemplo, un "registro de
8 bits" o un "registro de 32 bits “.

La CPU contiene un conjunto de localidades de almacenamiento temporal de


datos de alta velocidad llamada registro. Algunos de los registros están
dedicados al control, y solo la unidad de control tiene acceso a ellos. Los
registros restantes son los registros de uso general y el programador es el
usuario que tiene acceso a ellos.

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


Registros básicos

Ø Dentro del conjunto básico de registros de control se deben incluir a los


siguientes:

Ø Contador de programa (PC).

Ø Registro de direcciones de la memoria (MAR).

Ø Registro de datos (RD).

Ø Registro de instrucciones (IR).

Ø Palabra de estado de programa (PSW).

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


Estructura del Microprocesador

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


1.3 La memoria principal (RAM)
La memoria de acceso aleatorio (Random Access Memory, RAM) se utiliza como
memoria de trabajo de computadoras y otros dispositivos para el sistema
operativo, los programas y la mayor parte del software. En la RAM se cargan
todas las instrucciones que ejecuta la unidad central de procesamiento
(procesador) y otras unidades del computador, además de contener los datos
que manipulan los distintos programas.

Se denominan de acceso aleatorio porque se puede leer o escribir en una


posición de memoria con un tiempo de espera igual para cualquier posición, no
siendo necesario seguir un orden para acceder (acceso secuencial) a la
información de la manera más rápida posible.

La RAM es uno de los tipos más rápidas de memoria, y tiene la capacidad de


permitir que los datos sean leídos y escritos. Cuando la computadora está
apagada, todo el contenido almacenado en RAM se purga. La memoria principal
está disponible en dos tipos: la memoria dinámica de acceso aleatorio (DRAM)
y la memoria estática de acceso aleatorio (SRAM).

Proceso

La unidad central de proceso es uno de los componentes más importantes en el


equipo. Es el lugar donde se realizan diversas tareas y se genera una salida.
Cuando el microprocesador completa la ejecución de un conjunto de
instrucciones, y está listo para realizar la siguiente tarea, recupera la información
que necesita de RAM. Típicamente, las direcciones incluyen la dirección donde
se encuentra la información que debe ser leída. La CPU envía la dirección al
controlador de la RAM, que pasa por el proceso de localización de la dirección y
la lectura de los datos.

Módulos de RAM

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


1.4 El concepto de interrupciones
Una interrupción es una situación especial que suspende la ejecución de un
programa de modo que el sistema pueda realizar una acción para tratarla. Tal
situación se da, por ejemplo, cuando un periférico requiere la atención del
procesador para realizar una operación de E/S.

Una interrupción es el rompimiento en la secuencia de un programa para ejecutar


un programa especial llamando una rutina de servicio cuya característica
principal es que al finalizar regresa al punto donde se interrumpió el programa.

Tipos de interrupciones

Interrupciones de hardware.

Estas son asíncronas a la ejecución del procesador, es decir, se pueden producir


en cualquier momento independientemente de lo que esté haciendo el CPU en
ese momento

Excepciones

Son aquellas que se producen de forma síncrona a la ejecución del procesador.


Normalmente son causadas al realizarse operaciones no permitidas tales como
la división entre 0, el desbordamiento, el acceso a una posición de memoria no
permitida, etc.

Interrupciones por software

Son aquellas generadas por un programa en ejecución. Para generarlas, existen


distintas instrucciones en el código máquina que permiten al programador
producir una interrupción.

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


Sistemas de prioridad

El sistema operativo necesita un mecanismo para priorizar las interrupciones y


tratar primero las más urgentes. Para ello, existen varias alternativas:

· Interrupciones simultáneas: No tienen por qué ocurrir de manera simultánea,


sino que se refiere a que en un momento dado puede haber varias interrupciones
activas.

· Interrupciones anidadas: Mientras se está procesando una determinada


rutina de servicio de interrupción sucede otra señal de interrupción.

· Inhibición de interrupciones: Se deshabilitan las demás interrupciones


mientras se está tratando una.

Determinación de la fuente que genera la interrupción

Hay distintas formas de identificar la fuente de una determinada interrupción.

· Polling: el microprocesador comprueba de manera sistemática todos los


dispositivos de manera que «busca» cuál de ellos fue el que solicitó la
interrupción.

· Interrupciones vectorizadas: Como ventajas podemos destacar que suele


ser rápido, pero implica un alto costo en el hardware.

· Hardware paralelo: se utiliza un registro de interrupción cuyos bits se


controlan de forma independiente por las señales de petición de interrupción de
cada periférico. Según la posición de cada bit en el registro, se establece la
prioridad.

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


Interrupciones

· int 01h-->un solo paso

· int 02h-->interrupción no enmascarable

· int 03h--> punto de interrupción

· int 04h-->desbordamiento

· int 05h-->impresión de pantalla

· int 08h-->Cronometro

· int 15h-->Servicios del sistema

· int 16h-->Funciones de entrada del teclado

· int 18h-->Entrada con el Basic de ROM

· int 1Ah-->Leer y establecer la hora

· int 1Bh-->Obtener el control con una interrupción de teclado.

· int 2oh-->Terminar un programa

· int 33h->Funciones del Ratón

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


1.5 Llamadas a servicios del sistema
Llamadas al sistema no bloqueantes

Son aquellas llamadas en las que, si lo que se solicita no está disponible, el


proceso no se queda bloqueado, sino que devuelven un valor especial indicando
la condición de información no disponible

Llamadas al sistema bloqueantes

La aplicación se bloquea a la espera del resultado. Si un hilo hace una llamada


bloqueante, todos los hilos se bloquearán. Si hace una llamada no bloqueante,
los demás hilos podrán seguir ejecutando.

Una llamada al sistema es un método o función que puede invocar un proceso


para solicitar un cierto servicio al sistema operativo. Dado que los accesos a
ciertos recursos del sistema requieren la ejecución de código en modo
privilegiado, el sistema operativo ofrece un conjunto de métodos o funciones que
el programa puede emplear para acceder a dichos recursos.

llamadas al sistema

Se activa una interrupción ejecutando una operación especial conocida “Llamada


al sistema"

Esta se lanza cuando:

Ø Una aplicación de usuario solicita un servicio del sistema operativo.

Ø Proporciona los medios para que un programa de usuario pida al so que


realice tareas reservadas del SO en nombre del programa de usuario.

Ø Una llamada al sistema se invoca de diversas maneras dependiendo de la


funcionalidad proporcionada por el procesador subyacente.

Ø Se trata de un método usado por un proceso para solicitar la actuación del


SO.

Ø Normalmente una llamada al sistema toma la forma de una excepción que


efectúa una transferencia a una posición específica en el vector de interrupción.

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


Tipos de llamadas al sistema

Control de procesos

· Terminar (end), abortar (abort)

· cargar (load), ejecutar (execute)

· crear procesos (create process o submit job), terminar procesos (terminate


process)

· fork: inicia un nuevo proceso

· exec:el programa se ejecuta

· obtener atributos del proceso (get process attributes), definir atributos del
proceso (set process attributes)

Administración de archivos

· crear archivos (create), borrar archivos (delete)

· abrir (open), cerrar (close)

· leer (read), escribir (write), reposicionar (reposition)

· obtener atributos del archivo, definir atributos del archivo.

Administración de dispositivos

· solicitar dispositivo (request), liberar dispositivo (release)

· leer (read), escribir (write), reposicionar (reposition)

· obtener atributos de dispositivo, definir atributos de dispositivo

· conectar y desconectar dispositivos lógicamente.

Mantenimiento de la información

· obtener la hora (time) o la fecha (date), definir la hora o la fecha

· obtener datos del sistema, establecer datos del sistema

· obtener los atributos de procesos, archivos o dispositivos

· establecer los atributos de procesos, archivos o dispositivos

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


Comunicaciones
· crear, eliminar conexiones de comunicación

· enviar, recibir mensajes

· transferir información de estado

1.6 Modos de direccionamiento


La memoria de acceso aleatorio, o RAM, es la memoria principal de una
computadora. Las aplicaciones son cargadas y ejecutadas en la memoria RAM.
Los modos de direccionamiento asignan memoria RAM en porciones que
pueden ser referenciadas individualmente para que la unidad central de
procesamiento, o CPU, pueda determinar qué ubicación de memoria está siendo
utilizada por una instrucción de la máquina.

Se les llama modos de direccionamiento a las distintas formas de combinar los


operandos según el acceso que se hace a memoria.

Direccionamiento implícito

· Depende solamente de la instrucción, es decir, la instrucción no lleva


parámetros.

· Particularmente en instrucciones que no accesan memoria, o bien que


tienen una forma específica de accesarla.

Ejemplos: PUSHF, POPF, NOP

Modo registro

· Usa solamente registros como operandos

· Es el más rápido, pues minimiza los recursos necesarios (toda la


información fluye dentro del EU del CPU)

Ejemplo: MOV AX, BX

Modo inmediato

· Tiene dos operandos: un registro y una constante que se usa por su valor.

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


· El valor constante no se tiene que buscar en memoria, pues ya se obtuvo
al hacer el “fetch” de la instrucción.

Ejemplo: MOV AH, 9

Modo directo

· Uno de los operandos involucra una localidad específica de memoria

· El valor constante se tiene que buscar en memoria, en la localidad


especificada.

· Es más lento que los anteriores, pero es el más rápido para ir a memoria,
pues ya “sabe” la localidad, la toma de la instrucción y no la tiene que calcular.

Ejemplo: MOV AH, [0000]

Modo indirecto

· Se usan los registros SI, DI como apuntadores

· El operando indica una localidad de memoria, cuya dirección (sólo la parte


desplazamiento) está en SI o DI.

· Es más lento que los anteriores, pues tiene que “calcular” la localidad

Ejemplos: MOV AL, [SI]

Modo indexado de base

Formato: [ BX o BP + SI o DI (opcionales) + constante (opcional) ]

· BX o BP indica una localidad base de la memoria

· A partir de BX o BP, se puede tener un desplazamiento variable y uno


constante

· La diferencia es el segmento sobre el que trabajan por defecto:

· BX por defecto en el segmento de datos

· BP por defecto en el segmento de pila.

Ejemplos:

Ø MOV AX, [BX]

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


Ø MOV DX, [BX+2]

Ø MOV CX, [BX+DI]

Ø MOV DL, [BX+SI+3]

Absoluto

El campo de operando contiene una dirección en memoria, en la que se


encuentra la instrucción. Y no se cancela.

Indirecto recursivo

Unos pocos sistemas como el PDP-6 o el PDP-10 tenían la posibilidad de


direccionamiento indirecto recursivo. Tal dirección de memoria indirecta tenía un
campo de registro para indexación y posiblemente un otro bit indirecto, de modo
que el proceso de direccionamiento indirecto con indexación podría teóricamente
repetirse cualquier número de veces hasta que se encontrara una dirección sin
un bit indirecto en la cadena.

Indirecto mediante registros

El campo de operando de la instrucción contiene un identificador de registro en


el que se encuentra la dirección efectiva del operando.

El control localiza la instrucción de la memoria y utiliza su parte de dirección para


acceder a la memoria de nuevo para leer una dirección efectiva. Unos pocos
modos de direccionamiento requieren que el campo de dirección de la instrucción
sea sumado al control de un registro especificado en el procesador. La dirección
efectiva en este modo se obtiene del siguiente cálculo: Dir. efectiva = Dir. de la
parte de la instrucción + Contenido del registro del procesador.

De desplazamiento

Combina el modo directo e indirecto mediante registros.

De pila

Se utiliza cuando el operando está en memoria y en la cabecera de la pila.

Este direccionamiento se basa en las estructuras denominadas Pila (tipo LIFO),


las cuales están marcados por el fondo de la pila y el puntero de pila (*SP). El

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


puntero de pila apunta a la última posición ocupada. Así, como puntero de
direccionamiento usaremos el SP.

El desplazamiento más el valor del SP nos dará la dirección del objeto al que
queramos hacer referencia. En ocasiones, si no existe C. de desplazamiento solo
se trabajará con la cima de la pila.

1.7 Proceso de ensamblado y ligado


1. El programa utiliza un editor de texto para crear un archivo de texto ASCII,
conocido como archivo de código fuente.

2. El ensamblador lee el archivo de código fuete y produce un archivo de código


objeto, una traducción del programa a lenguaje máquina. De manera opcional,
produce un archivo de listado. Si ocurre un error, el programador debe regresar
al paso 1 y corregir el programa.

3. El enlazador lee el archivo de código objeto y verifica si el programa contiene


alguna llamada a los procedimientos en una biblioteca de enlace.

4. La herramienta cargadora del sistema operativo lee el archivo ejecutable y lo


carga en memoria, y bifurca la CPU hacia la dirección inicial del programa, para
que éste empiece a ejecutarse.

Edición

Los archivos fuente de código ensamblador deben estar en formato ASCII


standard. Para esto puede usarse cualquier editor que permita crear archivos sin
formato.

Ensamblado

El ensamblado se lleva a cabo invocando al MASM. Este puede ser invocado,


usando una línea de comando, de la siguiente manera: MASM archivo
[,[objeto][,[listado][,[cross]]]]][opciones][;] Dónde: Objeto.- Es el nombre para el
archivo objeto. Listado. - Nombre del archivo de listado de ensamblado. cross.
Es un archivo de referencias cruzadas.

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx


Objeto. - Es el nombre para el archivo .OBJ Ejecutable. - Nombre del archivo
.EXE Mapa. - Nombre del archivo mapa Librería. - Nombre del archivo biblioteca
de rutinas

Ejecución

Para la ejecución del programa simplemente basta teclear su nombre en el


prompt de MS-DOS y teclear ENTER. Con esto el programa será cargado en
memoria y el sistema procederá a ejecutarlo.

Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México,

C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx

También podría gustarte