Upload
evetalavera
View
2.361
Download
7
Embed Size (px)
DESCRIPTION
ensamblador
Citation preview
Rutinas de
servicioInterrupciones de BIOS y
DOS
Imprimir cadena sin color
MOV AH,9
LEA DX, NOMBRE_CADENA
INT 21H
Nota: La cadena debe finalizar con „$‟
EJEMPLO Pantalla programa P3_U2.ASM
Haga un programa que escriba su
nombre.
EJEMPLO para añadir
RETORNO DE CARRO
P3_U2_B.ASM
BORRAR PANTALLA
Para borrar pantalla se utiliza el siguiente
conjunto de código:
MOV AH,0FH
INT 10H
MOV AH,0H
INT 10H
EJEMPLO
P2_U2.ASM
POSICIÓN DEL CURSORMOV AH,2
MOV DH,NÚMERO_RENGLÓN
MOV DL,NÚMERO_COLUMNA
MOV BH,0
INT 10H
EJEMPLO
P5_U2.ASM
Instrucción XCHG
Lineal1.asm
IMPRIMIR CARACTER
MOV AH,10
MOV BH,0
MOV CX,1; Número de veces
MOV AL,<<CARACTER A ESCRIBIR>>
INT 10H
EJEMPLO IMPRIMIR CATACTER
C1.ASM
[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 operandosdependerá 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.
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.
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
LOOP2.asmDiseñe un programa que imprima tres columnas de
tu nombre en tres posiciones diferentes de la
pantalla.
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
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
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
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 talcomo 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
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
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
Tecla1.asm
Diseña un programa en ensamblador que
imprima el mensaje correspondiente a la
flecha presionada, repita hasta que el
usuario presiona escape.
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 lasflechas
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.)
Lectura de cadena
ensambladorLenguaje 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.
Cadena1.asm
Diseñe un programa en ensamblador que
realize la lectura de tu nombre y lo
imprima nuevamente a modo de
verificación.
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.
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
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
Interrupción imprimir caracter
con color
MOV AH,9
MOV AL,CARACTER
MOV CX,MVECES
MOV BH,PAGINA
MOV BL,ATRIBUTO
INT 10H
Interrupcion para imprimir
cadena con color
MOV AH,19
MOV CX,LONGITUD
MOV DH,RENGLON
MOV DL,COLUMNA
LEA BP,CADENA
MOV AL,MODO
MOV BL, ATRIBUTO
INT 10H
Color1.asmDiseñe un programa en ensamblador que
imprima tu nombre en el centro de la
pantalla con letras amarillas y fondo azul.
Color2.asmModificar color1.asm de tal manera que
imprima el modo AL=1 letras blancas y
fondo Rojo
BL=47h
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)
Número 8 proyecto B Tareas para mañana:
Color4.asm.- Diseñe de manera individual la pantalla para una factura, incluye los coloresde tu comunidad. Además añade el menú quedeberá ir en dicha factura.
Diseña la descripcion de un proyecto queaplicarias en territorio nayarita donde podriasaplicar conocimientos del lenguajeensamblador. Estar al pendiente del correopara la definicion de los proyectos.
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
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
Relación de proyectosa) 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.
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.
Reglas de exposición1) 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.
Cursor1.asma) 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.
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.
Matriz1.asma) 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
ScrollEnsamblador incluye dos interrupciones que nos permiten realizar un scrollo 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,6MOV AL,NUMERO DE LINEAMOV CH, FILA ESQUINA SUPERIOR IZQUIERDAMOV CL, COLUMNA ESQUINA SUPERIOR IZQUIERDAMOV DH, FILA ESQUINA INFERIOR DERECHAMOV DL, COLUMNA ESQUINA INFERIOR DERECHA
MOV BH, ATRIBUTO DE LAS NUEVAS LINEASINT 10H
Scroll hacia abajo:MOV AH,7MISMOS PARAMETROS
INT 10H
Scroll1.asmDiseñ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
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?
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
Software educativo (miercoles)
Diseñe un programa en ensamblador quereaccione 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.