Este documento proporciona instrucciones y ejemplos sobre el uso de interrupciones, instrucciones y funciones básicas en ensamblador como imprimir cadenas y caracteres, manejo del cursor, lectura de teclado, color, scroll y bucles. También incluye ejemplos de programas en ensamblador y reglas para la presentación de proyectos.
12. [ETIQUETA:] NEMOTECNICO
"SWICH"E "IF", ya que estas sentencias no existen como tal.
Nota: Se aplican las mismas reglas para definición de variables, la definicion de
etiquetas.
El campo NEMOTÉCNICO especifica la instrucción y el campo operandos
dependerá del nemotécnico.
El campo COMENTARIOS PERMITE DOCUMENTAR UN PROGRAMA.
Ejemplos: 1. Sumar ADD, AX,BX ; Realiza la suma
Una instrucción con los 4 campos
2. CMP ah,'e'
Una instrucción con Nemotécnico y operandos.
13. Simulacion de un ciclo 'FOR'
Estructura:
MOV CX,[Numero_de_veces]
Nombre_etiqueta:
[Código que se repetirá CX veces]
LOOP Nombre_etiqueta
LOOP. Decrementa automáticamente CX, si el
contenido de CX es diferente de CERO satará a la
etiqueta especificada en LOOP.
14. Diseñe un programa en ensamblador que imprima
tu nombre 10 veces.
mov cx,10
bucle:
mov ah,9
mov dx, offset nombre
int 21h
loop bucle
15. LOOP2.asm
Diseñe un programa que imprima tres columnas de
tu nombre en tres posiciones diferentes de la
pantalla.
16. LOOP3.ASM
Diseñe un programa en ensamblador que realice lo siguiente:
A) Declarar un arreglo con 20 caracteres.
B) Con dicho arreglo imprima una columna en el centro de la pantalla
C)Imprima con el arreglo de caracteres una diagonal a lo largo del
monitor
17. Números Empaquetados
Digito decimal codificado en binario
BCD empaquetado = 2 digitos decimales
por byte. 00-99
BCD no empaquetado = 1 digito decimal
por byte. 0-9
18. MUL (Multiplicación para
numeros con signo)
Sintaxis:
MUL operando 1
El operando2 siempre deberá estar
almacenado en AL, AX, EAX
Ejemplo:
mov al,5
mov bl,4
mul bl
19. CMP
Esta instruccion indica una comparación entre dos
operandos, funciona como una resta con la diferencia de
que no afecta el destino, únicamente los indicadores.
Sintaxis:
CMP Operando1, Operando2
Trabaja junto con los saltos para formar estructuras de control tal
como el „if‟
_____________________Todos vienen seguidos de una etiqueta
JA.- Salta si mayor
JB.- Salta si menor
JAE.- Salta si mayor o igual.
JBE.- Salta si menor o igual.
JE.- Salta si igual
JZ.- Salta si cero
_____________________Salto condicional
JMP
20. Interrupcion para tecla con
codigo de rastreo
Mov ah,0
Int 16h
Tecla AH AL
Arriba 48H 0
Abajo 50H 0
Derecha 4DH 0
Izquierda 4BH 0
Enter 13
F1 0
… 0…
F10 0
Escape 27
21. Código de rastreo: Número de tecla en el teclado,
también es universal o un estandard
Mov ah,0
Int 16h
Regresa AH=Código de rastreo AL=Valor ASCII
22. Tecla1.asm
Diseña un programa en ensamblador que
imprima el mensaje correspondiente a la
flecha presionada, repita hasta que el
usuario presiona escape.
23. Tecla2.asm
Diseñe un programa en ensamblador que
realice lo siguiente:
a) Imprime el mensaje “Lenguaje
ensamblador” en el centro de la
pantalla
b) Haz que navegue el cursor a travéz del
mensaje, tomando únicamente las
flechas
24. Proyecto unidad 2, unidad 3,
unidad 4.
El proyecto consiste en crear avances desde la unidad 2 hasta la
unidad 4 bajo las siguientes reglas:
a) Para el avance del proyecto de la unidad 2 se realizaran dos
dias de exposiciones por comunidad. 29 y 30 de marzo.
b) Al final de cada exposición se realizará una sesión de preguntas
donde se eligirá el integrante de la comunidad que deberá
responder (al azar). Si el seleccionado para responder no logra
defenderse provocará que toda la comunidad no tenga el 20%.
c) Cualquiera que sea la razón de que una comunidad no apruebe
o no entregue el avance sólo podrá presentarlo hasta el 5 de
junio quedando pendiente la calificacion de la unidad 2
d) Revisar las reglas de exposición (formalidad de los expositores,
dominio del tema, entrega de folletos, etc.)
25. Lectura de cadena
ensamblador
Lenguaje ensamblador nos proporciona una
interrupción que nos permite realizar de cadena
desde teclado (Cadena teclado a buffer).
El formato para dicha lectura debe ser el siguiente:
0 1 2 3 … N
No. de
caracteres a
leer mas Enter.
No. de
caracteres
leído.
Cadena leída mas
Enter.
26. Cadena1.asm
Diseñe un programa en ensamblador que
realize la lectura de tu nombre y lo
imprima nuevamente a modo de
verificación.
27. Cadena2.asm
Diseñe un programa en ensamblador que
realice la lecutra de 5 datos generales de
una persona, divida la pantalla con una
linea de cualquier caracter e imprima e
imprima nuevamente los 5 datos
generales leídos.
28. Manejo de color por caracteres y
cadena (atributo)
Byte de color
8
Blink o
parpadeo
4 2 1 8 4 2 1
Color del fondo Color de la letra
29. Para imprimir ya sea caracter o cadenas con color
es necesario definir lo que se conoce como el byte
de color, donde el nibble inferior es el color de la
letra y el nibble superior, es el color del fondo, a
todo esto se le conoce como el byte del color.
Para ello es necesario definir la tabla de color.
Número Color Número Color Número Color
0 Negro 8 Gris 15 Blanco
brillante
1 9 Azul claro
2 Verde 10 Verde claro
3 Cyan 11 Cyan claro
5 Magenta 12 Rojo claro
6 Castaño 13 Magenta claro
7 Blanco 14 Amarillo
34. Color3.asm
Haciendo uso de la interrupción 19 de la 10h, imprima HOLA
de la sig. manera:
H-Letras negras fondo blanco (70h)
O-Letras roja fondo azul (14H)
L-Letras verdes fondo negro(02H)
A-Letras amarillas fondo rojo(4EH)
35. Número 8 proyecto B
Tareas para mañana:
Color4.asm.- Diseñe de manera individual la
pantalla para una factura, incluye los colores
de tu comunidad. Además añade el menú que
deberá ir en dicha factura.
Diseña la descripcion de un proyecto que
aplicarias en territorio nayarita donde podrias
aplicar conocimientos del lenguaje
ensamblador. Estar al pendiente del correo
para la definicion de los proyectos.
36. Gusano.asm
Diseñe un programa en
ensamblador que permita dibujar
un gusano con el caracter
asterisco de manera dinámica a
travéz de las flechas, validar los
límites del monitor. El programa
termina una vez que se presiona
la tecla escape.
La posición inicial del caracter
será en las coordenadas
37. Gusa_c.asm
Modificar de tal manera, que el caracter
cambie de color navegando desde el
color 1 hasta el color 15, una vez que
llegue al color 16 reinicial al color 1
38. Relación de proyectos
a) Aplicación biometrica
b) Transporte según concepto de jose luis hernandez no. 20
c) Aplicación para granjas/estanques/ hibernaderos
d) Aplicación de domótica
e) Aplicación hotelera
Qué se evaluará?
Parte 1 proyecto unidad 2
1) Se evaluará la parte visual de todas y cada una de las pantallas
que integrarán el sistema.
2) Todas las pantallas deberán permitir la captura de la
información, es decir la entrada de datos por pantalla.
3) Investigación referente al proyecto asignado.
39. Parte 2 proyecto unidad 3
1) Integración de macros y procedimientos
2) Manejo de archivos para el almacenamiento
de datos (archivos de texto)
Parte 3 proyecto unidad 4 (Programacion híbrida)
1) Se propone como lenguaje de programación
Delphi aunque puede utilizar C.
2) Se integraran en este proyecto todas aquellas
funciones que no conviene implementar en un
lenguaje de bajo nivel.
3) Las aplicaciones desarrolladas en
ensamblador se mandarán llamar desde
Delphi.
40. Reglas de exposición
1) Puntualidad de todos los expositores.
2) Todos los integrantes de la comunidad
deberán presentarse de manera formal.
3) La comunidad deberá estar perfectamente
organizada.
4) Reservar el cañón y el audiovisual.
5) Folletos para los participantes.
6) Detalles para los participantes.
7) Todos los integrantes de la comunidad
deberán mostrar dominio del tema, de lo
contrario no aprobará la comunidad.
8) Entrega de boletas para los participantes.
9) Respetar el tiempo de exposición.
41. Cursor1.asm
a) Coloque el cursor en el reglón 12, columna 40.
b) Modifique el tamaño del cursor.
c) Espere una tecla para hacer una pausa.
42. Cursor2.asm
a) Coloque el cursor en el renglón 3,
columna 5
b) Obtenga la posición del cursor e
imprima las coordenadas obtenidas.
43. Matriz1.asm
a) Defina 3 matrices de 4x4 definidas como db
b) La matriz 1 y la matriz 2 tienen valores inicializados con digitos del 0 al 9
y la matriz 3 esta inicializada a 0
c) Implemente un menu para la suma, resta y multiplicación
d) Imprima el resultado en la matriz 3
44. Scroll
Ensamblador incluye dos interrupciones que nos permiten realizar un scroll
o enrollamiento de la pagina ya sea hacia arriba o hacia abajo, si se
realiza un enrollamiento hacia arriba de x numero d líneas se pierde la
parte superior el numero de líneas desplazadas y si se realiza un
enrollamiento hacia abajo se pierde el numero de líneas desplazadas en
la parte inferior. Las interrupciones para el desplazamiento son:
Scroll hacia arriba:
MOV AH,6
MOV AL,NUMERO DE LINEA
MOV CH, FILA ESQUINA SUPERIOR IZQUIERDA
MOV CL, COLUMNA ESQUINA SUPERIOR IZQUIERDA
MOV DH, FILA ESQUINA INFERIOR DERECHA
MOV DL, COLUMNA ESQUINA INFERIOR DERECHA
MOV BH, ATRIBUTO DE LAS NUEVAS LINEAS
INT 10H
Scroll hacia abajo:
MOV AH,7
MISMOS PARAMETROS
INT 10H
45. Scroll1.asm
Diseñe un programa en ensamblador que realize
lo siguiente:
a)Imprima el mensaje “lenguaje ensamblador” en
el renglón 0 columna 15
b)Espere una tecla, realize un scroll de una linea
hacia arriba de toda la pantalla del monitor.
c)Espere una tecla y finalize
46. Scroll2.asm
Diseñe un programa en ensamblador que realice:
a) Imprime 24 proverbios chinos cada proverbio es un renglon
iniciando desde el renglon 0 hasta el 24.
b)Espera una tecla
c)Desplaza un solo scroll de 12 renglones Qué pasa?
47. Scroll3.asm
Diseñe un programa en ensamblador
que:
A) imprima un mensaje en el renglón 24
B) Haga que el mensaje se desplace con
cada tecla un renglon hacia arriba
C)Una vez que llegue al renglon 0 que se
pierda y aparezca en el renglon 24
D)Que realice 3 vueltas
48. Software educativo (miercoles)
Diseñe un programa en ensamblador que
reaccione al siguiente menú:
Menú
1.-Vocales
2.-Sumas
3.-Restas
4.-Consonantes
5.-Salir
En cada opcion hay 5 ejercicios para los niños.
Califica el numero de aciertos y errores.