0% encontró este documento útil (0 votos)
18 vistas6 páginas

1.1 Importancia Del Lenguaje Ensamblador

El documento presenta un curso sobre el lenguaje ensamblador, destacando su importancia y características, así como los tipos de ensambladores y su programación. Se busca que los alumnos adquieran habilidades en la utilización del lenguaje ensamblador para el control de hardware y software, a través de la práctica y la comprensión de su sintaxis. Además, se abordan conceptos sobre la estructura de programas en ensamblador, incluyendo segmentos y secciones, junto con ejemplos prácticos.

Cargado por

Greta
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 (0 votos)
18 vistas6 páginas

1.1 Importancia Del Lenguaje Ensamblador

El documento presenta un curso sobre el lenguaje ensamblador, destacando su importancia y características, así como los tipos de ensambladores y su programación. Se busca que los alumnos adquieran habilidades en la utilización del lenguaje ensamblador para el control de hardware y software, a través de la práctica y la comprensión de su sintaxis. Además, se abordan conceptos sobre la estructura de programas en ensamblador, incluyendo segmentos y secciones, junto con ejemplos prácticos.

Cargado por

Greta
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

Departamento de Sistemas y Computación


Ingeniería en Sistemas Computacionales
Lenguajes de Interfaz SCC-1014

1.- Introducción al lenguaje ensamblador.


1.1 Importancia de la programación en lenguaje ensamblador.

OBJETIVO GENERAL:

Que el alumno, al término de todas las actividades sea capaz de utilizar el Lenguaje Ensamblador que
permita fortalecer los conocimientos sobre este lenguaje de programación, los cuales serán
presentados de menor a mayor grado de dificultad, con la finalidad de crearle un mayor interés y
permita aprender el correcto uso de cada una de las instrucciones de que está compuesto, corroborar
la sintaxis y utilidad al ejecutar las prácticas propuestas. Esperando que el alumno sea capaz de
experimentar con nuevas rutinas que le permitirá solucionar de una forma más fácil los retos que se le
presenten en el control del ordenador y los periféricos estandarizados o no.

SIGNIFICADOS:

Lenguaje Ensamblador:

Es un lenguaje simbólico que permite programación a bajo nivel, lo cual proporciona control total del
hardware y software de un sistema de cómputo a través de un conjunto de mnemònicos.

Un ensamblador es una aplicación de sistema que se encarga de traducir un archivo fuente escrito con
mnemònicos, a un archivo objeto que contiene código máquina, ejecutable directamente por la
máquina para la que se ha generado.

Características:

• Lenguaje compilado “Una vez generado el código ejecutable no requiere del lenguaje para su
ejecución”.
• No es sensible al contexto “Sin distingo entre mayúsculas y minúsculas”.
• Lenguaje de bajo nivel “Después de este solo existen ceros y unos o código máquina”.
• Lenguaje de programación más rápido “Por ser compilado y existir una alineación uno a uno con el
código máquina”.
• No es para hacer grandes sistemas, es para hacer partes de código que se requiere ejecutar
rápidamente y en muchas ocasiones”.
• Permite como forma de subprogramación a las macros, procedimientos y librerías.
• Puede ser usados en equipos de computo o microcontroladores.
• Permite la manipulación de los registros internos del procesador.
• Puede usar las interrupciones del BIOS “Sistema Básico de Entrada/Salida” o del SO “Sistema
Operativo”.
• Al ser un lenguaje de bajo nivel, existe una mayor interdependencia con el hardware.
• El tipo de programación es mas detallada que las de uno de lato nivel.
• No existen tipos de datos, solo se reservan espacios de memoria para alojarlos:
• BYTEDB 00
• WORD DW 00 00 Word (word, palabra) 16 bits.
• DWORD DD 00 00 00 00 Dword (double word, doble palabra) 32 bits.
• QWORD DQ 00 00 00 00 00 00 00 00 Qword (quadruple word, cuadruple palabra) 64 bits.

