Lenguaje ensamblador

154 visualizaciones

Publicado el

lenguaje ensamblador es algo del lenguaje maquina

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
154
En SlideShare
0
De insertados
0
Número de insertados
3
Acciones
Compartido
0
Descargas
2
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Lenguaje ensamblador

  1. 1. Rutinas de servicio Interrupciones de BIOS y DOS
  2. 2. Imprimir cadena sin color  MOV AH,9  LEA DX, NOMBRE_CADENA  INT 21H  Nota: La cadena debe finalizar con ‘$’
  3. 3. EJEMPLO  Pantalla programa P3_U2.ASM  Haga un programa que escriba su nombre.
  4. 4. EJEMPLO para añadir RETORNO DE CARRO  P3_U2_B.ASM
  5. 5. BORRAR PANTALLA  Para borrar pantalla se utiliza el siguiente conjunto de código: MOV AH,0FH INT 10H MOV AH,0H INT 10H
  6. 6. EJEMPLO  P2_U2.ASM
  7. 7. POSICIÓN DEL CURSOR MOV AH,2 MOV DH,NÚMERO_RENGLÓN MOV DL,NÚMERO_COLUMNA MOV BH,0 INT 10H
  8. 8. EJEMPLO  P5_U2.ASM
  9. 9. Instrucción XCHG  Lineal1.asm
  10. 10. IMPRIMIR CARACTER MOV AH,10 MOV BH,0 MOV CX,1; Número de veces MOV AL,<<CARACTER A ESCRIBIR>> INT 10H
  11. 11. EJEMPLO IMPRIMIR CATACTER  C1.ASM
  12. 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. 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. 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. 15. LOOP2.asm  Diseñe un programa que imprima tres columnas de tu nombre en tres posiciones diferentes de la pantalla.
  16. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  30. 30. Interrupción imprimir caracter con color MOV AH,9 MOV AL,CARACTER MOV CX,MVECES MOV BH,PAGINA MOV BL,ATRIBUTO INT 10H
  31. 31. 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
  32. 32. Color1.asm  Diseñe un programa en ensamblador que imprima tu nombre en el centro de la pantalla con letras amarillas y fondo azul.
  33. 33. Color2.asm  Modificar color1.asm de tal manera que imprima el modo AL=1 letras blancas y fondo Rojo  BL=47h
  34. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×