48
Rutinas de servicio Interrupciones de BIOS y DOS

Unidad 2 ensamblador

Embed Size (px)

DESCRIPTION

ensamblador

Citation preview

Page 1: Unidad 2   ensamblador

Rutinas de

servicioInterrupciones de BIOS y

DOS

Page 2: Unidad 2   ensamblador

Imprimir cadena sin color

MOV AH,9

LEA DX, NOMBRE_CADENA

INT 21H

Nota: La cadena debe finalizar con „$‟

Page 3: Unidad 2   ensamblador

EJEMPLO Pantalla programa P3_U2.ASM

Haga un programa que escriba su

nombre.

Page 4: Unidad 2   ensamblador

EJEMPLO para añadir

RETORNO DE CARRO

P3_U2_B.ASM

Page 5: Unidad 2   ensamblador

BORRAR PANTALLA

Para borrar pantalla se utiliza el siguiente

conjunto de código:

MOV AH,0FH

INT 10H

MOV AH,0H

INT 10H

Page 6: Unidad 2   ensamblador

EJEMPLO

P2_U2.ASM

Page 7: Unidad 2   ensamblador

POSICIÓN DEL CURSORMOV AH,2

MOV DH,NÚMERO_RENGLÓN

MOV DL,NÚMERO_COLUMNA

MOV BH,0

INT 10H

Page 8: Unidad 2   ensamblador

EJEMPLO

P5_U2.ASM

Page 9: Unidad 2   ensamblador

Instrucción XCHG

Lineal1.asm

Page 10: Unidad 2   ensamblador

IMPRIMIR CARACTER

MOV AH,10

MOV BH,0

MOV CX,1; Número de veces

MOV AL,<<CARACTER A ESCRIBIR>>

INT 10H

Page 11: Unidad 2   ensamblador

EJEMPLO IMPRIMIR CATACTER

C1.ASM

Page 12: Unidad 2   ensamblador

[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.

Page 13: Unidad 2   ensamblador

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.

Page 14: Unidad 2   ensamblador

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

Page 15: Unidad 2   ensamblador

LOOP2.asmDiseñe un programa que imprima tres columnas de

tu nombre en tres posiciones diferentes de la

pantalla.

Page 16: Unidad 2   ensamblador

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

Page 17: Unidad 2   ensamblador

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

Page 18: Unidad 2   ensamblador

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

Page 19: Unidad 2   ensamblador

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

Page 20: Unidad 2   ensamblador

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

Page 21: Unidad 2   ensamblador

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

Page 22: Unidad 2   ensamblador

Tecla1.asm

Diseña un programa en ensamblador que

imprima el mensaje correspondiente a la

flecha presionada, repita hasta que el

usuario presiona escape.

Page 23: Unidad 2   ensamblador

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

Page 24: Unidad 2   ensamblador

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.)

Page 25: Unidad 2   ensamblador

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.

Page 26: Unidad 2   ensamblador

Cadena1.asm

Diseñe un programa en ensamblador que

realize la lectura de tu nombre y lo

imprima nuevamente a modo de

verificación.

Page 27: Unidad 2   ensamblador

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.

Page 28: Unidad 2   ensamblador

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

Page 29: Unidad 2   ensamblador

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

Page 30: Unidad 2   ensamblador

Interrupción imprimir caracter

con color

MOV AH,9

MOV AL,CARACTER

MOV CX,MVECES

MOV BH,PAGINA

MOV BL,ATRIBUTO

INT 10H

Page 31: Unidad 2   ensamblador

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

Page 32: Unidad 2   ensamblador

Color1.asmDiseñe un programa en ensamblador que

imprima tu nombre en el centro de la

pantalla con letras amarillas y fondo azul.

Page 33: Unidad 2   ensamblador

Color2.asmModificar color1.asm de tal manera que

imprima el modo AL=1 letras blancas y

fondo Rojo

BL=47h

Page 34: Unidad 2   ensamblador

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)

Page 35: Unidad 2   ensamblador

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.

Page 36: Unidad 2   ensamblador

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

Page 37: Unidad 2   ensamblador

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

Page 38: Unidad 2   ensamblador

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.

Page 39: Unidad 2   ensamblador

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.

Page 40: Unidad 2   ensamblador

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.

Page 41: Unidad 2   ensamblador

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.

Page 42: Unidad 2   ensamblador

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.

Page 43: Unidad 2   ensamblador

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

Page 44: Unidad 2   ensamblador

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

Page 45: Unidad 2   ensamblador

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

Page 46: Unidad 2   ensamblador

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?

Page 47: Unidad 2   ensamblador

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

Page 48: Unidad 2   ensamblador

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.