TecNM campus Acapulco Periodo: Enero – Junio 2024 Elaboró: Juan Luis Bringas Ramírez Página 1 de 82
Tecnológico Nacional de México
Departamento de Sistemas y Computación
Ingeniería en Sistemas Computacionales
Lenguajes de Interfaz SCC-1014

Tipos de ensambladores:

Ensambladores básicos. Son de muy bajo nivel y su tarea consiste básicamente en ofrecer nombres
simbólicos a las distintas instrucciones (mnemònicos) de la máquina apropiada, además de ofrecer un
formato de escritura cómodo para expresar los parámetros y cosas tales como los modos de
direccionamiento. Además, reconoce una serie de directivas (o meta instrucciones) que indican ciertos
parámetros de funcionamiento del ensamblador.

Ensambladores modulares, o macro ensambladores. Descendientes de los ensambladores básicos,


fueron muy populares en las décadas de los 50 y los 60, antes de la generalización de los lenguajes de
alto nivel. Hacen todo lo que puede hacer un ensamblador y además proporcionan una serie de
directivas para definir e invocar macro instrucciones (o simplemente, macros). Cuando invocamos a
una macro, ésta se expande al cuerpo que se definió.

Ensambladores modulares 32-bits. Pueden ser de alto y bajo nivel, pero solo emulado en 32-bits.
Microsoft aún esta reproduciendo el Microsoft Macro Assembler, es reproducido por un paquete
preparado. El ml 6.14 emula poderosos compilados en 32-bits, su sintaxis es mezcla de: C API,
ensamblador, y macros.

HLA High-Level Assembler, es un lenguaje poderoso que soporta de bajo y alto-nivel pero solo en 32-
bits. High-Level Assembler traducido a "Ensamblador de Nivel-Alto. Tiene un libro popular llamado
"AOA" Art of Assembly Language traducido a "Arte del Lenguaje Ensamblador". Tambien tiene fama
de usar macros como los de masm.

NOMBRE: Importancia del lenguaje

OBJETIVO:

Que el alumno valorare la importancia de conocer este lenguaje, al conocer sus aplicaciones y el uso
en diferentes plataformas de “hardware y software”.

INTRODUCCIÓN:

Este lenguaje da la facilidad y las herramientas necesarias para tomar el control de todo lo que la PC
puede realizar físicamente. Como resultado de operaciones muy básicas suministradas por el
ensamblador que realiza tareas simples de transferencia de datos y operaciones lógicas, una página
de códigos en lenguaje ensamblador palidece en comparación con una página de código en lenguaje
de alto nivel.

Ventajas:

Velocidad, control de hardware y software, todos los procesadores aceptan una variante de
ensamblador como su forma de programación.

Desventajas:

Dependiente de la plataforma en donde se desarrolló, mayor costo en su ciclo de vida, peligro de


afectar recursos inesperadamente.

TecNM campus Acapulco Periodo: Enero – Junio 2024 Elaboró: Juan Luis Bringas Ramírez Página 2 de 82
Tecnológico Nacional de México
Departamento de Sistemas y Computación
Ingeniería en Sistemas Computacionales
Lenguajes de Interfaz SCC-1014

Programación con segmentos:

Al crear un programa con segmentos, cada uno de ellos pude ser de hasta 64 Kb , haciendo uso de
registros de 16 bits (IP,SS...) y en los de propósito general (AX...), pudiendo usar las mitades (AH...).
Este tipo de programación es aceptada desde los procesadores 8008, hasta los actuales pentium.

Pila SEGMENT PARA STACK ‘STACK’

Datos SEGMENT PARA ‘datos’

Código SEGMENT PARA ‘código’

Programación con secciones:

