Professional Documents
Culture Documents
INTEGRANTE:
Roberto Cevallos Tobar
Fabián Criollo Canacuan
TEMA:
Lenguaje Ensamblador
ASIGNATURA:
Organización de computadoras
CURSO:
Tercero Sistemas Computacionales
(matutino)
FECHA:
2011-03-05
1
Manual de Lenguaje Ensamblador 2011
INDICE
1) Introducción
2) Definiciones Básicas
3) Estructura de un programa
4) Instrucciones básicas en ensamblador
5) Ejercicios
5.1) Programa Suma
5.2) Programa Resta
5.3) Programa Multiplicación
5.4) Programa Dividir
6) Fuentes de Consulta
2
Manual de Lenguaje Ensamblador 2011
INTRODUCCION
Los ensambladores son por lo general más fáciles de programar que los
compiladores de lenguajes de alto nivel, y han estado disponibles desde la década
de 1950. Los ensambladores modernos, especialmente para arquitecturas basadas
en RISC, como por ejemplo MIPS, SPARC y PA-RISC optimizan las instrucciones
para explotar al máximo la eficiencia de segmentación del CPU.
3
Manual de Lenguaje Ensamblador 2011
DEFINICIONES BASICAS
LENGUAJE MAQUINA
Los circuitos micro programables son sistemas digitales, lo que significa que
trabajan con dos únicos niveles de tensión. Dichos niveles, por abstracción, se
simbolizan con el cero, 0, y el uno, 1, por eso el lenguaje de máquina sólo utiliza
dichos signos. Esto permite el empleo de las teorías del álgebra booleana y del
sistema binario en el diseño de este tipo de circuitos y en su programación.
Claude Elwood Shannon, en su Analysis of Relay and Switching Circuits, y con sus
experiencias en redes de conmutación, sentó las bases para la aplicación del
álgebra de Boole a las redes de conmutación.
4
Manual de Lenguaje Ensamblador 2011
LENGUAJE ENSAMBLADOR
Fue usado principalmente en los inicios del desarrollo de software, cuando aun no
se contaba con los potentes lenguajes de alto nivel. Actualmente se utiliza con
frecuencia en ambientes académicos y de investigación, especialmente cuando se
requiere la manipulación directa de hardware, se pretenden altos rendimientos o
un uso de recursos controlado y reducido.
Muchos dispositivos programables (como los micro controladores) aun cuentan con
el Ensamblador como la única manera de ser manipulados.
INSTRUCCIÓN EN ENSAMBLADOR
NEMOTÉCNIC
ETIQUETA OPERANDOS COMENTARIOS
O
DIRECCIÓ CÓDIGO DE
DIRECCIÓN DE LOS OPERANDOS
N OPERACIÓN
Formato libre.
Delimitadores de campo.
5
Manual de Lenguaje Ensamblador 2011
Instrucciones.
Pseudoinstrucciones
Etiqueta
- Recomendaciones
Nemotécnico
- Identifica:
Campo de operandos
- Tipos de operandos:
6
Manual de Lenguaje Ensamblador 2011
Constantes
Símbolos
Expresiones
Comentarios
PSEUDOINSTRUCCIONES
Definición de símbolos
Da un valor a un símbolo.
Ej: ETIQ EQU expresión
Con valor inicial: reserva espacio para los datos indicados en la lista de
expresiones, y les pone los valores iniciales indicados (tamaño de cada
dato:
7
Manual de Lenguaje Ensamblador 2011
S=B,W ó L).
Sin valor inicial: reserva espacio para tantas variables como se indica en
la expresión (tamaño de cada dato: S=B,W ó L).
Control de traducción
8
Manual de Lenguaje Ensamblador 2011
La función 09h despliega una cadena en el área de datos, utiliza lea para
cargar la dirección de cadena en DX; la operación despliega los
caracteres de izquierda a derecha.
9
Manual de Lenguaje Ensamblador 2011
G) Instrucciones de pila
push ax ;empilar
;-----------------------------------
pop ax ;desempilar
mov ah, 2ah
int 21h
10
Manual de Lenguaje Ensamblador 2011
I) Obtener hora del sistema
mov ah, 2ch
int 21h
mov ds, ax
movcx,0000h
mov dx,184Fh
int 10h
11
Manual de Lenguaje Ensamblador 2011
mov cx, 226 ;cx es utilizado como contador es las veces que
realizara el ciclo
ciclo:
mov bh, 0
int 10h
mov ah,0eh
int 10h
inc al ;incrementa para el siguiente carcater "al" ya que hay
se encuentra guardado
loop ciclo
cursor:
mov ah, 02
mov dh, 22
mov dl, 0
mov bh, 0
12
Manual de Lenguaje Ensamblador 2011
int 10h
fin:
SUMA
SUMA.ASM
ideal
dosseg
model small
stack 256
dataseg
codsal db 0
dato1 dw ?
dato2 dw ?
resul dw ?
codeseg
inicio:
13
Manual de Lenguaje Ensamblador 2011
mov ds, ax ; segmento de datos
mov [resul], ax
salir:
int 21h
end inicio
RESTA
RESTA.ASM
ideal
dosseg
model small
stack 256
dataseg
codsal db 0
dato1 dw ?
dato2 dw ?
resul dw ?
codeseg
14
Manual de Lenguaje Ensamblador 2011
inicio:
mov [resul], ax
salir:
int 21h
end inicio
MULTIPLICACION
MULTI.ASM
ideal
dosseg
model small
stack 256
dataseg
codsal db 0
dato1 db ?
dato2 db ?
resul dw ?
15
Manual de Lenguaje Ensamblador 2011
****** CÓDIGO DEL PROGRAMA *******************************
codeseg
inicio:
mul [dato2]
mov [resul], ax
salir:
int 21h
end inicio
DIVISION
DIVI.ASM
ideal
dosseg
model small
stack 256
dataseg
codsal db 0
dato1 db ?
16
Manual de Lenguaje Ensamblador 2011
dato2 db ?
resul dw ?
codeseg
inicio:
mul [dato2]
mov [resul], ax
salir:
int 21h
end inicio
BIBLIOGRAFIA
Internet
Let's Build a Compiler. Tutorial de Jack W. Crenshaw sobre cómo hacer un compilador
Java a tope: Traductores y Compiladores con Lex/Yacc, JFlex/Cup y JavaCC. Libro básico
sobre compiladores
Compiladores: Principios, Técnicas y Herramientas. Libro completo sobre compiladores
Procesamiento léxico, sintáctico, gestión T.S., declaraciones y ejecutables. Herramienta
interactiva para el estudio de los procesadores de lenguajes.
17
Manual de Lenguaje Ensamblador 2011
18