Reporte de Proyecto
Reporte de Proyecto
Carrera
ING. Sistemas Computacionales
Materia:
Lenguaje de Interfaz
Profesor(a):
AMADA JACKELINE SALOMON GONZALEZ
Horario:
10:00-11:00
Proyecto Final:
Reporte De Práctica
Equipo 4:
Hernández López Christian Alexander
Rodríguez Estrada Cielo
Vicente Hernández Job
Introducción
Los lenguajes ensambladores están ligados a una arquitectura
informática específica y no son portátiles. Como bien sabemos, los
lenguajes de alto nivel proporcionan abstracciones de operaciones de
bajo nivel que permiten al programador centrarse más en describir lo
que quieren hacer y menos en cómo debería hacerse. Programar de
esta manera es más conveniente y hace que los programas sean más
fáciles de leer sacrificando el control de bajo nivel. Un programa
utilitario llamado ensamblador es usado para traducir sentencias del
lenguaje ensamblador al código de máquina del computador objetivo.
El ensamblador realiza una traducción más o menos isomorfa (un
mapeo de uno a uno) desde las sentencias mnemónicas a las
instrucciones y datos de máquina. Esto está en contraste con los
lenguajes de alto nivel, en los cuales una sola declaración
generalmente da lugar a muchas instrucciones de máquina. La
importancia del lenguaje ensamblador es 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
el 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.
Conceptos Básicos
El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado
para escribir programas informáticos, y constituye la representación
más directa del código máquina específico para cada arquitectura de
microprocesador.
Características:
• El único lenguaje que entienden los microcontroladores es el código
máquina formado por ceros y unos del sistema binario.
• El lenguaje ensamblador expresa las instrucciones de una forma más
natural al hombre a la vez que muy cercana al microcontrolador, ya
que cada una de esas instrucciones se corresponde con otra en
código máquina.
• El lenguaje ensamblador trabaja con nemónicos, que son grupos de
caracteres alfanuméricos que simbolizan las órdenes o tareas a
realizar.
•La traducción de los nemónicos a código máquina entendible por el
microcontrolador la lleva a cabo un programa ensamblador.
• El programa escrito en lenguaje ensamblador se denomina código
fuente (*.asm). El programa ensamblador proporciona a partir de este
fichero el correspondiente código máquina, que suele tener la
extensión *.hex.
•Está compuesto por una sucesión de líneas de texto.
• Cada línea puede estructurarse en hasta cuatro campos o columnas
separados por uno o más espacios o tabulaciones entre sí
Cadenas
En el lenguaje ensamblador el tipo de dato cadena (string) no está
definido, pero para fines de programación, una cadena es definida
como un conjunto de localidades de memoria consecutivas que se
reservan bajo el nombre de una variable.
El lenguaje ensamblador cuenta con cinco instrucciones para el
manejo de cadenas:
MOVS: Mueve un byte o palabra desde una localidad de memoria a
otra.
LODS : Carga desde la memoria un byte en AL o una palabra en AX.
STOS : Almacena el contenido del registro AL o AX en la memoria.
CMPS : Compara localidades de memoria de un byte o palabra.
SCAS : Compara el contenido de AL o AX con el contenido de alguna
localidad de memoria.
Las instrucciones para cadenas trabajan en conjunto con la instrucción
CLD, la cual permite establecer que el sentido en el que las cadenas
serán procesadas será de izquierda a derecha.
Otra instrucción importante es el prefijo de repetición REP, el cual
permite que una instrucción para manejo de cadenas pueda ser
repetida un número determinado de veces.
Los registros índice juegan un papel importante en el procesamiento
de cadenas de datos, el par de registros CS:SI indican la dirección de
la cadena original que será procesada, y el par ES:DI contienen la
dirección donde las cadenas pueden ser almacenadas.
Para comprender realmente como funcionan las instrucciones para
cadenas analizaremos varios programas que fueron escritos para este
fin. Recuerde que las cadenas en ensamblador no se refieren
únicamente a cadenas de caracteres ASCII, sino a cualquier tipo de
dato
Metodología:
Desarrollar un programa que nos pida ingrese una cadena de
caracteres, este identifique si la cadena de caracteres empieza con
números o si empieza con símbolos “caracteres especiales”, de igual
forma que identifique y borre los espacios que se allan ingresado en la
cadena
Código:
;--------------------------------------------------------
; Proyecto final del Equipo 4
; integrantes:
; Hernández López Christian Alexander
; Rodriguez Estrada Cielo
; Vicente Hernández Job
;--------------------------------------------------------
; Verificar si una cadena de carcateres inicia con numeros o
simbolos
.MODEL SMALL
.STACK
.DATA
Datos db 'Proyecto final del Equipo 4',13,10,'Verificar si una
cadena de carcateres inicia con numeros o simbolos
',13,10,'Integrantes:',13,10,'Hernández López Christian
Alexander',13,10,'Rodriguez Estrada Cielo ',13,10,'Vicente
Hernández Job',13,10,'$'
msj1 db 13,10,'La cadena comienza con un número $'
msj2 db 13,10,'La cadena comienza con un un símbolo $'
msj3 db 13,10,'La cadena de caracteres contine espacios $'
mens db 13,10,'Introduzca una cadena de
caracteres',0ah,0dh,'$' ;mensaje de inicio
cadena label byte ;aquí defines la estructura de la cadena:
max db 21 ;máximo de caracteres (20 letras + el enter)
cant db ? ;almacena la cantidad real de caracteres
tecleados
campo db 21 dup (' ') ;acepta espacios en la cadena
.code
.startup
disp:
mov ah,02h ;peticion para desplegar
mov dl,al
int 21h
cmp al,0dh ;si encuentra un enter,
je salir ;sale del programa
inc si
jmp ciclo
imprimirSimb:
mov ah,09
mov dx,offset msj2
int 21h
jmp ciclo
imprimirEspacio:
mov ah,09
mov dx,offset msj3
int 21h
fin:
call imprimirEspacio
jmp salir
salir:
.exit
End
Resultados Finales:
Conclusión
En conclusión, el 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.