Al crear un programa con secciones lógicas es posible referenciar por programa hasta 4Gb, haciendo
uso de registros de 32 bits (EIP...) y los de propósito general (EAX...). el inicio de cada sección
determina el fin de la anterior. Existen dos secciónes principales, la .CODE y .DATA; esta última puede
ser dividida en dos categorías.

.386 ; Procesador 80386 con registros de 32 bits.

.286 ; Procesador 80286 con registros de 16 bits.

.MODELL SMALL ; Modos para la compilación TINY,SMALL,MEDIUM,COMPACT o LARGE

.DATA ; Esta sección contiene la información inicializada.

.DATA? ; Esta sección contiene la información no inicializada.

.CONST ; Esta sección contiene declaraciones de constantes.

.CODE ; Esta sección contiene las instrucciones del programa.

.STACK 64 ; Esta sección contiene el espacio para la pila; por defautl es 64.

NOMBRE: Formato de un programa

OBJETIVO:

Que el alumno:

- Conozca y cree un programa; el cual cuente con todos los segmentos y puntos principales de
los que puede estar formado un programa.
- Aprenda la sintaxis básica de un programa en ENSAMBLADOR y las palabras reservadas.
- Se familiarice con el ambiente de desarrollo en la que codificará, grabará, editará, compilará y
ejecutará los programas que se presentan en el manual.

TecNM campus Acapulco Periodo: Enero – Junio 2024 Elaboró: Juan Luis Bringas Ramírez Página 3 de 82
Tecnológico Nacional de México
Departamento de Sistemas y Computación
Ingeniería en Sistemas Computacionales
Lenguajes de Interfaz SCC-1014

INTRODUCCIÓN:

Las estructuras de programa presentadas posteriormente, tanto para segmentos como para secciones,
pueden ser compilados y ligados con Macroassembler y Turbo para 16 bist, respetando la sintaxis para
cada caso; ejemplo:

Un programa en lenguaje ensamblador es una serie de sentencias ejecutables que le dicen al


ensamblador que operaciones tienen que realizar.

Cada sentencia está compuesta por cuatro campos

Nombre, Operación, Operando(s), Comentario

1.- Campo Nombre

• Todas las letras de la A a la Z. Dígitos del 0 al 9.


• Símbolos Especiales.
• Variables, rótulos, Constantes, Nombre segmento, Nombre de procedimientos, Nombre de
macros.
Variables
Representa una posición de memoria que es accesible por un programa y el contenido de esta
posición puede cambiar durante la ejecución del programa.

Rótulo
Son los nombres aplicados a instrucciones ejecutables en los programas de aplicación los
cuales son referenciados como código relativo un nombre o rotulo pudiendo tener 3 atributos.
• Dirección de Segmento
• Desplazamiento de segmento
• Descriptor de accesibilidad NEAR o FAR cuando no se especifica, se considera NEAR.
Datos
Pila Ciclo:
Countador label near
Final label far

Constantes
Binaria
Consta de ceros 1/0 una seguida por la letra b.
Ocho equ 00001000b
Decimal
Consta de series de dígitos del 0 al 9 y opcionalmente seguida por la letra D.
Cuarenta equ 40D
Treinta equ 30
Hexadecimal
Consta de series de dígitos del 0 al 9 y A a la F; terminada por la letra H.
Si el valor hexadecimal comienza con una letra entonces se antepone un cero.
Nueve equ 9h Diez EQU 0AH
Octal
Serie de digitos del 0 al 7 terminados por la letra O o Q. Tres EQU 3O
Siete EQU 7Q

TecNM campus Acapulco Periodo: Enero – Junio 2024 Elaboró: Juan Luis Bringas Ramírez Página 4 de 82
Tecnológico Nacional de México
Departamento de Sistemas y Computación
Ingeniería en Sistemas Computacionales
Lenguajes de Interfaz SCC-1014

Carácter
Puede tener cualquier símbolo del código ASCII encerrado entre comillas
simples o dobles si contiene más de dos caracteres la pseudo operación DB
(Define byte) debe ser utilizada si la cadena carácter contiene solo uno de dos
caracteres, entonces solo pueden ser utilizadas las pseudo operaciones DD,
DQ, DT, DW.
Letra B DD ‘B’
Nombre DB “Persona”
Flotante
Representa valores en notación científica. Flotante DD 3.1415E-1 Real
Hexadecimal
Dígitos del 0 al 9 y de la A a la F y terminados por la letra R siguiendo las reglas
de los datos hexadecimales.
RelHexa DD 0FAB 12345R
Nombre de Segmento
Se da en el campo del nombre de la sentencia del segmento.
Código SEGMENT PARA ‘codigo’
Nombre de procedimientos
Se da en el campo del nombre de la sentencia del procedimiento.
Código PROC PARA ‘codigo’
Nombre de macros.
Se da en el campo del nombre de la sentencia de la macro.
Código MACRO PARA ‘codigo’

2.- Campo Operación


Este campo contiene un nemotècnico para ejecutar una instrucción del microprocesador.
Mov AX, 0AF2Ah
3.- Campo Operando
Este campo contiene la posición o posiciones donde están los datos que van a ser manipulados
por la instrucción de la operación.
Mov AX, 8
4.- Campo Comentario
Es el último de los 4 campos y es utilizado para documentar el programa internamente e inicia
con un punto y coma.
Mov AH, 43 ; Asigna un cuarenta y tres a la parte alta del registro AX

TecNM campus Acapulco Periodo: Enero – Junio 2024 Elaboró: Juan Luis Bringas Ramírez Página 5 de 82
Tecnológico Nacional de México
Departamento de Sistemas y Computación
Ingeniería en Sistemas Computacionales
Lenguajes de Interfaz SCC-1014

;Departamento de Sistemas y Computación


;Autor: Juan Luis Bringas Ramirez
;Fecha de creación: 19/02/2024
;Programa que ejemplifica el uso de segmentos con registros de 16 bist.
;El programa realmente no hace nada y es terminado con la instrucción RET.
;Nombre Operación Operando(s) Comentario
Tres EQU 3Q ;Constante octal
Ocho equ 00001000b ;Constante binaria
Pila SEGMENT PARA STACK 'STACK' ; Pila es nombre del segmento
DB 64 DUP(0)
Pila ENDS
Datos SEGMENT PARA 'Datos' ; Datos es nombre de segmento
Variable1 DB 5
Datos ENDS
Codigo SEGMENT PARA 'Codigo'
FormatoPrograma PROC FAR ;Procedimiento principal, punto de entrada del programa
ASSUME CS:Codigo, DS:Datos, ES,Datos, SS:Pila
PUSH DS ; Guardar el contenido del registro de Segmento de Datos en la pila
MOV AX,00
PUSH AX
MOV AX,Datos
MOV DS,AX ;Operación MOV con los operandos destino DS y fuente AX
MOV ES,AX ;El segmento extra es requerido por algunas interrupciones
; Agrega la lógica necesaria por tu programa
RET ; Retorno del procedimiento y fin del programa
FormatoPrograma ENDP
Codigo ENDS
END FormatoPrograma

; Departamento de Sistemas y Computación


; Autor: Juan Luis Bringas Ramirez
; Fecha de creación: 19/02/2024
; Programa que ejemplifica el uso de secciones en procesadores con registros de 16 bits (80286).
; El programa realmente no hace nada, únicamente coloca el valor 4C00H en el registro AX, para que
; la interrupción 21H termine el programa.
.286
.MODEL SMALL
.CODE
Programa: ;Agrega la lógica necesaria para tu programa
MOV AX,4C00H ;Función para terminar programa
INT 21H ;Interrupción para terminarlo
.STACK 64
END Programa

TecNM campus Acapulco Periodo: Enero – Junio 2024 Elaboró: Juan Luis Bringas Ramírez Página 6 de 82

También podría gustarte